크라우니브라우저 실행 + 기본 브라우저 세팅 + 듀얼탭(초기버전)
개요
크라우니브라우저(
/Users/ef/CrownyBrowser/native/crowny-browser.m, WebKit 하이브리드 Path A)를
①실행, ②macOS 기본 웹 브라우저로 등록, ③
크라우니전용탭/범용탭 듀얼탭을 열 수 있게 초기버전 구현.
무엇을 했는지
1) 듀얼탭 (초기버전) — crowny-browser.m
탭바 새 탭 버튼 2개로 분리:
+ = 크라우니전용탭 → crowny://app/런처 (네이티브 앱뷰, WebKit 0)
🌐 = 범용탭 → 시작 페이지(WKWebView 일반 웹)
메뉴: File > 새 크라우니 탭 (⌘T) / 새 범용 탭 (⇧⌘T)
분기는 기존 createTabWithURL: 스킴 디스패치 재사용
(
crowny://app→네이티브 /
crowny://web→순수한선씨 /
http(s)→WKWebView).
- 외부
open -b 로 온 crowny:// URL 의 퍼센트 인코딩 한글 디코드(제목/주소창 정리).
2) 기본 브라우저
CrownyBrowser.app 번들 생성: native/make-app.sh → /Users/ef/CrownyBrowser/CrownyBrowser.app
Info.plist 에 CFBundleURLTypes http/https/crowny + public.html 문서뷰어 선언 → 기본 브라우저 후보 등록.
lsregister -f 로 Launch Services 등록.
application:openURLs: 핸들러 추가 → 다른 앱의 링크 클릭 수신:
http/https → 범용탭(WKWebView), crowny:// → 크라우니전용탭(네이티브).
UI 준비 전 도착분은 _pendingURLs 에 쌓아 didFinishLaunching 끝에서 드레인.
set-default-browser(native/set-default-browser.m) → LSSetDefaultHandlerForURLScheme
http/https/crowny 를
org.crowny.browser 로 지정.
crowny:// 는 즉시 설정됨.
http/https 는 macOS 보안상 시스템 확인 대화상자(CoreServicesUIAgent) 승인 필요 —
백그라운드 프로세스의 기본 브라우저 무단 탈취 차단. 우회 불가.
사용자가 "CrownyBrowser 사용" 클릭 또는 시스템 설정 > 데스크탑 및 Dock > 기본 웹 브라우저 = CrownyBrowser.
3) 한선씨 동반 (가드레일 — 플랫폼락 더블)
src/탭종류판정.한선 — 듀얼탭 라우팅 4상 정본(네이티브/순수/범용/시작). 검증 7/7 티.
- 학습DB 등록: intent
브라우저_듀얼탭_종류판정.
라이브 검증
.app 실행(PID 확인), 탭바에 +·🌐 듀얼 버튼 노출.
외부 URL E2E:
open -b org.crowny.browser https://crowny.org → 범용탭("새 탭", WKWebView) 생성.
open -b org.crowny.browser crowny://app/메모 → 크라우니전용탭(메모앱 네이티브 렌더, MEMO 카드) 생성.
빌드 회귀 0(에러/경고 0), 바이너리 232KB.관련 파일
native/crowny-browser.m — 듀얼탭 버튼/액션/메뉴, openURLs, 퍼센트 디코드
native/make-app.sh — CrownyBrowser.app 번들 생성기
native/set-default-browser.m — 기본 브라우저 지정 헬퍼
src/탭종류판정.한선 — 한선씨 동반(라우팅 정본)
/Users/ef/CrownyBrowser/CrownyBrowser.app — 산출 번들
잔여 이슈
- http/https 기본 지정 = 사용자 1회 시스템 대화상자 승인 필요(보안, 불가피).
- 앱탭 제목이 "앱: 메모" 형태 — 더 친화적 표기(이모지/한글만) 여지.
- 향후: 앱 내 "기본 브라우저로 설정" 메뉴(GUI 컨텍스트에서 호출 시 대화상자 더 자연스러움).