크라우니 오피스 문서 편집기 — 상태바 하단 고정 버그 수리
개요
크라우니 오피스 문서 편집기(bundle/office/app) 상태바("N페이지 · N단어 · N자 · 한국어" +
"모든 변경사항 저장됨" + "키 가이드")가 position:static 플렉스 아이템이라 문서가 짧거나
스크롤이 발생하면 뷰포트 하단에 고정되지 않고 문서 흐름 중간에 걸쳐 보이던 버그를 수리.
앱 번들(bundle/office/app/index.html) 무수정 — crownyBridge.js(주입 스크립트)만 대상.
무엇을 했는지
- 구조 실측(CDP): 상태바 행은 앱 프레임(
height:100vh; overflow:hidden; flex-direction:column)의
position:static임을 확인.
findStatusBarRow(): 기존 punch #2findStatusNode()(단어/글자수 리프)에서 위로
pinStatusBar(): 찾은 행에position:fixed; left/right/bottom:0; z-index:2147483000만
display:flex/배경/테두리/텍스트 갱신 로직은 원본 그대로 — punch #2 회귀 없음).
findEditorScrollContainer()+padEditorForStatusBar():editable.parentElement에서
overflow-y:auto/scroll 조상(실측: 바로 그 부모)을 찾아 상태바 실측 높이만큼
paddingBottom을 절대값으로 설정(가산이 아님 — 앱이 이미 28px을 대칭 예약해둔 값과 우연히
일치, 과잉 패딩 방지).
- 재렌더 방어:
schedule()매 틱(applyStatusBarFix())과resize이벤트에서 재적용
applyNarrowLayout/ensureToolbarScrollable와 동일 관용구).관련 파일
/Users/ef/crownybrowser/bundle/office/bridge/crownyBridge.js— 섹션 17 신설(상태바 하단
schedule()/resize 리스너에 applyStatusBarFix() 배선. 유일한 수정 파일.
/Users/ef/crownybrowser/bundle/office/bridge/회귀하니스.js— 무수정(27개 시나리오 그대로)./Users/ef/crownybrowser/spec/문서-회귀리포트.md— 최신 실행 결과 27/27 PASS.- 한선씨 정본: 신규 불요 — 순수 CSS/DOM 위치 로직이라 기존
문서통계.한선(punch #2) 재사용
검증
bash bundle/office/bridge/회귀실행.sh → 27/27 PASS (수리 전/후 동일 유지).position:fixed; bottom:0px; left:0px; right:0px, rect top:385/bottom:413innerHeight:413 — 정확히 뷰포트 하단).
top:385/bottom:413) — 문서 길이·스크롤 시도와 무관하게window.scrollTo로 페이지 레벨 스크롤을 시도해도 상태바 rect 불변 확인../native/CrownyAI 실행 3초 생존 확인(native 무변경 확인용, 정상 유지 상태).잔여 이슈(이번 임무 범위 밖 — 별도 기록)
CDP로 대량 텍스트(문단 12~60개)를 innerHTML +=로 직접 주입해 오버플로를 강제했을 때, 편집
영역의 스크롤 래퍼(overflow:auto)가 clientHeight === scrollHeight로 나와 내부 스크롤이
전혀 동작하지 않는 현상을 관찰. crownyBridge.js 유무와 무관하게 동일하게 재현되어(순수 앱만
로드한 대조 실험으로 확인) 이번 상태바 고정 수정과는 무관한 앱 자체의 기존 특성/한계로 판단.
실사용(자연스러운 타이핑)에서도 재현되는지는 미확인 — 별도 조사 필요 시 참고.