Repository navigation
Releases: jacking75/TabBouncer
Releases · jacking75/TabBouncer
Release list
TabBouncer v1.1.1
수정
- Chrome도 함께 닫으며 종료할 때 응답을 기다리는 동안 창이 멈추던 문제를 고쳤다. 종료 처리를 비동기로 바꾸고, CDP 연결 정리가 상대의 종료 응답을 기다리지 않도록 했다. 송신 대기에도 명령 제한 시간을 적용하고 종료 시 대기 중인 명령을 취소한다.
- 페이지 안 iframe이 문서를 불러오면 그 iframe 주소를 탭 주소로 잘못 기록하던 문제를 고쳤다. 그 페이지에서 열린 팝업은 탭을 연 페이지(opener)를 iframe 주소로 보고 판정했다. 특히
data:주소 iframe이 있으면 opener가 없는 탭으로 보고 광고 팝업을 닫지 않았고, 광고 도메인으로 등록한 사이트도 버튼을 눌러 열리면 "유지"로 남았다. - 버튼을 눌러 열린 새 탭이라도 광고 도메인이면 "버튼을 눌러 열림" 감점을 적용하지 않는다. 광고 도메인으로 등록한 사이트는 다른 가산점이 없어도 닫힌다.
TabBouncer v1.1.0
추가
- 트레이 아이콘을 추가했다. 최소화나 닫기(X)를 누르면 트레이로 숨고, 트레이 메뉴에서 감시·관측 모드·Chrome 열기·로그 폴더 열기·종료를 할 수 있다. 트레이로 숨기지 않고 바로 끝낼 수 있게 창에도 완전 종료 버튼을 두었다.
- 광고 탭을 닫거나 이동을 되돌리면 Windows 알림을 띄운다. 3초 안의 여러 건은 한 번에 알린다.
- 완전히 종료할 때 전용 Chrome도 닫을지 묻는다. "다음부터 묻지 않기"를 고를 수 있다.
- 최근 목록에 종류 열과 상세 패널을 추가했다. 판정 사유를 사람이 읽는 문구로 보여 주고, 항목별 점수 내역을 표시한다.
- 최근 목록에서 같은 사이트(호스트)의 같은 종류 항목이 반복되면 새 행을 만들지 않고 횟수 열을 올린다. 상세 패널에 반복 횟수와 처음 시각을 보여 준다. 이전 실행 기록을 복원할 때도 같은 기준으로 묶는다.
- 설정 창 사이트 목록 탭의 입력칸을 목록 위의 파란 테두리 영역으로 옮겨 눈에 띄게 했다. 탭을 열면 입력칸에 바로 커서가 가고, 등록된 항목 수를 보여 준다.
- 기준에 조금 못 미쳐 유지한 탭과 관측 모드에서 닫았을 탭도 목록에 보여 준다. 목록에서 광고 도메인으로 등록, 감시 사이트로 등록을 할 수 있다.
- 이전 실행의 최근 기록 20개를 목록에 복원하고, 누적 차단 수를 보여 준다.
- 구조화된 설정 창을 추가했다. 일반, 사이트 목록, 고급(JSON) 탭으로 편집하고, 값을 검사한 뒤 저장한다. 기본값으로 복원할 수 있다.
- 메인 창에서 주소를 입력해 전용 Chrome에 바로 열 수 있다.
- 즐겨찾기 사이트를 안내 페이지에 바로가기로 보여 주고, 바탕화면 바로가기를 만들 수 있다.
- 안내 페이지에서 감시 일시중지와 관측 모드를 바꿀 수 있고, 이번 실행의 차단 수를 보여 준다.
- 실행 즉시 감시를 시작하는 옵션과 Windows 로그인 시 자동 실행 옵션을 추가했다.
- 영어 화면을 추가했다. 화면 문구와 활동 로그 문구는 실행 파일 옆
languages.json한 파일에 언어별로 들어 있고, 한국어가 기본 언어다. 설정의 화면 언어에서 이 파일에 등록된 언어를 고르거나 Windows 표시 언어를 따르게 할 수 있다. 파일에 언어를 더하면 목록에 나타난다. - Chrome이 없으면 Microsoft Edge, Brave, Chromium을 찾아 쓴다.
- 창 위치·크기를 기억하고, 키보드 단축키(Ctrl+M, Ctrl+D, Ctrl+O, Ctrl+L, Ctrl+Z, Ctrl+,, Ctrl+Q)를 추가했다.
- 활동 영역에 로그 폴더 열기와 진단 정보 복사를 추가했다. 창 머리글에 버전을 표시한다.
- 새 설정 키:
startMonitoringOnLaunch,minimizeToTray,closeToTray,notifyOnBlock,closeChromeOnExit,language,useBuiltinAdDomains,removedAdDomains,favoriteSites. - 새 명령줄 인수:
--minimized.--url=은 이미 실행 중인 인스턴스에 주소를 넘긴다. - 문서: 설정 레퍼런스, 명령줄 인수, 문제 해결, 자주 묻는 질문, 판정 방식 상세, 로그 읽는 법, 영어 README, 기여 안내, 이슈 템플릿, 데모 페이지.
변경
debugPort기본값을9222에서0(자동)으로 바꿨다. 자동이면 전용 프로필의DevToolsActivePort로 포트를 찾고, 전용 프로필 브라우저에만 연결한다. 기존config.json에9222가 적혀 있으면 그대로 9222를 쓴다.adDomains에는 사용자가 추가한 도메인만 둔다. 내장 광고 목록은 항상 함께 적용되므로 새 버전의 목록이 기존 사용자에게도 반영된다. 이전 규칙: 1.0.0이 만든config.json을 처음 읽을 때adDomains에서 내장 목록과 같은 항목을 지우고 한 번 저장한다. 내장 도메인을 일부러 뺐다면removedAdDomains에 다시 적어야 한다.- 선택한 항목이 있으면 다시 열기와 정상 사이트로 등록을 그 항목에 적용한다. 이전에는 선택과 관계없이 가장 최근 항목에 적용됐다.
- 감시가 켜져 있는데 전용 Chrome이 닫혀 있으면 주황 배너와 창 제목으로 알린다. 감시를 시작할 때 Chrome이 닫혀 있으면 함께 연다.
- 실행 파일 폴더에 쓸 수 없으면 설정을
%LOCALAPPDATA%\TabBouncer\config.json에 저장한다. - 같은 데이터 폴더로 두 번 실행하면 이미 실행 중인 창을 앞으로 가져온다.
- 로그인·결제 흐름 예외를 주소 경로 구간으로만 판단한다. 알려진 광고 도메인에는 예외를 주지 않는다.
tabbouncer.log와events.jsonl이 5MB를 넘으면 회전하고 이전 파일 두 개까지만 남긴다.events.jsonl의 판정 이벤트에breakdown(항목별 점수)을 추가하고,kept와dry-run이벤트를 새로 기록한다.- GUI에서 바꾼 관측 모드가 설정 파일 자동 재적용으로 풀리지 않는다.
- 명령줄로 준
--port,--url,--strict,--no-preempt가 설정 파일을 다시 읽어도 유지된다.
보안
- 클릭 추적 스크립트와 기록 통로를 격리 월드로 옮겼다. 페이지 스크립트가 "사용자가 링크를 눌렀다"는 기록을 꾸며 광고 탭을 보호받는 경로를 막았다.
- 쿼리에
/login을 끼워 넣어 로그인 흐름 예외를 받는 경로를 막았다.