releases/BROWSER_FEATURES_PLAN.md

23 KiB

Video Downloader — 브라우저 기능 강화 계획서 (v2)

목표: 이 앱에 내장된 WebView2 브라우저에 일반적인 데스크톱 브라우저의 핵심 사용자 기능을 심어, 단순 "영상 재생 → 감지" 용도를 넘어 일상적으로 쓸 수 있는 브라우저로 만든다.

작성일: 2026-08-15 (v2 — 2차 심층 조사 반영) · 대상: VideoDownloader.App (WPF + WebView2 1.0.4078.44)

조사 방법론:

  • 1차(2026-08-13): Chrome/Firefox/Zen 3개 브라우저 단일 조사 → v1 초안
  • 2차(2026-08-15): 5개 전문 조사팀 병렬 심층 조사 — ① Chrome+Edge ② Firefox+Vivaldi ③ Zen+Arc ④ Brave+Opera+Safari+기타(Floorp/Orion/Sidekick/Comet) ⑤ WebView2 API 검증팀(Microsoft Learn 팩트체크). 총 80여 회 웹 검색 + 공식 문서 직접 열람.

확장 계획: 모바일 앱 + PC↔모바일 연동은 MOBILE_PLAN.md 로 분리 (2026-08-15, 4개 조사팀 심층 조사 기반 — MAUI 10 컴패니언 앱, LAN QR 페어링, Core 엔진 재사용 검증 포함).


⚠️ v1 → v2 주요 수정 사항 (2차 조사로 판명)

  1. 페이지 내 검색은 네이티브 API로 가능 — v1은 "JS 주입으로 직접 구현"이라 판단했으나 WebView2 1.0.3405.78부터 CoreWebView2.Find가 네이티브 제공된다 (우리 버전 1.0.4078.44에 포함). StartAsync(options) + FindNext()/FindPrevious() + MatchCount/ActiveMatchIndex 이벤트. SuppressDefaultFindDialog=true로 자체 UI 구축. → 공수 대폭 감소, 탭 이전에도 독립 구현 가능
  2. 백그라운드 탭 절전도 네이티브 — CoreWebView2.TrySuspendAsync()/Resume() (WebView가 숨겨진 상태여야 함). Edge Sleeping Tabs와 1:1 대응.
  3. 탭 오디오 표시/음소거 네이티브 — IsDocumentPlayingAudio/IsMuted + 변경 이벤트.
  4. 다중 프로필이 하나의 환경에서 가능 — CreateCoreWebView2ControllerOptions(ProfileName) → 브라우저 프로세스 추가 없이 Firefox 컨테이너 탭 유사 격리. CustomDataPartitionId로 탭 단위 쿠키 격리도 가능.
  5. Arc 브라우저는 2025-05 개발 중단 (유지보수 모드) — 디자인 참고용으로만 차용.
  6. Edge Collections/Drop/사이드바는 2026년 폐지 예정 — 클론하지 않음. 살아남는 Edge 자산은 세로 탭·절전 탭·분할 화면·웹 캡처·몰입형 리더.
  7. WPF airspace 주의 — 표준 WebView2(HwndHost) 위에는 WPF 요소를 올릴 수 없음. WebView2CompositionControl은 DRM 영상 재생 불가(영상 앱엔 치명적) → 표준 컨트롤 유지, 크롬 UI는 WebView2 주변에 배치하는 설계 원칙 확정.

0. 현재 상태 (AS-IS)

MainWindow.xaml(.cs) 단일 WebView2 인스턴스 기반:

