JJ_MKVMaker/packages/flutter_inappwebview_windows/JJ_PATCH.md

1.7 KiB

flutter_inappwebview_windows 0.6.0 사본 (JJ_MKVMaker 패치)

원본: https://pub.dev/packages/flutter_inappwebview_windows 0.6.0 (Apache-2.0, pubspec.yaml 의 dependency_overrides 로 사용)

고친 문제 (10/11)

원본의 C++ 쪽은 WebView2 의 다운로드 이벤트를 다루지 않아 useOnDownloadStart · onDownloadStartRequest 가 Windows 에서 듣지 않고, WebView2 가 파일을 스스로 사용자 다운로드 폴더에 받는다. Tor 화면 (lib/ui/tor_page.dart) 은 받기를 하지 않고 안내만 보여야 한다.

수정

  • windows/in_app_webview/in_app_webview.cpp: ICoreWebView2_4::add_DownloadStarting. 그 웹 뷰의 설정 useOnDownloadStart 가 켜져 있을 때만 Cancel = TRUE 로 받지 않고 Dart 의 onDownloadStartRequest (url · mimeType · contentLength) 로 알린다. 꺼져 있으면 (일반 브라우저) 원래대로.
  • windows/in_app_webview/webview_channel_delegate.h/.cpp: onDownloadStartRequest 보내기 추가.
  • example · test 폴더 제거. 고친 곳에는 JJ_MKVMaker: 주석을 달았다.

앱 안 프록시 인증 (10/11)

앱 안 프록시 (DNS 강제 · Tor 다리, 127.0.0.1) 는 같은 기기의 다른 앱이 쓰지 못하게 이번 실행의 비밀값으로 Basic 인증을 묻는다 (407, realm JJ_MKVMaker). 원본은 WebView2 의 인증 이벤트를 다루지 않아 프록시가 물으면 페이지를 열지 못한다.

  • in_app_webview_settings.h/.cpp: 설정 jjProxyAuth ("아이디:비밀값@포트,포트").
  • in_app_webview.cpp: ICoreWebView2_10::add_BasicAuthenticationRequested. 묻는 주소가 그 포트의 127.0.0.1 이고 challenge 의 realm 이 JJ_MKVMaker 일 때만 아이디 · 비밀값을 넣는다. 그 밖 (웹 사이트의 인증) 은 원래대로.