Skip to content

rhwp-studio 인쇄 미리보기 창 스타일 깨짐 (about:blank 줌 메모리) #199

@edwardkim

Description

@edwardkim

증상

rhwp-studio 에서 메뉴 → 파일 → 인쇄 (또는 Ctrl+P) 실행 시 인쇄 미리보기 창의 모든 요소 (print-bar + SVG 페이지) 가 비정상적으로 거대하게 표시됨.

사용자가 `Ctrl+0` (줌 100% 리셋) 한 번 누르면 정상화되지만, 일반 사용자는 이 단축키를 모름.

원인 (확정)

작업지시자 보고: "전체 인쇄 페이지가 확대되는 겁니다" + "Ctrl+0 으로 정상화"

창 자체의 브라우저 줌 레벨이 비정상적으로 큼. CSS 영향이 아닌 브라우저 줌 메모리 문제.

`rhwp-studio/src/command/commands/file.ts:164` 의 `window.open('', '_blank')` 가 about:blank 페이지로 인쇄 창을 엶. Chrome 은 사이트별 줌을 기억:

  • about:blank 도 하나의 사이트로 취급
  • 한 번 확대한 적 있으면 다음 about:blank 창들도 그 줌을 상속
  • 사용자는 메인 창의 줌과 별개로 about:blank 의 줌이 큼을 인지하지 못함

영향

  • 본 v0.2.0 배포 사용자 일부 (이전에 about:blank 를 확대해본 적 있는 환경) 가 만남
  • 인쇄 자체는 정상 동작하나 미리보기 화면이 비정상 → 부정적 인상
  • 작업지시자 환경에서 직접 발견 (2026-04-19)

해결 방향 후보 (창 origin 변경 위주)

CSS fix 는 효과 없음 (브라우저 chrome 의 줌이라 페이지 CSS 로 못 잡음).

A. Blob URL 사용 — `window.open(URL.createObjectURL(blob))` 로 변경

  • 장점: 확장 origin 의 줌 = 메인 창 줌 = 보통 100% 로 통일. about:blank 줌 메모리 회피
  • 단점: 인라인 이벤트 핸들러로 변경 필요 (CSP 해결책 검토), Blob URL 의 보안 정책

B. 확장 내부 페이지 + postMessage — `chrome.runtime.getURL('print.html')` 로 별도 HTML 파일 + 데이터 전달

  • 장점: 가장 정도. 줌·CSP 모두 안전
  • 단점: 작업 범위 큼 (신규 HTML 파일 + 메시지 프로토콜)

C. 현재 창의 모달 또는 iframe 으로 인쇄 — 새 창 자체를 안 띄움

  • 장점: 줌 메모리 문제 자체 회피
  • 단점: 인쇄 흐름 큰 변경. `window.print()` 동작 영향 검토 필요

권장 순서

  1. (A) 먼저 시도 — Blob URL 만 변경, CSP 호환 확인
  2. (A) 부족하면 (B) 확장 내부 페이지
  3. (C) 는 큰 재설계

검증

  • about:blank 줌을 200% 로 만든 환경에서 인쇄 미리보기 정상 표시
  • 정상 환경 (about:blank 100%) 에서 회귀 0
  • 인쇄 다이얼로그 (Ctrl+P) 정상 동작
  • 인쇄 결과 페이지 크기 정상

마일스톤

v0.2.x 또는 다음 패치 (사용자 영향 보고 빈도 따라).

관련

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions