Commit Graph

4 Commits (split_pages)

Author SHA1 Message Date
RyuJongJin 44c69af83e 통합 시험 종료 코드: 다 통과했는데 0 이 아니던 것 (ai_e2e · browser_keep · dns_block_real) 고침 (관리자 지시 10/20)
- ai_e2e: 앱 임시 폴더 (jj_mkvmaker) 가 실행 폴더에 남아 exit 2 → 새 도우미 appTempInto 로 시험 폴더 아래에 두고
  시험 끝에 기준을 되돌린 뒤 함께 지움 (ai_cancel · ai_long 도 같게). 사용자 %TEMP%\jj_mkvmaker 는 건드리지 않음
- dns_block_real (· cef_dns_real · tor_dns_real): Edge (WebView2) 사용자 데이터 폴더는 heldByApp (jj_held_)
- tool/test_temp_check.ps1: 실행 폴더 지우기를 Edge 가 놓을 때까지 2초 간격 최대 30번 다시 해 봄,
  rd 오류는 cmd 안에서 버림 (PowerShell 의 2>$null 이 ErrorActionPreference Stop 에서 오류가 되어 exit 1 이었음).
  지우는 것은 그 실행 폴더 안뿐
- 확인: 다섯 파일 모두 -d windows · test_temp_check 로 exit 0, 남은 것 0, 실행 폴더 지워짐. analyze 문제 없음

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 19:46:21 +09:00
RyuJongJin 25a0cd3c96 WIP 통합 시험 · 캡처의 임시 폴더: 시험 끝에 (실패해도) 지우기 · test_temp_check 가 통합 시험에도 (검토 대기)
관리자 지시 (10/19, 28 이 찾음): Windows 캡처 · 통합 시험 (integration_test, -d windows) 이 %TEMP%\jj_* 시험 폴더를 남겼다
(시험 본문 끝의 deleteSync 는 실패하면 건너뛰고, 앱 · WebView 가 파일을 잡고 있으면 지우기가 실패했다).
- 새 integration_test/support/temp_dir.dart: testTempDir(prefix, {base}) - 만들면서 addTearDown 으로 지우기를 걸어 실패해도 지운다.
  잠겨 있으면 0.25초씩 20번 다시 (실제 시간 - 가짜 시계 밖), 긴 경로는 \?\, 끝내 못 지우면 알리기만.
  통합 시험 26개 파일의 Directory.systemTemp.createTempSync('jj…') 를 모두 이것으로 (JJ_SHOT_TMP 를 쓰는 캡처 도우미 포함).
- tool/test_temp_check.ps1: integration_test 의 이름 (testTempDir 포함) 도 모은다. 넘겨받은 .dart 파일이 있으면 그 파일과 그것이 import 하는
  support 파일의 이름만 센다 - 같은 때 다른 세션 · worktree 가 돌린 시험의 폴더 (jj_explorer_ · jj_sync_ · jj_fake_recycle_) 를 세던 거짓 실패를 없앰.
  시험 소스에 없는 이름의 새 jj 폴더는 참고로만 보인다. 사용: test_temp_check.ps1 integration_test\windows_b6_shot_test.dart -d windows
- com_guard_test 의 쓰지 않는 dart:io import 정리 (analyze).

시험: windows_b6 · windows_xplore · windows_ftp · windows_wifi 캡처 통과 · 새로 남은 것 0 (test_temp_check), analyze 문제 없음.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 21:51:39 +09:00
RyuJongJin 620cd63e34 Chrome 엔진: 관리자 권한이면 시작 안 함 (설정으로 허용) · 20초 안전망 · 인증 없는 숨긴 문 (207) · DNS 강제를 앱 시작 맨 앞에
- 207 원인: Chromium 은 관리자 권한으로 실행되면 권한을 낮춰 다시 띄우려고 스스로 끝난다 (CefInitialize false, 종료 코드 38).
  관리자 판단 (보안 우선): 관리자 권한이면 Chrome 엔진을 시작하지 않고 이유 · [Edge 엔진으로 바꾸기] · [그래도 Chrome 엔진 쓰기…] (경고 확인).
  환경 설정 > 브라우저 "관리자 권한일 때도 Chrome 엔진 쓰기 (권장하지 않음)" (처음 꺼짐) 를 켜면 --do-not-de-elevate (webview_cef 패치 7).
- 20초 안에 준비되지 않으면 "Chrome 엔진을 시작하지 못했습니다" · [Edge 엔진으로 바꾸기] · [다시 시도]. 시작 중에 닫을 때의 LateInitializationError 고침.
- Chrome 엔진은 프록시 인증에 답하지 않아 (CEF 149 windowless 에서 GetAuthCredentials 가 불리지 않음, 확인) 인증 없는 문을
  실행마다 고른 127.x.y.z 의 빈 포트에, Chrome 엔진 웹 뷰가 있는 동안만 연다 (관리자 결정). 듣지 않던 옛 인증 패치는 걷어냄.
- DNS 강제: HttpOverrides 를 main · runAndroid · runSecondWindow 맨 앞에서 건다. 그 전에 만들어 두던 HttpClient
  (새 버전 확인 · 구성 요소 · 도구 받기 · 자막 검색) 가 정한 DNS 를 거치지 않고 시스템 DNS 로 나가던 것 (닿지 않는 DNS 시험판에서 발견).
- 안내 문구: DNS 서버에 닿지 않음은 예외 원문 대신 무엇을 확인할지, Tor 연결이 2분 넘게 멈추면 몇 % 에서 멈췄는지와 [다시 시도].
- 시험: cef_elevation_test (4), dns_proxy_test (Chrome 엔진 문 · 일찍 만든 HttpClient 도 정한 DNS).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 00:23:20 +09:00
RyuJongJin 697235073e Tor · DNS 보완: 앱 안 프록시 인증 · Android 웹 뷰 문 · Tor 화면 떠남 정리 · 다운로드 막기
관리자 결정 (10/11) · 기기 확인 (노트 10+, 911 시험판 1~6 통과) 에 따라 0d1ea93 을 보완.
- 앱 안 프록시 (DNS 강제 · Tor 다리) 인증: 실행마다 새 무작위 비밀값 (저장 안 함) 으로 Basic Proxy-Authorization, 틀리면 407.
  HttpClient (findProxy) · yt-dlp (--proxy) · aria2 (--all-proxy-user/passwd) · Edge (WebView2 BasicAuthenticationRequested) ·
  Chrome 엔진 (webview_cef 패치 7, GetAuthCredentials) 이 이 프록시에만 답한다. 127.0.0.1 에만 묶음.
- Android 웹 뷰는 프록시 인증에 답하지 못해 (기기 확인) 인증 없는 "문" 을 따로: 실행마다 고른 127.x.y.z 의 빈 포트,
  웹 뷰 화면 (일반 브라우저 · Tor 화면) 이 맨 앞에 보이고 앱이 앞일 때만 연다 (그 밖엔 닫힌 포트 127.0.0.1:9).
  "다른 화면으로 가면 소리 멈춤" 을 끈 사용자는 일반 브라우저가 살아 있는 동안 DNS 문 유지 (사용자 설정을 따름). Tor 문은 따로.
- Tor 화면을 떠나면 (다른 화면 · 앱이 뒤로) 바로 웹 뷰 · 쿠키 정리, 프록시 · 다리 되돌림. tor 는 설정 시간 (처음 2분, 0 = 바로) 뒤 끔.
  남은 Tor 웹 뷰가 있는 동안은 Tor 문 · 닫힌 포트만 건다 (앱이 뒤에 있어 화면을 그리지 않아도 일반 쪽으로 나가지 않게).
- Tor 화면 파일 링크는 받지 않고 안내 (Windows: flutter_inappwebview_windows 0.6.0 사본에 DownloadStarting, JJ_PATCH.md · 고지).
- 시험: web_proxy_gate_test (새), tor_test · dns_proxy_test 보강, integration_test tor_dns_real_test 보강 · cef_dns_real_test (새, 207 확인용).
- analysis_options: packages/flutter_inappwebview_windows 를 분석에서 뺌 (다른 고친 외부 부품과 같게).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 22:36:32 +09:00