Skip to content

rhwp-firefox: download-interceptor에 #198 블랙리스트/MIME 판정 로직 미반영 #207

@edwardkim

Description

@edwardkim

현상

rhwp-firefox 의 `sw/download-interceptor.js` (69줄) 가 rhwp-chrome 의 `sw/download-interceptor.js` (102줄) 에 담긴 #198 fix 내용을 반영하지 않음.

반영 누락 항목:

  1. `NON_REFETCHABLE_PATTERNS` — DEXT5 류 관공서 핸들러 URL 블랙리스트
    • POST 전용 / 세션 토큰 의존 다운로드는 뷰어가 GET 재요청 시 빈 응답 → 빈 뷰어 탭만 뜸
    • rhwp-chrome 은 이런 패턴은 인터셉트 포기 (Chrome 기본 다운로드만 진행)
  2. `HWP_MIME_HINTS` — MIME 타입 기반 판정 (`haansoft`, `x-hwp`, `hwp+zip`)
    • 확장자 없는 다운로드 (JSP/ASP 생성) 에서 HWP 식별 필요
  3. `shouldInterceptDownload` 순수 함수 추출
    • rhwp-chrome 은 단위 테스트 가능한 순수 함수로 분리됨 (sw/download-interceptor.test.js)

Firefox 측 아키텍처 차이

단순 복붙은 불가. 두 구현의 구조적 차이:

항목 rhwp-chrome rhwp-firefox
감지 시점 `onDeterminingFilename` (단일) `onCreated` (1차) + `onChanged` (2차)
`suggest` 콜백 사용 미사용 (Firefox 는 `suggest` 인자 없음)
중복 방지 없음 (콜백 1회) `handled` Set 필요

판정 함수만 공유 (`shouldInterceptDownload`), 콜사이트는 Firefox 의 onCreated+onChanged 구조 유지 하는 설계 필요.

영향

제안 설계

  1. `sw/download-interceptor-common.js` (신규) — `shouldInterceptDownload` 순수 함수 + 블랙리스트/MIME 상수
  2. rhwp-chrome `sw/download-interceptor.js` + rhwp-firefox `sw/download-interceptor.js` 에서 공통 모듈 import
  3. 기존 rhwp-chrome 의 `sw/download-interceptor.test.js` 공통 모듈 대상으로 리팩터
  4. rhwp-firefox 에서는 `onCreated`/`onChanged` 두 경로에서 모두 공통 판정 함수 호출

또는 모노레포 도입 전까지는 rhwp-firefox 에만 동일 로직 복제 (작은 코드라 중복 허용).

관련

마일스톤

AMO 공개 배포 전 해결 — M100 권장.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions