Gli sviluppatori di Mozilla hanno aggiornato le informazioni sui piani di supporto per le versioni due e tre del manifesto Chrome in Firefox. Google intende interrompere il supporto per le estensioni che utilizzano la seconda versione del manifesto nelle versioni di prova di Chrome 127 (Dev, Canary e Beta) a partire da giugno di quest'anno. Nella release stabile, il supporto per la seconda versione del manifesto sarà interrotto non prima di luglio.
A sua volta, Mozilla non prevede di interrompere il supporto per la seconda versione del manifesto nel prossimo futuro e continuerà a consentire l'esecuzione di estensioni che utilizzano funzionalità non disponibili nella terza versione del manifesto. Rimane in vigore la decisione di non garantire la piena compatibilità di Firefox con la terza versione del manifesto Chrome. In Firefox sarà mantenuto un API webRequest completa, che in Chrome sarà convertita in una modalità di sola lettura.
In Firefox, support for executing background scripts based on the DOM will also be maintained through the Event Pages mechanism, whereas the third version of the manifest prescribes the use of Service Workers. Currently, background scripts based on Service Workers are not supported in Firefox, but developers will be able to specify in the extension both Event Pages-based handlers and Service Workers-based scripts, allowing for the creation of extensions that conform to the third version of the manifest and function in both Chrome and Firefox.
Il manifesto di Chrome definisce le capacità e le risorse disponibili per le estensioni scritte utilizzando l'API WebExtensions. A partire dalla versione 57, Firefox ha completamente adottato l'uso delle API WebExtensions per lo sviluppo delle estensioni, interrompendo il supporto per la tecnologia XUL. La transizione verso WebExtensions ha permesso di uniformare lo sviluppo delle estensioni con Chrome, Opera, Safari ed Edge, semplificando il porting delle estensioni tra diversi browser web e consentendo l'utilizzo completo della modalità multi-processo (le estensioni WebExtensions possono essere eseguite in processi separati, isolati dalle altre parti del browser). Per uniformare lo sviluppo delle estensioni con gli altri browser, Firefox garantisce quasi completa compatibilità con la seconda versione del manifesto di Chrome.
Nell'ambito dell'iniziativa per semplificare la creazione di estensioni sicure e ad alte prestazioni, e rendere più difficile la creazione di estensioni non sicure e lente, Google ha sviluppato la terza versione del manifesto. Il principale malcontento riguardo alla terza versione del manifesto è stato causato dalla transizione dell'API webRequest in modalità di sola lettura, che consentiva di collegare gestori personalizzati con accesso completo alle richieste di rete e la capacità di modificare il traffico al volo. Invece dell'API webRequest, nella terza versione del manifesto è stato aggiunto un API declarativeNetRequest, limitato nelle sue capacità, che fornisce accesso a un motore integrato per il filtraggio, gestendo autonomamente le regole di blocco e non consentendo di utilizzare algoritmi di filtraggio personalizzati.
Tra le caratteristiche dell'implementazione della terza versione del manifesto in Firefox:
- È stata aggiunta una nuova API dichiarativa per il filtraggio dei contenuti, ma a differenza di Chrome, non è stata interrotta la supporto alla vecchia modalità di blocco dell'API webRequest.
- È stato implementato un sistema di Event Pages, più familiare per gli sviluppatori web, che non richiede una revisione completa delle estensioni e elimina le limitazioni legate all'uso dei Service Workers. Le Event Pages consentiranno di aggiornare le estensioni esistenti con pagine di sfondo per soddisfare i requisiti della terza versione del manifesto, mantenendo al contempo l'accesso a tutte le funzionalità necessarie per lavorare con il DOM.
- Il nuovo modello di richiesta di autorizzazione granulare — l'estensione non potrà attivarsi immediatamente per tutte le pagine (rimossa l'autorizzazione «all_urls»), ma funzionerà solo nel contesto della scheda attiva, cioè l'utente dovrà confermare il funzionamento dell'estensione per ogni sito. In Firefox, tutte le richieste di accesso ai dati del sito saranno considerate opzionali, e la decisione finale sulla concessione dell'accesso sarà presa dall'utente, che potrà decidere selettivamente a quale estensione concedere accesso ai propri dati su un determinato sito.
Per la gestione dei permessi nell'interfaccia, è stato aggiunto un pulsante "Unified Extensions" per controllare direttamente a quali siti ha accesso ciascuna estensione — gli utenti possono concedere e revocare l'accesso dell'estensione a qualsiasi sito. La gestione dei permessi si applica solo alle estensioni basate sulla terza versione del manifesto; per le estensioni della seconda versione, non è possibile gestire granularmente l'accesso ai siti.

- Modifica della gestione delle richieste Cross-origin: in conformità con il nuovo manifesto, le stesse restrizioni di autorizzazione applicate alla pagina principale si estenderanno anche agli script di elaborazione dei contenuti. Ad esempio, se la pagina non ha accesso all'API di definizione della posizione, anche lo script dell'estensione non avrà accesso. Questa modifica è completamente implementata in Firefox.
- API basato su Promise. Firefox supporta questo API anche per la terza versione del manifesto.
- Divieto di eseguire codice caricato da fonti esterne. server (riguardo a situazioni in cui un'estensione carica ed esegue codice esterno). In Firefox viene applicato un blocco del codice esterno e gli sviluppatori di Mozilla hanno aggiunto tecniche aggiuntive per monitorare i caricamenti di codice. È stata presentata una politica separata di restrizione dell'accesso ai contenuti (CSP, Content Security Policy) per gli script di elaborazione dei contenuti.
Fonte: opennet.ru

