Skip to content

rhwp-chrome 다운로드 인터셉터 부작용: 일반 파일 저장 시 마지막 위치 미기억 (chrome-fd-001) #198

@edwardkim

Description

@edwardkim

사용자 보고 (chrome-fd-001)

확장의 기능과 직접적인 연관은 없어보이지만 이 확장을 활성화시키면 브라우저가 마지막 저장 위치를 기억하지 못합니다. 즉 이미지, 웹페이지 등을 "다른 이름으로 저장"할 때 이전 위치가 아닌 바탕화면이 기본값으로 표시됩니다. Windows Chrome 147.0.7727.101.

원본: `mydocs/feedback/chrome-fd-001.md`

원인 분석

`rhwp-chrome/sw/download-interceptor.js:13-22` 의 `onDeterminingFilename` 리스너가 모든 다운로드 에 대해 `suggest({ filename: item.filename })` 를 호출:

```javascript
chrome.downloads.onDeterminingFilename.addListener((item, suggest) => {
const filename = item.filename || '';
if (HWP_EXTENSIONS.test(filename)) {
handleHwpDownload(item);
}
// 기본 파일명 유지 (다운로드는 정상 진행)
suggest({ filename: item.filename }); // ← HWP 가 아니어도 항상 호출
});
```

Chrome `onDeterminingFilename` API 동작:

  • `suggest()` 를 호출하지 않으면 Chrome 이 사용자 설정 (마지막 위치) 을 그대로 사용
  • `suggest({ filename })` 호출 시 Chrome 이 저장 위치를 다시 계산 (마지막 위치 무시)

→ HWP/HWPX 가 아닌 일반 파일 (이미지, 웹페이지 등) 다운로드 시에도 `suggest` 가 호출되어 마지막 위치 기억 동작이 무력화.

추가 고려 — 관공서 DEXT5 류 다운로드

일부 관공서/공공기관 사이트는 DEXT5Upload 같은 다운로드 전용 JS 컨트롤로 HWP 를 제공:

  • 토큰 기반 동적 URL (예: `/download.do?token=xxxxx`)
  • POST + Content-Disposition 응답
  • 임시 redirect 체인

이 경우 `item.filename` 에 hwp 확장자가 명시되지 않을 가능성이 있어 현재 인터셉터가 hwp 감지를 놓침.

목표

  1. chrome-fd-001 즉시 해결: 일반 파일 다운로드의 마지막 위치 기억 동작 복원
  2. DEXT5 류 hwp 감지율 향상: filename 외에 url, mime 도 검사

수정 방향

```javascript
chrome.downloads.onDeterminingFilename.addListener((item, suggest) => {
const filename = item.filename || '';
const url = item.url || item.finalUrl || '';
const mime = item.mime || '';

const isHwpByName = HWP_EXTENSIONS.test(filename);
const isHwpByUrl = /\.(hwp|hwpx)(\?|$)/i.test(url);
const isHwpByMime = mime.includes('haansoft') || mime.includes('x-hwp') || mime.includes('hwp+zip');

if (isHwpByName || isHwpByUrl || isHwpByMime) {
handleHwpDownload(item);
suggest({ filename: item.filename });
}
// HWP 가 아니면 suggest 호출 없이 Chrome 기본 동작 유지
});
```

검증

자동

  • 단위 테스트: HWP/HWPX/일반 파일별 인터셉터 동작 분기
  • manifest 권한 검토 (`downloads` 그대로)

수동 (작업지시자)

  • 일반 이미지 다운로드 → 마지막 위치 기억 복원 확인 (chrome-fd-001 보고자 환경)
  • 일반 .hwp 파일 다운로드 → 자체 뷰어 정상 트리거
  • DEXT5 류 관공서 사이트에서 .hwp 다운로드 → 인터셉터 동작 (URL/mime 기반 감지)
  • HWPX 다운로드 → 자체 뷰어 정상 트리거

영향 범위

  • `rhwp-chrome/sw/download-interceptor.js` (단일 파일 수정)
  • 단위 테스트 추가 (`rhwp-chrome/tests/` 또는 적절한 위치)

마일스톤

M100 (v1.0.0) — 이번 배포 포함. 사용자 직접 보고된 부작용으로 우선순위 높음.

관련

  • 사용자 보고: `mydocs/feedback/chrome-fd-001.md`
  • 다운로드 수 10k 도달한 확장의 사용자 영향 직접 보고

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