Raymond Hill, creator of the uBlock Origin ad-blocking system, has published an experimental browser extension called uBO Minus, implementing a version of uBlock Origin translated to the declarativeNetRequest API, mandated in the third version of the Chrome manifest. Unlike the classic uBlock Origin, the new extension utilizes the built-in browser engine's capabilities for content filtering and does not require permission to intercept and modify all site data upon installation.
The extension currently lacks a popup panel and settings pages, and its functionality is limited to blocking network requests. To operate without elevated permissions, features such as cosmetic filters for content replacement on the page ("##"), script injection on sites ("##+js"), filters for redirecting requests ("redirect="), CSP (Content Security Policy) header filters, and filters for removing query parameters ("removeparam=") have been disabled. Otherwise, the list of default filters fully matches the set from uBlock Origin and includes around 22,000 rules.
Additionally, a few days ago, an experimental version of the AdGuard ad-blocking extension — AdGuardMV3 — was introduced, also translated to the declarativeNetRequest API and capable of functioning in browsers that support only the third edition of the Chrome manifest. The proposed prototype offers all the necessary features for ad-blocking typically required by ordinary users, but lags behind the extension for the second edition of the manifest in terms of its advanced capabilities, which may be of interest to power users.
Noua versiune AdGuard va continua să blocheze bannerele, widgeturile rețelelor sociale și elementele enervante, va bloca reclame pe platformele video precum YouTube și va implementa blocarea anticipată a cererilor legate de urmărirea mișcărilor. Printre limitări se menționează scintilațiile anunțurilor din cauza întârzierii aplicării regulilor cosmetice de 1,5-2 secunde, pierderea unor funcționalități legate de filtrarea cookie-urilor, utilizarea expresiilor regulate și filtrarea parametrilor de cerere (noul API oferă expresii regulate simplificate), iar statistica și jurnalul evenimentelor filtrului sunt disponibile doar în modul dezvoltator (Developer Mode).
De asemenea, se menționează o posibilă reducere a numărului de reguli din cauza limitărilor introduse în a treia versiune a manifestului. Dacă în browser este instalat un singur complement care folosește declarativeNetRequest, nu apar probleme cu regulile statice, deoarece se aplică o limită comună pentru toate completările, permitând 330.000 de reguli. Când există mai multe completări, se aplică o limită de 30.000 de reguli, care poate fi insuficientă. Pentru regulile dinamice s-a introdus o limită de 5.000 de reguli, iar pentru expresiile regulate — 1.000 de reguli.
Începând cu ianuarie 2023, browserul Chrome plănuiește să oprească suportul pentru a doua versiune a manifestului și să facă din a treia versiune o cerință obligatorie pentru toate completările. Inițial, a treia versiune a manifestului a fost criticată din cauza afectării funcționării multor completări pentru blocarea conținutului nedorit și asigurarea securității. Manifestul Chrome definește capacitățile și resursele furnizate completărilor. A treia versiune a manifestului a fost dezvoltată ca parte a unei inițiative de îmbunătățire a securității, intimității și performanței completărilor. Scopul principal al modificărilor este de a simplifica crearea de completări sigure și de înaltă performanță și de a complica posibilitatea de a crea completări nesigure și lente.
Principala nemulțumire legată de a treia versiune a manifestului este tranziția la modul de doar citire al API-ului webRequest, care permitea conectarea unor manipulatoare proprii, având acces complet la cererile de rețea și capabile să modifice traficul în timp real. Acest API este utilizat în uBlock Origin, AdGuard și multe alte extensii pentru blocarea conținutului nedorit și asigurarea securității. În locul API-ului webRequest, a treia versiune a manifestului propune un API declarativNetRequest, limitat în funcționalitate, care oferă acces la un motor încorporat pentru filtrare, care procesează autonom regulile de blocare, fără a permite utilizarea de algoritmi proprii de filtrare și fără a permite definirea unor reguli complexe care se suprapun în funcție de condiții.
În cei trei ani de discuții asupra viitoarei a treia versiuni a manifestului, compania Google a ținut cont de multe dorințe ale comunității și a extins funcționalitățile inițial furnizate de API-ul declarativNetRequest, adăugând caracteristici solicitate în extensiile existente. De exemplu, Google a integrat în API-ul declarativNetRequest suport pentru utilizarea mai multor seturi de reguli statice, filtrare prin expresii regulate, modificarea antetelor HTTP, schimbarea dinamică și adăugarea regulilor, eliminarea și înlocuirea parametrilor cererilor, filtrarea legată de tab-uri și crearea de seturi de reguli specifice pentru sesiuni anume.
Sursa: opennet.ro
