Skip to content

Task #338: Firefox AMO 검증 경고 정리#339

Merged
edwardkim merged 4 commits into
edwardkim:develfrom
postmelee:fix/issue-338-firefox-amo-validation
Apr 26, 2026
Merged

Task #338: Firefox AMO 검증 경고 정리#339
edwardkim merged 4 commits into
edwardkim:develfrom
postmelee:fix/issue-338-firefox-amo-validation

Conversation

@postmelee

@postmelee postmelee commented Apr 25, 2026

Copy link
Copy Markdown
Collaborator

변경 요약

Firefox AMO 제출 검증에서 보고된 #338 경고를 정리합니다.

주요 변경:

  • data_collection_permissions 사용에 맞춰 Firefox strict_min_version142.0으로 상향
  • 재빌드된 Firefox 제출 패키지에 stale hashed bundle/test artifact가 남지 않도록 산출물 정리 보강
  • 인쇄 팝업 생성 경로의 document.write 제거
  • Firefox 제출 패키지에 남아 있던 innerHTML 정적 문자열 매치 제거
  • 기존 이슈에 기록된 dynamic Function 경고가 재빌드 산출물에서 재현되지 않음을 확인

#338 경고 항목 처리 결과

이슈 본문에 기록된 카테고리 B 보안 워닝을 기준으로, 재빌드된 Firefox 제출 패키지(rhwp-firefox/dist)를 다시 확인했습니다.

