프로젝트 소개

wBlock은 macOS, iOS, iPadOS, visionOS의 Safari용 무료 오픈소스 콘텐츠 차단기입니다. 네 플랫폼 모두에 단일 앱으로 배포되며, App Store, Homebrew cask, 또는 GitHub 릴리스의 DMG로 이용할 수 있습니다. Safari는 각 콘텐츠 차단기를 150,000개 규칙으로 제한하며 차단기가 페이지의 JavaScript를 수정하는 것을 허용하지 않습니다. wBlock은 다섯 개의 콘텐츠 차단기(Ads, Privacy, Security, Foreign, Custom)를 제공하여 총 750,000개 규칙을 확보하고, 정적 규칙으로 표현할 수 없는 것을 위한 별도의 스크립트 확장 기능으로 이 제약을 우회합니다. 차단 필터 목록은 AdGuard 구문으로 작성되며 SafariConverterLib로 변환된 후 다섯 개 차단기에 분할됩니다. Safari가 직접 매칭을 수행하므로 페이지 로드 중에는 wBlock 코드가 실행되지 않습니다. 앱은 약 40MB의 유휴 상태를 보고합니다. 기본값에는 사용자의 언어에 따라 선택된 지역 목록, 성가신 요소 및 쿠키 배너 목록, URL, 붙여넣기 또는 파일로 목록을 추가하는 기능이 포함됩니다. 업데이트는 매시간부터 매주까지 사용자가 선택한 일정에 따라 실행되며, diff 패치를 게시하는 목록은 변경분만 다운로드하고, macOS에서는 앱이 닫혀 있는 동안에도 launch agent가 계속 확인할 수 있습니다. utm_*과 같은 추적 매개변수는 기본적으로 링크에서 제거되고 링크 단축기는 해제됩니다. 용량 표시줄과 규칙 뷰어는 어떤 줄이 지원되지 않았는지, 중복되었는지, 또는 스크립트 확장 기능으로 전달되었는지 보여줍니다. 사용자 스크립트 및 사용자 스타일 스크립트 확장 기능에는 GM_* 및 GM.* API를 모두 지원하는 Greasemonkey 호환 엔진이 포함되어 있습니다. GM_xmlhttpRequest는 스크립트가 @connect에 선언한 호스트로 제한되며, HTTP와 HTTPS만 허용되고, 리디렉션은 따르기 전에 확인되며, 요청에는 브라우저 쿠키나 저장된 로그인이 포함되지 않습니다. UserCSS 테마(.user.css)가 지원되며 Less, Sass, Stylus를 포함합니다. 내장 카탈로그는 Tube Cleaner, Player Cleaner, DeArrow, Dark Reader, Return YouTube Dislike, Bypass Paywalls Clean, AdGuard Extra, AdGuard Popup Blocker, TwitchAdSolutions를 제공하며, 안티애드블록 무력화 도구인 tinyShield를 제외한 모든 항목은 비활성화 상태로 제공됩니다. 네이티브 비디오 Tube Cleaner와 Player Cleaner는 페이지가 그려지기 전에 사이트의 비디오를 Safari에 넘겨주어 Picture-in-Picture, 백그라운드 오디오, 전체 화면, Now Playing을 가능하게 합니다. Tube Cleaner는 YouTube를 대상으로 하며 YouTube 자체 스트림을 유지하고, Safari의 네이티브 메뉴에 챕터와 자막을 노출하며, 카테고리별 설정이 있는 SponsorBlock을 통해 스폰서를 건너뜁니다. Player Cleaner는 video.js, JW Player, Plyr, Flowplayer, MediaElement, Clappr, Media Chrome 및 Archive.org의 것과 같은 shadow-root 플레이어를 지원하며, 사이트별로 속도, 볼륨, 자막, 재생 위치를 기억합니다. 둘 다 wBlock-userscripts 저장소에서 독립적으로 업데이트됩니다. 이들은 자체적으로 광고를 차단하지 않으며, 필터 목록이 차단합니다. 사이트별 제어 및 동기화 툴바 팝업은 필터링, 사용자 스크립트, 자동 재생을 위한 개별 스위치와 요소 제거기를 제공합니다. 필터 목록과 사용자 스크립트는 특정 사이트로 제한하거나 제외할 수 있으며, 제거기 규칙은 설정에서 편집 가능한 상태로 유지됩니다. iCloud는 목록, 사용자 정의 필터, 사용자 스크립트, 허용 목록, 설정을 기기 간에 동기화하며, 대안으로 로컬 백업 내보내기를 사용할 수 있습니다. 아키텍처 필터 데이터는 LZ4 압축과 함께 Protocol Buffers에 저장되고 대규모 컴파일 중 메모리 사용을 제한하기 위해 디스크로 스트리밍됩니다. 하나의 목록을 변경하면 그것이 공급하는 차단기만 다시 빌드되지만, Safari는 변경 사항이 적용되기 전에 여전히 새로고침을 요구합니다. 지원 및 라이선스 이 프로젝트는 GPL-3.0으로 라이선스되며, Open Collective를 통해 자금을 지원받고, 어떠한 데이터도 수집하지 않는다고 명시합니다. 이슈는 GitHub에서 추적되고 커뮤니티 논의는 Discord에서 이루어집니다. 규칙 변환과 스크립틀릿은 AdGuard에서 제공되며, SponsorBlock과 DeArrow 데이터는 CC BY-NC-SA 4.0에 따라 Ajay Ramachandran의 프로젝트에서 제공됩니다.