Firefox 작업을 한 팝업에: Fox Toolbox 기능 총정리
탭 볼륨부터 킬스위치까지 9개 기능과 한계 살펴보기
Firefox 작업을 한 팝업에: Fox Toolbox 기능 총정리
Fox Toolbox는 현재 탭 제어, 미디어 저장, 광고 차단, 웹 탭 잠금, 개인정보 삭제 기능을 하나의 Firefox 확장 기능으로 묶은 도구다.
버전 2.2.0을 기준으로 Firefox 128 이상을 지원하며, 툴바 아이콘을 누르면 600×600 크기의 팝업 안에 3×3 형태로 9개 기능이 나타난다. Firefox Manifest V3 WebExtension으로 만들어졌고 외부 런타임 의존성이나 자체 텔레메트리 서버가 없다.
사생활 보호 창에서는 실행되지 않으며, Firefox의 about: 페이지나 부가 기능 관리자처럼 확장 코드 주입이 금지된 내부 페이지에서는 일부 기능을 사용할 수 없다.
전체 기능 한눈에 보기
- 01 탭 볼륨: 탭마다 0~1000% 볼륨과 음소거 상태를 관리한다.
- 02 다크 모드: 꺼짐, 호환, 균형, 강력의 네 단계를 적용한다.
- 03 User-Agent: 69개 프리셋으로 현재 탭의 User-Agent를 바꾼다.
- 04 이미지: 현재 페이지와 접근 가능한 iframe의 이미지를 찾아 저장한다.
- 05 비디오: 직접 접근 가능한 비디오와 오디오 주소를 찾아 저장한다.
- 06 사이트 저장: 현재 HTML과 연결된 CSS·JS를 하나의 ZIP으로 만든다.
- 07 광고 차단: 꺼짐, 표준, 엄격 규칙과 사이트 허용 목록을 제공한다.
- 08 탭 잠금: 비밀번호를 설정해 일반 웹 탭 위에 잠금 화면을 표시한다.
- 09 킬스위치: 선택한 브라우징 데이터를 확인 절차 후 삭제한다.
1. 탭 볼륨
탭 볼륨은 현재 탭의 소리를 다른 탭과 독립적으로 0%부터 1000%까지 조절한다. 자주 사용하는 100%, 250%, 500%, 1000% 버튼과 음소거 버튼이 있으며, 음소거를 해제하면 이전 볼륨으로 돌아간다.
단순히 <video> 태그 하나만 찾는 방식은 아니다.
- 일반 HTML
<audio>와<video> - 접근 가능한 iframe 안의 미디어
- 페이지가 나중에 추가한 미디어 요소
- Shadow DOM 안의 미디어
- Web Audio API로 출력되는 소리
일반 HTML 미디어의 volume 값은 브라우저 규칙상 최대 1, 즉 100%다. 따라서 원본 미디어 요소 자체는 100%까지만 적용되며, Web Audio 출력은 별도의 Gain 노드를 거쳐 최대 10배까지 증폭한다. 사이트의 오디오 구현 방식에 따라 100%를 넘긴 결과가 서로 다를 수 있다.
볼륨이 0%가 되면 Firefox의 탭 음소거도 함께 사용한다. 이때 확장 기능이 직접 음소거한 상태만 기억하므로 사용자가 원래 음소거해 둔 탭을 임의로 해제하지 않는다.
탭별 값은 Firefox 세션과 연결된다. 탭을 복원하면 해당 탭의 볼륨도 함께 복원되며, 툴바 배지에서도 현재 볼륨이나 잠금 상태를 확인할 수 있다.
2. 다크 모드
다크 모드는 한 가지 필터만 켜고 끄는 기능이 아니라 사이트 호환성을 고려한 네 단계를 제공한다.
- 꺼짐: 추가 스타일을 제거하고 사이트 원래 디자인을 사용한다.
- 호환: 브라우저에 어두운 색 구성표를 알리고 기본 배경만 어둡게 한다. 이미 다크 모드를 어느 정도 지원하는 사이트에 적합하다.
- 균형: 페이지 색상을 반전하고 이미지·영상 등은 다시 반전한다. 일반 문서와 밝은 웹페이지에 적합하다.
- 강력: 배경, 글자, 테두리, 입력 요소의 색을 직접 덮어쓴다. 다른 단계로 충분히 어두워지지 않는 사이트에 사용한다.
현재 탭에만 일시 적용하거나, 사이트별 기본값으로 기억하게 할 수 있다. 사이트별 설정은 호스트 이름을 기준으로 Firefox의 확장 로컬 저장소에 보관한다.
단계가 강해질수록 더 많은 CSS를 덮어쓰기 때문에 이미지, SVG, 코드 편집기, 지도, 캔버스 또는 복잡한 레이아웃이 어색해질 수 있다. 문제가 생기면 강도를 낮추거나 기능을 끈 뒤 탭을 새로고침하는 것이 좋다.
3. User-Agent 변경
User-Agent 기능은 현재 69개 프리셋을 제공한다.
- Chrome, Edge, Firefox, Safari
- Windows, macOS, Linux
- iPhone과 iPad
- 여러 Android 기기
- 검색 엔진 봇
프리셋을 선택하면 현재 탭에서 나가는 요청의 User-Agent 헤더를 바꾸고 페이지에 노출되는 navigator.userAgent, appVersion, platform, vendor 값을 함께 조정한 뒤 탭을 새로고침한다. 설정은 탭 단위 세션 규칙으로 관리되므로 다른 탭까지 한꺼번에 바뀌지 않는다.
하지만 이것은 호환성 테스트를 돕는 기능이지 완전한 기기 위장이 아니다.
- User-Agent Client Hints
- TLS 연결 특성
- 실제 화면 크기와 입력 장치
- Firefox 렌더링 엔진
- 브라우저가 노출하는 다른 지문 정보
이런 값은 그대로 남을 수 있다. 사이트는 서로 맞지 않는 정보를 비교해 변경 사실을 알아낼 수 있으므로 인증 우회, 추적 방지 또는 보안 우회 수단으로 생각해서는 안 된다.
4. 이미지 다운로더
이미지 다운로더는 현재 문서와 접근 가능한 iframe을 검사해 여러 경로의 이미지를 모은다.
<img>의src와 실제 선택된currentSrcsrcset과<picture>의 후보 이미지- CSS
background-image - Open Graph와 Twitter 대표 이미지
- 브라우저가 이미 불러온 이미지 리소스
같은 주소는 하나로 합치고, 선택한 HTTP(S) 또는 data: 이미지를 기본 다운로드 폴더 아래 Fox Toolbox/<사이트>/images/에 바로 저장한다. 파일명이 충돌하면 기존 파일을 덮어쓰지 않고 새 이름을 만든다.
페이지가 아직 불러오지 않은 지연 로딩 이미지는 감지되지 않을 수 있다. 먼저 페이지를 아래까지 스크롤한 뒤 다시 감지하면 더 많은 결과를 찾을 수 있다.
한 번의 감지 결과는 이미지와 비디오를 합쳐 최대 250개까지 세션에 보관하며, 한 번에 저장할 수 있는 항목은 최대 50개다. 결과가 많다면 나누어 선택해야 한다.
5. 비디오 다운로더
비디오 다운로더는 이름과 달리 비디오뿐 아니라 직접 접근 가능한 오디오 소스도 찾는다.
<video>와<audio>의 현재 소스- 내부
<source>요소 - 미디어 파일을 직접 가리키는 링크
- 브라우저가 이미 관찰한 비디오·오디오 리소스
직접 접근할 수 있는 파일은 기본 다운로드 폴더 아래 Fox Toolbox/<사이트>/videos/에 저장한다. 다른 출처의 파일을 요청할 때는 가능한 범위에서 원본 페이지 정보를 Referer로 함께 전달한다.
다음 콘텐츠는 완성된 영상 파일로 만들 수 없다.
- DRM으로 보호된 콘텐츠
blob:URL과 Media Source Extensions 스트림- 조각으로 나뉜 HLS의
.m3u8 - DASH의
.mpd
Fox Toolbox는 스트리밍 조각을 병합하거나 DRM을 복호화하지 않는다. 로그인 세션, 만료되는 토큰, 핫링크 방지 정책에 따라 목록에는 나타나도 다운로드가 실패할 수 있다. 저장 전에는 사이트 이용 약관과 저작권도 확인해야 한다.
6. 사이트 다운로드
사이트 다운로드는 현재 렌더링된 문서의 HTML을 복제하고 연결된 CSS와 JavaScript를 모아 ZIP 파일로 저장한다.
문서 안의 상대 주소는 절대 주소로 정리되며, 정상적으로 가져온 CSS와 JS의 주소는 ZIP 안의 로컬 경로로 바뀐다. 접근 가능한 교차 출처 리소스도 수집 대상이다.
ZIP에는 다음 파일이 들어간다.
index.html
assets/
styles/
scripts/
fox-toolbox-report.json
fox-toolbox-report.json에는 원본 주소, 저장 시각, 저장한 파일, 가져오지 못한 리소스와 실패 이유가 기록된다.
무제한으로 사이트 전체를 복제하는 기능은 아니다.
- 현재 HTML: 최대 12MB
- CSS·JS 리소스 수: 최대 160개
- 리소스 하나의 크기: 최대 8MB
- 수집하는 전체 파일 크기: 최대 60MB
- 리소스 요청 제한 시간: 파일당 12초
HTML이 12MB를 넘으면 손상된 일부 파일을 만드는 대신 작업을 중단한다. 동적 API 응답, Service Worker 상태, 로그인 세션, 데이터베이스, DRM 미디어까지 완전히 복제하지는 않는다.
또한 내려받은 index.html을 열면 함께 저장된 사이트 JavaScript가 실행될 수 있다. 출처를 신뢰할 수 있을 때만 열고, 알 수 없는 페이지는 JavaScript를 끈 격리 환경에서 확인하는 편이 안전하다.
7. 광고 차단
광고 차단은 Firefox의 선언적 네트워크 요청 규칙을 사용하는 경량 기능이다.
- 꺼짐: 내장 차단 규칙을 사용하지 않는다.
- 표준: 기본 규칙을 적용하며 Fox Toolbox의 초기값이다.
- 엄격: 표준 규칙과 추가 엄격 규칙을 함께 적용한다.
현재 사이트를 허용 목록에 넣으면 해당 호스트의 요청을 우선 허용할 수 있다. 자주 사용하는 사이트가 깨졌을 때 전체 차단을 끄지 않고 예외를 줄 수 있다.
내장 규칙만 사용하는 구조이므로 모든 광고, 추적 스크립트 또는 새로 생긴 도메인을 항상 막는다고 보장하지 않는다. 엄격 모드는 정상 리소스까지 차단해 로그인, 결제, 영상 재생 또는 레이아웃을 망가뜨릴 수 있다.
8. 웹 탭 잠금
웹 탭 잠금은 6자 이상 128자 이하의 비밀번호를 설정하고 일반 웹 탭을 잠그는 기능이다. Firefox를 시작할 때 자동으로 잠그거나 사용자가 직접 즉시 잠글 수 있다.
잠금 상태에서는 일반 페이지 최상위에 모달 오버레이를 표시하고 마우스, 키보드, 터치, 휠과 문맥 메뉴 입력을 막는다. 확장 코드 주입이 허용되지 않는 Firefox 내부 페이지에서는 별도의 잠금 페이지를 연다.
비밀번호 원문은 저장하지 않는다.
- 무작위 16바이트 salt를 만든다.
- PBKDF2-SHA-256을 240,000회 적용한다.
- 결과 해시와 salt만 Firefox 확장 로컬 저장소에 보관한다.
비밀번호를 5회 연속 틀리면 30초 동안 다시 시도할 수 없다. 이후 실패할 때마다 대기 시간이 늘어나며 최대 120초까지 적용된다.
다만 이 기능은 브라우저나 운영체제를 잠그는 보안 경계가 아니라 확장 수준의 소프트 잠금이다. 다음 행동까지 막을 수는 없다.
- 주소창, Firefox 메뉴, 설정과
about:내부 페이지 사용 - 부가 기능 관리자에서 Fox Toolbox 비활성화 또는 제거
- 다른 Firefox 프로필이나 다른 브라우저 사용
- 사생활 보호 창이나 안전 모드 사용
- 개발자 도구 또는 Firefox 자체 권한을 가진 사용자의 우회
- 운영체제 파일과 이미 내려받은 파일 접근
따라서 OS 화면 잠금, 공용 PC 접근 제어, 자녀 보호나 기업용 보안 제품을 대신하지 않는다.
9. 킬스위치
킬스위치는 Firefox가 보관한 브라우징 데이터를 선택해 삭제한다.
- 캐시
- 쿠키와 로그인 세션
- 다운로드 기록
- 자동완성 폼 데이터
- 방문 기록
- IndexedDB
- 사이트 로컬 저장소
- Service Worker 데이터
- 저장된 비밀번호
기간은 전체, 최근 1시간, 최근 24시간, 최근 7일 중에서 고를 수 있다. 단, Firefox API는 캐시의 기간별 삭제를 지원하지 않으므로 캐시는 전체 기간을 선택했을 때만 지울 수 있다.
실수로 실행하기 어렵도록 두 단계 확인을 사용한다. 삭제 항목을 고른 뒤 30초 안에 삭제를 직접 입력해야 실제 제거가 시작된다. 저장된 비밀번호는 기본 선택에서 빠져 있으며, 탭 잠금이 설정되어 있다면 삭제가 끝난 뒤 웹 탭을 잠그도록 선택할 수 있다.
삭제한 데이터는 Fox Toolbox에서 복구할 수 없다. 쿠키를 지우면 사이트에서 로그아웃되고, 저장된 비밀번호를 지우면 Firefox 비밀번호 관리자 항목도 사라진다.
다운로드 기록 삭제는 Firefox가 기억하는 목록만 지운다. 디스크에 저장된 실제 파일은 삭제하지 않으며, 북마크와 Fox Toolbox 자체 설정도 킬스위치 대상이 아니다.
기본 단축키
- 현재 탭 볼륨 10% 올리기:
Alt+Shift+↑ - 현재 탭 볼륨 10% 내리기:
Alt+Shift+↓ - 현재 탭 음소거 전환:
Alt+Shift+M - 웹 탭 즉시 잠금:
Alt+Shift+L
운영체제나 다른 확장 기능과 단축키가 겹치면 Firefox의 부가 기능 관리자 → 확장 기능 단축키 관리에서 바꿀 수 있다. 즉시 잠금 단축키는 비밀번호를 먼저 설정해야 동작한다.
권한은 어디에 사용될까?
여러 기능을 한 확장에 모았기 때문에 요청하는 권한도 기능별로 나뉜다.
browsingData: 킬스위치에서 선택한 브라우징 데이터 삭제declarativeNetRequestWithHostAccess: 광고 차단과 탭별 User-Agent 요청 헤더 변경downloads: 이미지, 비디오와 사이트 ZIP 저장scripting: 이미 열려 있던 일반 웹 탭에 잠금 연결 복구sessions: 탭별 볼륨, User-Agent와 다크 모드 상태 복원storage: 광고 차단, 사이트별 다크 모드와 잠금 설정 보관tabs: 현재 탭 확인, 음소거, 새로고침과 잠금 상태 전파webNavigation: 접근 가능한 iframe을 포함한 미디어 감지<all_urls>: 일반 웹페이지에 기능을 적용하고 사용자가 요청한 리소스에 접근
지속 설정은 Firefox의 로컬 확장 저장소에 남는다. 잠금 상태, 30초짜리 삭제 확인 토큰, 감지한 미디어 목록처럼 일시적인 데이터는 메모리 기반 세션 저장소를 사용한다.
소스에는 Fox Toolbox 운영 서버로 텔레메트리나 사용자 정보를 보내는 코드가 없고, 매니페스트에도 데이터 수집 없음이 선언되어 있다. 미디어나 사이트 ZIP을 저장할 때는 작업에 필요한 원본 사이트 리소스로 요청을 보내지만 별도의 Fox Toolbox 서버로 전송하는 것은 아니다.
내부 구조
Fox Toolbox는 기능별 권한 경계를 다음처럼 나눈다.
popup: 9개 기능의 설정과 실행 화면background: 다운로드, 브라우징 데이터 삭제, 탭 상태, 광고 차단 규칙처럼 Firefox 권한이 필요한 작업- 페이지의 Main World 코드: HTML 미디어, Web Audio와
navigator값 처리 - 격리된 Content Script: 다크 모드, 미디어 감지, 사이트 캡처와 잠금 오버레이
- 선언적 네트워크 규칙: 광고 차단과 탭별 User-Agent 요청 헤더 변경
팝업에서 명령을 보내면 백그라운드가 요청 주체와 탭 번호를 검사하고, 필요한 경우에만 페이지 코드로 상태를 전달한다. 탭별 볼륨·User-Agent·다크 모드는 Firefox 세션 값과 연결하고, 광고 차단·사이트별 다크 모드·잠금 설정은 로컬 저장소에 둔다.
설치 방법
현재 소스 폴더를 Firefox에 임시 설치하는 방법은 다음과 같다.
- 주소창에서
about:debugging#/runtime/this-firefox를 연다. - 임시 부가 기능 로드를 누른다.
- Fox Toolbox 폴더의
manifest.json을 선택한다. - 툴바의 Fox Toolbox 아이콘을 연다.
배포 ZIP이 있다면 같은 화면에서 ZIP을 선택할 수 있다. 환경에 따라 ZIP 직접 선택이 되지 않으면 압축을 푼 뒤 manifest.json을 고르면 된다.
임시 부가 기능은 Firefox를 완전히 종료하면 해제된다. 일반 Firefox에 영구 설치하려면 단순 ZIP이 아니라 Mozilla의 검토와 서명을 받은 .xpi가 필요하다.
정리
Fox Toolbox의 장점은 자주 쓰는 탭 도구와 개인정보 도구를 한 화면에서 빠르게 전환할 수 있다는 점이다. 특히 탭별 상태 복원, 사이트별 다크 모드, 광고 차단 예외, 삭제 전 확인 절차처럼 실제 사용 중 실수를 줄이는 장치가 함께 들어 있다.
반대로 만능 도구는 아니다. 미디어 다운로더는 DRM이나 분할 스트림을 처리하지 않고, 사이트 저장은 현재 문서의 스냅샷이며, User-Agent 변경은 브라우저 지문 전체를 바꾸지 않는다. 웹 탭 잠금도 운영체제 잠금을 대신할 수 없다.
기능의 범위와 한계를 알고 사용한다면 Firefox에서 흩어져 있던 여러 작업을 하나의 팝업으로 정리하는 실용적인 도구가 될 수 있다.