항목 이슈 본문 기준 재검증 결과
document.write 1건 매치 없음
innerHTML 15건 이상 매치 없음
dynamic Function / Function( 2건 보고 (wasm/rhwp.js, assets/viewer-*.js) 매치 없음
stale test/source map artifact 잔존 가능 매치 없음

wasm/rhwp.jsFunction 경고는 wasm-bindgen 생성 코드로 보고된 항목입니다. 이번 PR에서는 해당 생성 코드를 직접 수정하지 않고, 최신 재빌드된 제출 패키지 기준으로 경고 문자열이 더 이상 재현되지 않음을 확인했습니다.

AMO 제출자가 바로 사용할 수 있는 검토자 메모도 함께 추가했습니다.

상세 변경

  • rhwp-firefox/manifest.json

    • browser_specific_settings.gecko.strict_min_version: 112.0142.0
    • data_collection_permissions.required = ["none"] 유지
  • rhwp-firefox/build.mjs

    • 제출 패키지에 stale artifact가 섞이지 않도록 빌드 시작 전 dist/ 정리
  • rhwp-studio

    • document.write 기반 인쇄 팝업을 DOM API 기반으로 변경
    • 메뉴, overlay, preview, dialog, dropdown 경로의 innerHTML 사용을 DOM API, textContent, replaceChildren(), SVG DOM 생성, SVG XML parsing/import 방식으로 변경

관련 이슈

테스트

  • cargo test 통과

    • 미실행: 이번 PR은 Rust 파서/렌더러 변경이 아니라 Firefox 확장 패키징 및 TypeScript DOM API 경로 변경입니다.
  • cargo clippy -- -D warnings 통과

    • 미실행: Rust 코드 변경이 없어 이번 변경 범위의 직접 검증 대상에서 제외했습니다.
  • 관련 샘플 파일로 SVG 내보내기 확인

    • 해당 없음: 네이티브 SVG export 경로 변경이 없습니다.
  • 웹(WASM) 렌더링 확인 (해당하는 경우)

    • cd rhwp-firefox && npm run build 통과
    • 로컬 Firefox에서 변경 전/후 확장 동작 비교
    • HWP 문서 로드 확인
    • 인쇄 팝업 렌더링 확인
    • 문서 교체/초기화 시 이전 페이지 제거 확인
    • 표/그림/선/도형 선택 overlay 확인
    • 도형 배치 preview 및 크기 label 확인
    • shape picker, symbol dialog, table picker, paragraph dialog 표시 비교 확인

추가 검증

  • rhwp-firefox/manifest.json, rhwp-firefox/dist/manifest.json에서 version: "0.2.1", gecko.id: "rhwp-firefox@edwardkim.github.io", strict_min_version: "142.0"data_collection_permissions 확인
  • rhwp-firefox/dist에 stale test/, *test*, *.map 파일 없음 확인
  • rhwp-firefox/dist에서 document.write 매치 없음 확인
  • rhwp-firefox/dist에서 new Function / Function( 매치 없음 확인
  • rhwp-firefox/dist에서 innerHTML 매치 없음 확인
  • git diff --check 통과

참고: rhwp-studiotsc --noEmit은 현재 pkg/rhwp.d.ts의 기존 WASM 타입 선언 누락으로 실패합니다.

  • exportHwpx
  • getSourceFormat

해당 타입 불일치는 이번 PR 변경과 무관한 기존 상태로 확인했습니다.

스크린샷

Codex / GPT 5.5 xhigh 가 직접 테스트했습니다.

innerHTML 기반 생성 경로를 DOM/SVG API 기반 생성으로 치환 검증

1. 인쇄 팝업 렌더링

document.write를 제거하고 DOM API 기반으로 인쇄 문서를 구성한 뒤에도 인쇄 팝업이 정상 렌더링됨을 확인했습니다.

print_test_crop.mp4

2. 표/그림 선택 overlay

table/object selection overlay의 SVG 생성 경로를 innerHTML에서 DOM/SVG API 기반으로 변경한 뒤에도 외곽선과 핸들이 정상 표시됨을 확인했습니다.

table_test_crop.mp4

3. 선/도형 선택 overlay

DOM/SVG API 치환 후에도 이미 배치된 선, 타원, 호, 다각형을 선택했을 때 외곽선, 끝점/리사이즈 핸들, 회전 핸들이 정상 표시됨을 확인했습니다.

4. 도형 배치 preview 및 크기 label

input-handler.ts의 도형 배치 preview 생성 경로를 innerHTML에서 DOM/SVG API 기반으로 변경한 뒤에도 드래그 중 점선 preview와 크기 label이 정상 표시됨을 확인했습니다.

shape_test_crop.mp4

첨부 영상은 두 가지(3, 4)를 함께 검증합니다.

  • 이미 배치된 선/도형 선택 시 selection overlay가 정상 표시됨
  • 새 도형 배치 중 preview와 크기 label이 정상 표시됨

5. 대화상자 및 picker UI

shape picker, symbol dialog, table picker, paragraph dialog 등 UI 삽입 경로를 innerHTML에서 DOM API, textContent, replaceChildren(), option 요소 생성 방식으로 변경한 뒤에도 기존 UI가 동일하게 표시됨을 확인했습니다.

innerhtml_test.mp4

- 수행계획서와 구현계획서 작성
- manifest 버전 경고, document.write, innerHTML, Function 후보 분류
- stale dist artifact와 테스트 파일 잔존 여부 조사
- Firefox strict_min_version을 142.0으로 상향
- Firefox 빌드 시작 전 dist 정리 추가
- 인쇄 팝업 document.write를 DOM API 기반 생성으로 교체
- 외부 커맨드 메뉴와 canvas 초기화의 innerHTML 사용 제거
- content script와 viewer bundle의 잔여 innerHTML 문자열 제거
- 표/그림 선택 overlay와 도형 배치 프리뷰를 DOM/SVG API로 전환
- UI 다이얼로그와 드롭다운의 HTML 삽입 경로를 DOM API로 교체
- Firefox 확장 빌드 및 dist 패턴 검색 결과 기록
@postmelee postmelee force-pushed the fix/issue-338-firefox-amo-validation branch from ae32667 to f503df8 Compare April 25, 2026 21:42
@postmelee postmelee marked this pull request as ready for review April 25, 2026 21:46
@postmelee postmelee force-pushed the fix/issue-338-firefox-amo-validation branch from f503df8 to 810931b Compare April 25, 2026 21:53
@postmelee postmelee marked this pull request as draft April 25, 2026 21:53
@postmelee postmelee force-pushed the fix/issue-338-firefox-amo-validation branch from 810931b to 00e1ca7 Compare April 25, 2026 21:55
@postmelee postmelee marked this pull request as ready for review April 25, 2026 22:26
- AMO 검토자 설명 문서를 한국어 본문과 영문 제출 초안으로 작성
- 최종 보고서에 빌드, grep 검증, 로컬 Firefox 수동 비교 결과 정리
- 오늘 할일 문서에 Task edwardkim#338 완료 상태 반영
@postmelee postmelee force-pushed the fix/issue-338-firefox-amo-validation branch from 00e1ca7 to b8e0058 Compare April 25, 2026 22:33
@edwardkim

Copy link
Copy Markdown
Owner

@postmelee 님 — Task #338 작업 감사합니다.

이슈 등록 직후 빠른 시간 내에 4 stage 모두 처리 + reviewer note 한/영 작성 + 5 영역 시각 검증까지 완료해 주셔서 메인테이너가 별도로 진행하던 task338 작업을 폐기하고 본 PR 로 마무리했습니다.

메인테이너 추가 검증

  • cargo build --release
  • cargo test --lib: 992 passed ✅
  • cargo test --test svg_snapshot: 6/6 ✅
  • cargo test --test issue_301: z-table 가드 ✅
  • cargo clippy --lib -D warnings: clean ✅
  • cargo check --target wasm32: clean ✅
  • 7 핵심 샘플 + form-002 페이지 수 무변화 ✅
  • npm run build (rhwp-studio + rhwp-firefox) ✅
  • web-ext lint --source-dir=rhwp-firefox/dist: errors 0, warnings 2
  • WASM Docker 빌드 + 작업지시자 시각 검증 ✅

워닝 처리 결과

카테고리 Before After
A: manifest 모순 2 0
B: innerHTML 15+ 0
B: document.write 1 0
B: Function 2 2 (reviewer note 정당화 — wasm-bindgen + Vite/dependency)

errors 0 = AMO 통과 기준 달성. warnings 2 는 본인 reviewer note 로 정당화 가능.

머지 후

다시 한번 깔끔한 작업 + 시각 검증 + reviewer note 까지 완비된 PR 감사합니다. admin merge 진행합니다.

@edwardkim edwardkim left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

검증 완료 (992 lib + 6/6 svg_snapshot + clippy + wasm32 + web-ext lint errors 0 + 시각 검증). admin merge.

@edwardkim edwardkim merged commit 626338f into edwardkim:devel Apr 26, 2026
6 checks passed
@postmelee

Copy link
Copy Markdown
Collaborator Author

@edwardkim 이미 진행중이셨군요.. 제가 작업 흐름을 해친게 아닐까 걱정됩니다.. 상세한 리뷰 감사드립니다! 👍 하루 빨리 firefox 확장을 사용하고 싶네요!'

edwardkim added a commit that referenced this pull request Apr 26, 2026
@postmelee 의 PR 인수 + 메인테이너 검증 + admin merge (commit 626338f).

Firefox AMO 워닝 해결:
- 카테고리 A (manifest 모순): 2건 → 0 (strict_min_version=142.0)
- 카테고리 B (innerHTML/document.write): 16건 → 0 (DOM/SVG API 교체)
- 카테고리 B (Function): 2건 잔존 — reviewer note 정당화

web-ext lint: errors 0, warnings 2 (AMO 통과 기준 달성).

메인테이너 자체 task338 작업은 본 PR 로 대체 (plans/branch 폐기).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
edwardkim added a commit that referenced this pull request Apr 26, 2026
라이브러리 버전 동기화 (Cargo.toml / rhwp-vscode / npm/editor /
rhwp-studio): 0.7.3 → 0.7.6

브라우저 확장 (rhwp-firefox): 0.2.1 → 0.2.2 (AMO 재제출용)
- manifest strict_min_version 142 + viewer 번들 보안 sanitize 반영

본 사이클 외부 기여 PR:
- #268/#334 (@oksure): replaceOne API
- #279/#282 (@seanshin): 목차 리더 + 페이지번호 정렬
- #324/#327 (@planet6897): form-002 인너 표 페이지 분할
- #335 (@oksure): SVG/HTML draw_image base64 임베딩
- #338/#339 (@postmelee): Firefox AMO 워닝 해결
- #340/#341 (@planet6897): typeset 경로 정합
- #342/#343 (@planet6897): Task #321~#332 통합 + 회귀 해소

rhwp-firefox/README.md 에 v0.2.2 변경 이력 + 기여자 감사 섹션 추가
(@postmelee, @seanshin 인정).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
seanshin pushed a commit to seanshin/rhwp that referenced this pull request Apr 26, 2026
- 최근 변경: v0.7.3 → v0.7.6 (2026-04-26) 교체
  - PR edwardkim#266 (Task edwardkim#157), edwardkim#273 (Task edwardkim#267), edwardkim#282 (Task edwardkim#279) by @seanshin
  - PR edwardkim#256, edwardkim#327, edwardkim#341, edwardkim#343 by @planet6897
  - PR edwardkim#334, edwardkim#335 by @oksure, PR edwardkim#339 by @postmelee
- devel 섹션: 머지된 항목 제거, 현재 분석 중(edwardkim#362/edwardkim#345) + 계획 중(edwardkim#150/edwardkim#253) 반영
- 테스트 수: 891+ → 1000+
- README_EN.md 동일 내용 영문 반영
@postmelee postmelee deleted the fix/issue-338-firefox-amo-validation branch May 2, 2026 07:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants