사용자 보고 (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 감지를 놓침.
목표
- chrome-fd-001 즉시 해결: 일반 파일 다운로드의 마지막 위치 기억 동작 복원
- 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 기본 동작 유지
});
```
검증
자동
수동 (작업지시자)
영향 범위
- `rhwp-chrome/sw/download-interceptor.js` (단일 파일 수정)
- 단위 테스트 추가 (`rhwp-chrome/tests/` 또는 적절한 위치)
마일스톤
M100 (v1.0.0) — 이번 배포 포함. 사용자 직접 보고된 부작용으로 우선순위 높음.
관련
- 사용자 보고: `mydocs/feedback/chrome-fd-001.md`
- 다운로드 수 10k 도달한 확장의 사용자 영향 직접 보고
사용자 보고 (chrome-fd-001)
원본: `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 동작:
→ HWP/HWPX 가 아닌 일반 파일 (이미지, 웹페이지 등) 다운로드 시에도 `suggest` 가 호출되어 마지막 위치 기억 동작이 무력화.
추가 고려 — 관공서 DEXT5 류 다운로드
일부 관공서/공공기관 사이트는 DEXT5Upload 같은 다운로드 전용 JS 컨트롤로 HWP 를 제공:
이 경우 `item.filename` 에 hwp 확장자가 명시되지 않을 가능성이 있어 현재 인터셉터가 hwp 감지를 놓침.
목표
수정 방향
```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 기본 동작 유지
});
```
검증
자동
수동 (작업지시자)
영향 범위
마일스톤
M100 (v1.0.0) — 이번 배포 포함. 사용자 직접 보고된 부작용으로 우선순위 높음.
관련