주소창 한선씨 입력위젯 네이티브 배선 완성
개요
주소창입력위젯.한선의 키누적/제출키인가 로직을
crowny-browser.m ObjC 경로에 배선.
한선씨가 주소창 입력 의미론의 주체가 되는 구조 완성.
무엇을 했는지
1. 주소창입력위젯.한선 — key 모드 진입점 추가 (줄 200~235)
CROWNY_ADDR_MODE=key + CROWNY_ADDR_VALUE + CROWNY_ADDR_KEY 환경변수로 키누적() 호출
- 갱신된 버퍼를 stdout 마지막 줄로 출력 → ObjC
runAddrWidgetKey() 파싱
2. crowny-browser.m — 상수 + 함수 추가 (줄 533~605 사이)
kAddrWidgetSrc / kAddrWidgetToau 상수
ensureAddrWidgetToau() — 소스 더 새것이면 재빌드 (브라우저크롬 패턴 동일)
runAddrWidgetKey() — key 모드로 한선씨 위젯 호출, stdout 마지막 줄 파싱
3. crowny-browser.m — accumulateKey: 배선
CROWNY_ADDR_DELEGATE=1 환경변수 시 runAddrWidgetKey() 경유 (한선씨 정본)
- 미설정 시 ObjC 미러 로직 유지 (성능 우선, 의미론 1:1)
- 한선씨 실패 시 ObjC 폴백 (무중단 보장)
4. crowny-browser.m — refreshChrome 오버레이 (편집 중)
- 편집 중(
_editing=YES)이면 주소창입력위젯.toau의 주소창렌더() cmd를 파싱해 크롬 위에 합성
CROWNY_ADDR_RENDER=0으로 비활성 가능 (디버그용)
5. crowny-browser.m — beginAddressEditing 에 위젯 사전 준비
- 주소창 클릭 시
ensureAddrWidgetToau() 호출 → 첫 입력 지연 최소화
성능 절충
매 키 입력마다 NSTask 기동은 약 20~50ms 지연. 기본값은 ObjC 미러 로직으로 성능 유지.
CROWNY_ADDR_DELEGATE=1로 명시 활성화해야 한선씨 경유. 렌더 오버레이는 항상 한선씨 경유.
관련 파일
/Users/ef/CrownyBrowser/native/주소창입력위젯.한선
/Users/ef/CrownyBrowser/native/crowny-browser.m
검증 결과
- 빌드: EXIT 0, 경고/에러 0
- 자가검증 6/6 티 (헤드리스)
- key 모드 단위검증: 누적 PASS, 백스페이스 PASS
- 실타이핑/시각: 디스플레이 필요, 미실측
잔여 이슈
- IME(한글조합): rank8 별도 작업
CROWNY_ADDR_DELEGATE=1 성능 최적화 (배치 누적 또는 소켓 지속 연결)