영역 구현 여부 비고
주소창 + 이동 + 자동완성/제안 ✅ 히스토리 기반, 인라인 자동완성(Tab/→)
뒤로/앞으로/새로고침/홈 ✅ 상태 동기화
북마크 / 히스토리 ✅ 플라이아웃, JSON 영속(500 캡)
InPrivate 모드 ✅ 재시작 적용
단축키 ✅(일부) Ctrl+L, F5/Ctrl+R, Esc, Alt+←/→, Ctrl+±/0
줌 ✅ 세션 한시적(사이트별 영속 아님)
팝업 → 현재 WebView 라우팅 ✅ NewWindowRequested
페이지 다운로드 → 저장 폴더 ✅ DownloadStarting
영구 프로필 / 데이터 삭제 ✅ %AppData%/VideoDownloader/webview
다크/라이트 테마, 보더리스 ✅ DWM 연동
우측 다운로드 패널(접기/폭) ✅
DevTools, 미디어 자동 감지 ✅ HLS/DASH/직링크/소셜(yt-dlp)

결여: 탭 · 페이지 내 검색 · 다운로드 매니저 UI · 검색엔진 · 북마크바 · 명령 팔레트 · 리더 모드 · 스크린샷 · 전체화면 · 사이트별 설정


1. WebView2 API 역량 매트릭스 (2차 조사 검증 완료)

우리 버전(1.0.4078.44) 기준. 구현 계획의 기술적 토대.

