diff --git a/BROWSER_FEATURES_PLAN.md b/BROWSER_FEATURES_PLAN.md index 03b5264..4864d76 100644 --- a/BROWSER_FEATURES_PLAN.md +++ b/BROWSER_FEATURES_PLAN.md @@ -8,7 +8,7 @@ > - 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 엔진 재사용 검증 포함). +> **확장 계획**: 모바일 앱 + PC↔모바일 연동은 **`MOBILE_PLAN.md`** 로 분리 (2026-08-15, 4개 조사팀 심층 조사 기반 — MAUI 10 컴패니언 앱, LAN QR 페어링, Core 엔진 재사용 검증 포함). 멀티플랫폼 배포(Win/macOS/Linux/모바일)는 **`DEPLOYMENT_PLAN.md`** 로 분리. --- diff --git a/MOBILE_PLAN.md b/MOBILE_PLAN.md index 2420894..2366f98 100644 --- a/MOBILE_PLAN.md +++ b/MOBILE_PLAN.md @@ -2,7 +2,7 @@ > **목표**: Windows 비디오 다운로더(내장 브라우저)에 **모바일 앱을 만들고 PC↔모바일을 연동**한다. 핵심 질문 — "모바일에서 이 앱과 무엇을 하게 할 것인가?"에 대한 조사 기반 답변. > -> **작성일**: 2026-08-15 · **관련 문서**: `BROWSER_FEATURES_PLAN.md` (v2, 데스크톱 브라우저 기능) +> **작성일**: 2026-08-15 · **관련 문서**: `BROWSER_FEATURES_PLAN.md` (v2, 데스크톱 브라우저 기능) · `DEPLOYMENT_PLAN.md` (Win/macOS/Linux/모바일 배포 체계) > > **조사 방법론**: 4개 전문 조사팀 병렬 심층 조사 — ① 모바일 브라우저 UX(Chrome/Safari/Firefox/Samsung/Brave 모바일) ② PC↔모바일 연동 패턴(20여 개 제품: Chrome Send Tab, Handoff, Phone Link, LocalSend, KDE Connect, Jellyfin 등) ③ 모바일 영상 생태계(iOS/Android 제약, 다운로더 앱 생존 모델, 미디어 서버) ④ 기술 스택 검증(**실제 코드베이스 grep 포함**). 총 73회 웹 검색 + 공식 문서 열람. diff --git a/VideoDownloader.App/Browser/Tabs/TabItem.cs b/VideoDownloader.App/Browser/Tabs/TabItem.cs index 4f98a45..7bc220b 100644 --- a/VideoDownloader.App/Browser/Tabs/TabItem.cs +++ b/VideoDownloader.App/Browser/Tabs/TabItem.cs @@ -14,7 +14,6 @@ public sealed class TabItem : INotifyPropertyChanged /// CoreWebView2 (초기화 전 null) public Microsoft.Web.WebView2.Core.CoreWebView2? Core => View?.CoreWebView2; - private string _title = "새 탭"; public string Title { get => _title; set => Set(ref _title, value); } @@ -45,6 +44,11 @@ public sealed class TabItem : INotifyPropertyChanged /// 닫힌 시점의 인덱스(닫힌 탭 복원용). 열려 있는 동안은 무의미. internal int ClosedIndex { get; set; } = -1; + // ---- 탭별 일시 상태(앱 레이어 전용) ---- + internal string? PendingHistoryUrl; // SourceChanged → 타이틀 확정 사이의 기록 대기 URL + internal string? PendingSocialUrl; // 소셜 카드 제목 갱신 대기 URL + internal FindSession? FindSession; // 탭별 페이지 내 검색 세션 (cv 바인딩) + public event PropertyChangedEventHandler? PropertyChanged; private void Set(ref T field, T value, [CallerMemberName] string? name = null) diff --git a/VideoDownloader.App/MainWindow.xaml b/VideoDownloader.App/MainWindow.xaml index eaafcb5..d1a1a08 100644 --- a/VideoDownloader.App/MainWindow.xaml +++ b/VideoDownloader.App/MainWindow.xaml @@ -153,6 +153,7 @@ + @@ -209,8 +210,68 @@ + + + +