AdGuard 확장 프로그램 v4.2: 매니페스트 V3 지원
AdGuard 확장 프로그램의 새 버전에는 즉시 눈에 띄지 않는 주요 변경 사항이 적용되었습니다. 전체 필터링 코드를 TypeScript로 다시 작성하여 별도의 새로운 라이브러리로 옮겼기 때문에 MV3로 원활하게 전환할 수 있도록 확장 프로그램을 준비할 수 있었습니다.
매니페스트 V3(MV3)는 Chrome의 새로운 확장 프로그램 API입니다. 무엇보다도 MV3는 브라우저 확장 프로그램이 적용할 수 있는 필터링 규칙의 수를 제한하여 광고를 차단하는 것을 훨씬 더 어렵게 만들 것입니다. 이 글에서 크롬의 한계와 이를 극복하기 위해 세계 최초로 Manifest V3에 구축된 광고 차단기에 어떤 노력을 기울였는지 자세히 알아보세요.
배경 지식
얼마 전 확장 프로그램의 URL 필터링 엔진을 turlfilter
라는 별도의 라이브러리로 옮겼습니다. 라이브러리의 주요 목적은 제품(Chrome 및 Firefox용 확장 프로그램, Safari용 규칙 변환기, 린터 등)에서 필터링 로직을 재사용하는 것입니다.
tsurlfilter
에는 두 가지 주요 부분이 있습니다
- 첫 번째 부분은 필터링 엔진에 로드된 규칙에 따라 URL을 일치시키는 필터링 엔진입니다.
- 두 번째 부분은 발견된 규칙을 적용하는 Chrome 및 Firefox 전용 프로그래밍 인터페이스입니다.
MV3의 등장으로 다양한 브라우저뿐만 아니라 다양한 버전의 매니페스트에 대한 필터링 코드를 유지 관리해야 하며, 브라우저에서 이전 API를 제거함에 따라 MV2에서 MV3로 원활하게 전환할 수 있도록 해야 합니다. MV3의 API는 확장성을 심각하게 제한하기 때문에 당장 MV3로 전환할 계획은 없습니다.
이 문제를 해결하기 위해 새로운 로직을 추가하는 것은 라이브러리를 너무 무겁게 만들 수 있었기 때문에, 다양한 브라우저와 매니페스트에 특화된 로직을 하나의 간단한 API 뒤에 숨기는 새로운 소프트웨어 플랫폼을 설계하기로 결정했습니다. 새 라이브러리의 이름은 tswebextension
입니다.
새로운 tswebextension
라이브러리
tswebextension
을 사용하면 제품을 더 쉽게 유지 관리하고 업데이트할 수 있습니다.
Chrome 및 Firefox용 브라우저 확장 프로그램의 새 버전에서는 tswebextension
을 사용하여 백그라운드 서비스를 완전히 재설계했습니다. 이를 통해 향후 주요 버전에서 Chrome의 MV3로 원활하게 전환할 수 있습니다.
또한, 내부적으로 tswebextension
을 사용하는 AdGuard API도 업데이트했습니다.
전체 변경 로그는 GitHub에서 확인할 수 있습니다. 소셜 네트워크나 GitHub 이슈를 통해 확장 프로그램에 대한 여러분의 의견을 알려주시면 감사하겠습니다.