필요 기능 네이티브 API 비고
페이지 내 검색 CoreWebView2.Find → StartAsync(CoreWebView2FindOptions) / FindNext() / FindPrevious() / Stop(), MatchCountChanged·ActiveMatchIndexChanged 이벤트 대소문자·단어일치·전체 강조 옵션 내장. SuppressDefaultFindDialog=true 필수(자체 UI)
다중 탭 공유 CoreWebView2Environment + N개 WebView2 컨트롤 인스턴스당 메모리 부담 → 절전과 짝꿍. 브라우저 프로세스 1개 공유
탭 절전 TrySuspendAsync() / Resume() / IsSuspended / MemoryUsageTargetLevel 숨겨진(비활성) 탭에서만 동작. 자동으로 Low 모드 진입
오디오 IsMuted(읽기/쓰기) · IsDocumentPlayingAudio · 변경 이벤트 음량 조절은 불가(뮤트만). 초기화 전 뮤트 설정은 안 먹는 버그(#2120)
컨테이너/프로필 CreateCoreWebView2ControllerOptions(ProfileName, IsInPrivateModeEnabled), CoreWebView2Profile, CustomDataPartitionId 한 환경에서 여러 프로필 = 프로세스 추가 없이 쿠키/세션 격리
다운로드 관리 DownloadStarting + CoreWebView2DownloadOperation: Pause()/Resume()/Cancel(), BytesReceived/TotalBytesToReceive/State/InterruptReason, 이벤트 3종 속도는 BytesReceived 델타로 자체 계산
팝업→새 탭 NewWindowRequested: e.NewWindow = 새탭.CoreWebView2, GetDeferral() 탭 생성이 비동기라 deferral 필수
줌 Controller.ZoomFactor + ZoomFactorChanged 컨트롤러(탭) 단위. 사이트별 영속은 WebView2이 보장 안 함 → 앱 설정에 도메인→배율 저장 후 NavigationCompleted 때 재적용
파비콘/제목 DocumentTitle(Changed), FaviconUri(Changed), GetFaviconAsync(Png) 탭 UI 재료
컨텍스트 메뉴 ContextMenuRequested + CreateContextMenuItem 기본 메뉴 항목 재구성 + 커스텀 항목(「이 링크의 영상 받기」 등)
권한 PermissionRequested + Profile.SetPermissionStateAsync(kind, origin, state) 알림/카메라/마이크/자동재생 등 사이트별 영속
쿠키 CookieManager(Profile 스코프)
인쇄/PDF ShowPrintUI(), PrintAsync(settings), PrintToPdfAsync(path)
C#↔JS 브리지 PostWebMessageAsJson ↔ WebMessageReceived, AddScriptToExecuteOnDocumentCreatedAsync 리더 모드/부스트/요소 zap의 기반. CSP에 막히지 않음(단 Trusted Types DOM 싱크 주의)
알림 NotificationReceived (비영속 알림만, 호스트가 직접 표시) 푸시(서비스워커) 알림은 미지원
스크린샷 CapturePreviewAsync(뷰포트만) / CDP Page.captureScreenshot(captureBeyondViewport:true로 전체 페이지) 전체 페이지 캡처는 CDP 경유
오류 페이지 IsBuiltInErrorPageEnabled=false + 실패 시 NavigateToString 재진입 가드 필요(#634)
상태바 링크 미리보기 StatusBarText(Changed) 링크 호버 시 하단 표시

자체 구현 필요 (네이티브 없음): 리더 모드(Readability.js 주입) · 검색엔진 로직(순수 호스트) · 히스토리/북마크 저장(이미 보유) · 명령 팔레트 · 탭 그룹/워크스페이스(UI 개념)


2. 조사 결과 종합 — 9개 브라우저의 차별 기능

Chrome (표준의 척도)

탭 그룹(색+이름+접기, 저장된 그룹), Memory Saver(유휴 탭 동결), 탭 검색 Ctrl+Shift+A, @tabs/@bookmarks/@history 주소창 스코프 검색, 키워드 사이트 검색(wiki+Tab), Ctrl+Shift+T 복원, 다운로드 버블(진행 링), 사이트별 줌 영속, 빠른 닫힘. 2025+ : 세로 탭 추가, AI 탭 정리.

Edge (WebView2의 친척 — 가장 직접 참고)

세로 탭(좌측 사이드바, 아이콘 레일 축소+호버 확장), Sleeping Tabs(30초~12h 설정, "zzz" 표시, 절약량 표시), 네이티브 분할 화면, 웹 캡처(영역/전체 페이지+주석, Ctrl+Shift+S), 몰입형 리더(읽어주기 Ctrl+Shift+U, 문법 도구), 즐겨찾기바 "아이콘만" 모드, F4=주소창. (Collections/Drop/사이드바는 2026 폐지 — 미차용)

Firefox

Reader View(F9) — 폰트/간격/테마(밝/어/세피아/대비) + 낭독(TTS); Multi-Account Containers(쿠키 격리 다중 로그인); Enhanced Tracking Protection(실드 아이콘, 3단계); HTTPS-Only; 빠른 찾기 /(즉시), '(링크만); PiP(자동 열림 옵션); 다운로드 패널(.part 재개).

Vivaldi (커스터마이징의 왕)

Quick Commands(F2) — 전 브라우저 액션 명령 팔레트; Tab Stacks(드래그 스택, Compact/2단/아코디언 표시); Tab Tiling(수직/수평/그리드, Ctrl+F9/F8/F7); Workspaces + 규칙(URL 패턴→워크스페이스 자동 라우팅!); 북마크 닉네임(g 검색어); Speed Dial(새 탭 썸네일 그리드); Web Panels(사이드바 고정 사이트); Notes(마크다운, "Add to Note"); Page Actions(CSS 필터: 흑백/반전/세피아/가리개); Capture(전체/영역); 주소창 진행 바, 파라미터 제거 복사, 마우스 제스처, 툴바 편집.

Zen Browser (Firefox 포크, 활발)

세로 탭 철학 + Essentials(전 워크스페이스 상시 아이콘 고정); Workspaces(탭 세트 분리); Split View(최대 4분할); Glance(Alt+클릭 링크 미리보기 플로팅, 닫기/탭으로/분할 버튼); Compact Mode(사이드바 숨김+엣지 호버 복원); Boosts(사이트별: 색 틴트/폰트/요소 zap/강제 다크); 핀 탭 닫으면 언로드(삭제 아님); Mods(CSS+JS 마켓).

Arc (개발 중단 — 개념만 차용)

Command Bar(Ctrl+T 스포트라이트) — 탭/북마크/히스토리/명령/웹검색 통합; Spaces(테마별 공간); Auto Archive(미고정 탭 12h 후 아카이브, 닫기=아카이브, 검색 가능한 복구 목록); Boosts(슬라이더: 색/대비/밝기/채도/세피아/다크/줌 + CSS); Peek(Shift+클릭 미리보기); Air Traffic Control(도메인→Space 자동 라우팅); URL 바 탭별 입력 초안 기억.

Brave

Playlist ★영상 앱에 최적 — 주소창 "미디어 추가" 버튼으로 페이지 영상/오디오를 재생목록에 저장, 백그라운드 재생, 광고 없는 재생, 오프라인 저장; Shields(사이트별 차단 슬라이더 + 차단 카운터); Speedreader(자동 리더).

Opera

Tab Islands(같은 부모에서 연 탭 자동 그룹); Video Popout(호버 버튼→분리 플레이어); 사이드바 메신저; 무료 VPN; Speed Dial; Workspaces.

Safari / 기타

Safari: Tab Groups + Reading List(오프라인 나중읽기), 컴팩트 탭바. Floorp: 멀티로우 탭. Orion: Lazy Load(포커스 시 로드). (Sidekick 2025 종료, Comet/Dia = AI 브라우저 흐름 참고)


3. 도입 기능 목록 (v2 — 재서열)

🏆 Tier 1 — 필수 (일반 브라우저의 기본기)

# 기능 근원 구현 경로 공수
T1-1 탭 시스템 (생성/닫기/전환/Ctrl+Tab·1~9/드래그 정렬/복제) 전 브라우저 공유 Environment + 탭당 WebView2 + NewWindowRequested→새 탭(deferral) L
T1-2 닫은 탭 복원 Ctrl+Shift+T 전 브라우저 닫힘 스택(인덱스+URL 보존) S
T1-3 페이지 내 검색 Ctrl+F (일치 수 X/Y, 다음/이전, 대소문자) 전 브라우저 네이티브 CoreWebView2.Find + 자체 하단 바 S ↓↓
T1-4 검색엔진 (기본 엔진 선택 + 키워드 전환 g , yt + @북마크/@기록 로컬 스코프) Chrome/Vivaldi/Firefox 순수 호스트 로직 + 제안 드롭다운 확장 S~M
T1-5 다운로드 매니저 UI (진행+속도, 일시정지/재개/취소, 폴더 열기, Ctrl+J) Chrome 버블/Vivaldi 패널 CoreWebView2DownloadOperation 풀 API + 앱 카드와 통합 뷰 M
T1-6 북마크바 (주소창 아래, Ctrl+Shift+B, 아이콘만 모드) Chrome/Edge UI 행 S
T1-7 사이트별 줌 영속 전 브라우저 도메인→배율 사전 저장 + NavigationCompleted 재적용 S
T1-8 탭 오디오 표시 + 클릭 음소거 Chrome/Edge IsDocumentPlayingAudio/IsMuted 네이티브 S
T1-9 강제 새로고침 Ctrl+Shift+R 전 브라우저 Profile.ClearBrowsingDataAsync(DiskCache) 후 Reload S
T1-10 세션 복원 (시작 시 이전 탭 복구, 옵션) Chrome/Firefox 탭 URL 리스트 영속 S
T1-11 전체화면 F11 + 비디오 전체화면 지원 전 브라우저 ContainsFullScreenElement 이벤트 + 크롬 자동 숨김 S

🥈 Tier 2 — 강력 추천 (차별화 + 사용성 대폭 향상)

# 기능 근원 구현 경로 공수
T2-1 명령 팔레트 (Ctrl+K: 탭/북마크/기록/액션/웹검색 통합) Arc Command Bar / Vivaldi Quick Commands 호스트 UI + 기존 데이터 재사용 M
T2-2 탭 절전 (유휴 탭 자동 서스펜드, "zzz" 표시, 예외 사이트) Edge Sleeping Tabs / Zen TrySuspendAsync/Resume + 유휴 타이머 M
T2-3 분할 화면 (2~4분할, 드래그 배치, 분할 닫기) Zen Split / Edge / Vivaldi Tiling Grid + GridSplitter + WebView2 복수 M~L
T2-4 리더 모드 (F9, 본문 추출 + 폰트/테마) Firefox/Zen Readability.js 주입 + 스타일 오버레이 M
T2-5 세로 탭 레이아웃 (좌측 사이드바, 축소 레일, 토글) Edge/Zen 탭 스트립 위치 전환 M
T2-6 Glance 링크 미리보기 (Alt+클릭 → 플로팅 미리보기, 탭으로 승격 버튼) Zen Glance / Arc Peek 오버레이 WebView2 창 M
T2-7 사이트별 Boost (강제 다크 / 색 틴트 / 요소 zap / 줌 기억) Zen·Arc Boosts 도메인별 CSS 주입 AddScriptToExecuteOnDocumentCreated M
T2-8 탭 검색 Ctrl+Shift+A (열린+최근 닫힘 탭 검색 점프) Chrome/Edge 호스트 UI S
T2-9 스크린샷 (보이는 영역 / 전체 페이지, Ctrl+Shift+S) Firefox/Edge/Vivaldi CapturePreviewAsync / CDP captureBeyondViewport S~M
T2-10 미디어 재생목록 ★영상 앱 핵심 — 감지된 영상을 재생목록에 쌓고 앱 내 재생/백그라운드 Brave Playlist 감지 파이프라인 + 내장 플레이어 컨트롤 L
T2-11 탭 그룹 (색+이름, 접기, 도메인별 자동 그룹) Chrome 탭 그룹 / Opera Islands 탭 모델 확장 M
T2-12 웹 캡처 → 다운로드 큐 연동 (우클릭 "이 링크 영상 받기") 커스텀 ContextMenuRequested 커스텀 항목 S

🥉 Tier 3 — 선택 (돋보이는 기능)

# 기능 근원 비고
T3-1 워크스페이스 + 도메인 라우팅 규칙 ("youtube.com → 영상 공간") Zen/Vivaldi 규칙/Arc ATC 탭 세트 스왑
T3-2 Auto-Archive 탭 수명주기 (닫기=아카이브, 캐던스 설정, 복구 패널) Arc 히스토리와 통합
T3-3 컨테이너/다중 프로필 (탭별 쿠키 격리 다중 로그인) Firefox/Zen ProfileName/CustomDataPartitionId
T3-4 빠른 찾기 / · '(링크만) Firefox Find API 래핑
T3-5 컨텍스트 메뉴 전면 커스터마이징 — ContextMenuRequested (T2-12 확장)
T3-6 Page Actions (CSS 필터: 흑백/반전=다크/세피아/가리개) Vivaldi Boost와 통합 가능
T3-7 PiP 영상 팝아웃 (호버 버튼 → 항상 위 창) Firefox/Opera Document PiP API or 별도 창
T3-8 Speed Dial 새 탭 페이지 (썸네일 그리드) Opera/Vivaldi 내장 HTML
T3-9 읽어주기(TTS) Edge/Firefox 리더 모드와 세트, Windows TTS
T3-10 인쇄/PDF Ctrl+P / 소스보기 Ctrl+U 전 브라우저 PrintToPdfAsync 등 네이티브
T3-11 권한 UI (알림/카메라/마이크/자동재생 사이트별) Chrome/Firefox PermissionRequested
T3-12 노트 패널 (마크다운, "Add to Note") Vivaldi/Arc 후순위
T3-13 컴팩트 모드 (크롬 전체 숨김, 엣지 호버 복원) Zen/Arc 전체화면과 통합
T3-14 추적 방지 표시 (차단 카운터 실드) Firefox/Brave WebResourceRequested 필터
T3-15 주소창 진행 바 + 파라미터 제거 복사 Vivaldi 소소한 완성도

❌ 의도적 미차용: 비밀번호 관리(자동저장 토글만), 실제 확장 프로그램 생태계, 클라우드 동기화, AI 사이드바(방향 불명확), Edge Collections/Drop(폐지), VPN/Tor(범위 외)


4. 구현 로드맵 (의존성 순, v2)

Phase 0 — 즉효 퀵윈 (탭 이전 독립 구현 가능, 반나절~1일)

신규 발견: 네이티브 API 덕에 탭 대공사 없이 먼저 넣을 수 있는 것들.

  • T1-3 페이지 내 검색 — CoreWebView2.Find + 하단 검색 바(Ctrl+F/F3/Esc). 가성비 1위로 승격
  • T1-4 검색엔진 — URL 판별 → 검색 URL 조합, 기본 엔진 설정(Google/Bing/DDG), g 키워드
  • T1-7 사이트별 줌 영속
  • T1-9 강제 새로고침
  • T1-11 전체화면 F11

Phase A — 탭 아키텍처 (대공사, 모든 탭 기능의 전제)

  • Browser/TabViewModel + TabManager 신규 — 공유 CoreWebView2Environment, 탭당 WebView2
  • 탭 스트립 UI(가로 우선, 세로는 T2-5) + 활성 탭만 Visible
  • 기존 로직 전면 리팩터: 주소창/네비/감지(OnResponseReceived 전 탭 구독→중계)/북마크/히스토리/DetectSocial → 활성 탭 대상
  • 단축키: Ctrl+T/W/Tab/1~9, Ctrl+Shift+T(T1-2 복원 스택)
  • NewWindowRequested → 새 탭(deferral 패턴) 교체
  • T1-8 오디오 표시/뮤트, T1-10 세션 복원
  • ⚠️ 저장소가 git이 아님 → 착수 전 git init 필수. 감지 로직 회귀 테스트 체크리스트 작성.

Phase B — 탭 보조 + 핵심 완성

  • T1-5 다운로드 매니저 — 페이지 다운로드(DownloadOperation) + 영상 카드 통합 뷰, 속도/일시정지/재개
  • T1-6 북마크바 (+아이콘만 모드)
  • T2-2 탭 절전 — 유휴 타이머 → TrySuspendAsync, 재활성 Resume
  • T2-8 탭 검색 Ctrl+Shift+A
  • T2-12 우클릭 "이 링크 영상 받기" — 컨텍스트 메뉴 커스텀 (다운로더 앱의 시그니처)

Phase C — 차별화 (Zen/Arc/Vivaldi 영감)

  • T2-1 명령 팔레트 Ctrl+K — 탭/북마크/기록/액션(다운로드·줌·테마·InPrivate)/웹검색
  • T2-3 분할 화면 — 플레이어 + 다운로드 큐 용도
  • T2-4 리더 모드 — Readability.js 번들
  • T2-6 Glance Alt+클릭 미리보기
  • T2-7 Boost — 강제 다크/틴트/요소 zap(사이트별 광고 제거)
  • T2-9 스크린샷, T2-5 세로 탭, T2-11 탭 그룹

Phase D — 시그니처 + 정제

  • T2-10 미디어 재생목록 ★ — 감지된 영상 → 재생목록 패널 → 내장 재생/백그라운드 (Brave Playlist 관점, 우리 앱의 정체성)
  • T3-1 워크스페이스+도메인 라우팅, T3-2 Auto-Archive, T3-3 컨테이너, T3-7 PiP, T3-8 Speed Dial 등

5. 우선순위 TOP 5 (v2 — 공수 재평가 반영)

순위 기능 이유
1 Phase 0 전체 (검색·검색엔진·줌·F11) 탭 없이도 즉시 체감. 특히 페이지 내 검색은 네이티브 API로 반나절.
2 Phase A 탭 브라우저 정체성의 기반. 이후 모든 것의 전제.
3 다운로드 매니저 (T1-5) 다운로더 앱인데 관리 UI 부재가 최대 모순.
4 명령 팔레트 (T2-1) 모든 기능의 통합 입구 — 기능이 많아질수록 가치 증가.
5 미디어 재생목록 (T2-10) Brave Playlist 관점 — "영상 다운로더 브라우저"의 시그니처 기능.

6. 기술 노트 & 리스크 (2차 검증 반영)

  • airspace: 표준 WebView2(HwndHost)는 최상위 렌더 → WPF 오버레이 불가. WebView2CompositionControl은 DRM 영상 실패 → 불가침 원칙: 크롬 UI는 WebView2를 덮지 않고 둘러싼다. (Glance/커맨드 팔레트는 별도 창 or 여백 배치)
  • 탭 메모리: 인스턴스당 수십 MB. → 절전(T2-2)을 Phase B에 배치, 최대 탭 수 가드(옵션), Zen식 "핀 탭 닫으면 언로드" 채택 고려.
  • 줌 영속: WebView2이 사이트별 줌을 보장하지 않음(#2451/#3459) → 앱 설정 사전이 SSOT.
  • Find API: 옵션 변경 시 재 Start. HTML/텍스트 문서만. SuppressDefaultFindDialog=true로 Edge 기본 바 차단.
  • 뮤트 버그: 첫 네비게이션 전 IsMuted=true는 무시될 수 있음(#2120) → 초기화 후 설정.
  • ClearBrowsingDataAsync 셧다운: 앱 종료 중 호출 미완료 이슈(#3176) → 종료 경로에서 호출 금지.
  • Trusted Types: 일부 사이트에서 innerHTML 주입이 막힘 → textContent/createElement 사용.
  • 미디어 감지 다중화: WebResourceResponseReceived를 탭마다 구독하되 TabManager가 출처 태깅 후 DownloadManager.OnDetected 중계 (카드에 탭 출처 표시).

7. 성공 기준 (완료 정의)

  • Ctrl+F 검색 바: 일치 수 표시, 다음/이전, Esc 닫기 동작
  • 주소창에 검색어 → 선택한 엔진으로 검색; g /yt 키워드 전환 동작
  • 여러 탭 열기/전환/닫기, 각 탭 독립 네비게이션·감지, Ctrl+Shift+T 복원
  • 탭에서 오디오 재생 시 스피커 아이콘 + 클릭 뮤트
  • 사이트별 줌 재방문 시 유지
  • 다운로드 매니저에서 페이지 다운로드 일시정지/재개/취소 + 속도 표시
  • 북마크바 표시/숨김(Ctrl+Shift+B) + 원클릭 이동
  • 종료 시 탭 저장 → 시작 시 복원(옵션)
  • dotnet build 0 오류/0 경고, 기존 미디어 감지·다운로드 회귀 없음

출처 (2차 조사 핵심 링크)

WebView2 API (Microsoft Learn):

  • CoreWebView2.Find / CoreWebView2Find: learn.microsoft.com/en-us/dotnet/api/microsoft.web.webview2.core.corewebview2.find
  • 성능(서스펜션): learn.microsoft.com/en-us/microsoft-edge/webview2/concepts/performance
  • 멀티 프로필: learn.microsoft.com/en-us/microsoft-edge/webview2/concepts/multi-profile-support
  • 다운로드: …/corewebview2downloadoperation · 컨텍스트 메뉴: …/webview2/how-to/context-menus
  • WPF 플랫폼(airspace/CompositionControl): …/webview2/platforms/wpf

Chrome/Edge: support.google.com/chrome/answer/157179 (단축키) · …/2391819 (탭 관리) · explore.microsoft.com/en-us/edge/features (vertical tabs·sleeping tabs·split screen·web capture) · support.microsoft.com/…/keyboard-shortcuts-in-microsoft-edge

Firefox/Vivaldi: support.mozilla.org (keyboard shortcuts·reader view·ETP·HTTPS-only·PiP·screenshots) · help.vivaldi.com (tab-stacks·tab-tiling·workspaces·address-field·quick-commands·web-panels·page-actions)

Zen/Arc: docs.zen-browser.app (workspaces·split-view·glance·compact-mode·urlbar·shortcuts) · resources.arc.net (Spaces·Auto-Archive·Boosts·Peek·Air Traffic Control·Command Bar)

Brave/Opera/기타: brave.com/playlist · brave.com/shields · opera.com/features (tab-islands·video-popout·workspaces) · docs.floorp.app · Apple Support (Safari tab groups·reading list)

전체 원문 리포트: 5개 조사팀 상세 보고서는 세션 에이전트 결과로 보존됨.