Firefox ha iniziato a testare la terza versione del manifest di Chrome

Mozilla ha annunciato di aver iniziato a testare l'implementazione di Firefox della terza versione del manifest di Chrome, che definisce le funzionalità e le risorse disponibili per i componenti aggiuntivi scritti utilizzando l'API WebExtensions. Per testare la terza versione del manifest in Firefox 101 beta, è necessario impostare il parametro "extensions.manifestV3.enabled" su true e il parametro "xpinstall.signatures.required" su false nella pagina about:config. Per installare i componenti aggiuntivi, è possibile utilizzare l'interfaccia about:debugging. Si prevede che la terza versione del manifest sarà abilitata per impostazione predefinita entro la fine dell'anno.

A partire dalla versione 57, Firefox è passato completamente all'utilizzo dell'API WebExtensions per lo sviluppo di componenti aggiuntivi e ha smesso di supportare la tecnologia XUL. Il passaggio a WebExtensions ha permesso di unificare lo sviluppo di componenti aggiuntivi con le piattaforme Chrome, Opera, Safari ed Edge, ha semplificato il porting di componenti aggiuntivi tra diversi browser web e ha permesso di sfruttare appieno la modalità multiprocesso di funzionamento (i componenti aggiuntivi di WebExtensions possono essere eseguiti in processi separati, isolati dal resto del browser). Per unificare lo sviluppo di componenti aggiuntivi con altri browser, Firefox offre una compatibilità quasi completa con la seconda versione del manifest di Chrome.

Chrome sta attualmente lavorando per passare alla versione 2023 del manifest e il supporto per la versione XNUMX verrà interrotto a gennaio XNUMX. Poiché la terza versione del manifest è stata criticata e romperà molti componenti aggiuntivi di sicurezza e blocco dei contenuti, Mozilla ha deciso di abbandonare la pratica di garantire la piena compatibilità con il manifest in Firefox e implementare alcune modifiche in modo diverso.

La principale insoddisfazione rispetto alla terza versione del manifesto è legata alla traduzione in modalità di sola lettura dell'API webRequest, che ha permesso di connettere i propri gestori che hanno pieno accesso alle richieste di rete e possono modificare il traffico al volo. Questa API viene utilizzata in uBlock Origin e molti altri componenti aggiuntivi per bloccare contenuti inappropriati e garantire sicurezza. Invece dell'API webRequest, la terza versione del manifest offre un'API dichiarativaNetRequest a capacità limitata, che fornisce l'accesso a un motore di filtro integrato che elabora in modo indipendente le regole di blocco, non consente l'uso dei propri algoritmi di filtro e non consentono di impostare regole complesse che si sovrappongono a seconda delle condizioni.

Nell'implementazione della terza versione del manifest proposta in Firefox, è stata aggiunta una nuova API dichiarativa per il filtraggio dei contenuti, ma a differenza di Chrome, non hanno smesso di supportare la vecchia modalità di funzionamento di blocco dell'API webRequest. Altre funzionalità della nuova implementazione manifest in Firefox includono:

  • Il manifest definisce la sostituzione delle pagine in background con l'opzione Service Workers, che viene eseguita come processi in background (Background Service Workers). Per garantire la compatibilità, Firefox implementerà questo requisito, ma offrirà inoltre un nuovo meccanismo di Pagine eventi, che è più familiare agli sviluppatori web, non richiede una rielaborazione completa dei componenti aggiuntivi ed elimina le limitazioni associate all'uso dei Service Worker. . Le pagine degli eventi consentiranno alle aggiunte di pagine in background esistenti di conformarsi ai requisiti della terza versione del manifest, mantenendo l'accesso a tutte le funzionalità necessarie per lavorare con il DOM. Nell'implementazione manifest disponibile per il test in Firefox, sono attualmente supportate solo le pagine degli eventi e si promette che il supporto per una soluzione basata sui Service Worker verrà aggiunto in seguito. Apple ha supportato la proposta e ha implementato le pagine degli eventi in Safari Technology Preview 136.
  • Il nuovo modello di richiesta di autorizzazione granulare: il componente aggiuntivo non potrà essere attivato per tutte le pagine contemporaneamente (l'autorizzazione "all_urls" è stata rimossa), ma funzionerà solo nel contesto della scheda attiva, ad es. l'utente dovrà confermare che il componente aggiuntivo funzioni per ciascun sito. In Firefox, tutte le richieste di accesso ai dati del sito saranno considerate facoltative e la decisione finale sulla concessione dell'accesso spetterà all'utente, che potrà decidere selettivamente quale componente aggiuntivo concedere l'accesso ai propri dati su un determinato sito.
  • Modifica nella gestione delle richieste multiorigine: in conformità con il nuovo manifest, gli script di elaborazione del contenuto saranno soggetti alle stesse restrizioni sui permessi della pagina principale in cui sono incorporati questi script (ad esempio, se la pagina non ha accesso al location API, anche i componenti aggiuntivi dello script non riceveranno questo accesso). Questa modifica è completamente implementata in Firefox.
  • API basata su promesse. Firefox supporta già questa API e la sposterà nello spazio dei nomi "chrome.*" per la terza versione del manifest.
  • Vietare l'esecuzione di codice scaricato da server esterni (stiamo parlando di situazioni in cui il componente aggiuntivo carica ed esegue codice esterno). Firefox utilizza già il blocco del codice esterno e gli sviluppatori di Mozilla hanno aggiunto ulteriori tecniche di tracciamento del download del codice offerte nella terza versione del manifest. Per gli script di elaborazione del contenuto viene fornita una policy di restrizione dell'accesso al contenuto separata (CSP, Content Security Policy).

Fonte: opennet.ru

Aggiungi un commento