Gli sviluppatori di Mozilla hanno aggiornato le informazioni sui piani relativi al supporto nel Firefox delle versioni due e tre del manifesto Chrome. Google prevede di 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. Il supporto per la seconda versione del manifesto sarà interrotto nella versione stabile non prima di luglio.
Da parte sua, Mozilla non intende interrompere il supporto alla seconda versione del manifesto nel prossimo futuro e continuerà a consentire l'esecuzione di estensioni che sfruttano funzioni non disponibili nella terza versione del manifesto. Rimane in vigore la decisione di non garantire una piena compatibilità con la terza versione del manifesto Chrome in Firefox. Sarà mantenuto un API webRequest completo in Firefox, che in Chrome sarà convertito in modalità di sola lettura.
In Firefox, grazie al meccanismo delle Event Pages, sarà mantenuto il supporto per l'esecuzione di script in background basati su DOM, per i quali nella terza versione del manifesto è previsto l'uso dei Service Workers. Gli script in background basati su Service Workers non sono ancora supportati in Firefox, ma agli sviluppatori sarà data la possibilità di definire nel plug-in sia handler basati su Event Pages sia script basati su Service Workers, consentendo così di creare estensioni compatibili con la terza versione del manifesto e funzionanti sia in Chrome che in Firefox.
Il manifesto Chrome definisce le funzionalità e le risorse disponibili per le estensioni scritte utilizzando le API WebExtensions. A partire dalla versione 57, Firefox ha completamente adottato l'uso delle API WebExtensions per lo sviluppo delle estensioni e ha interrotto il supporto per la tecnologia XUL. La transizione a WebExtensions ha permesso di uniformare lo sviluppo delle estensioni su piattaforme Chrome, Opera, Safari ed Edge, semplificando il porting delle estensioni tra diversi browser web e consentendo un uso 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 altri browser, in Firefox è garantita una quasi completa compatibilità con la seconda versione del manifesto Chrome.
Nell'ambito dell'iniziativa per semplificare la creazione di estensioni sicure e ad alte prestazioni, e complicare la possibilità di creare estensioni non sicure e lente, Google ha sviluppato la terza versione del manifesto. Il principale malcontento riguardo alla terza versione del manifesto è dovuto alla trasformazione in modalità solo lettura dell'API webRequest, che consentiva di collegare gestori propri con pieno accesso alle richieste di rete e capaci di modificare il traffico al volo. Al posto 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, che gestisce autonomamente le regole di blocco, senza permettere l'uso di algoritmi di filtraggio personalizzati.
Tra le caratteristiche dell'implementazione della terza versione del manifesto in Firefox:
- È stato aggiunto un nuovo API dichiarativo per il filtraggio dei contenuti, ma a differenza di Chrome, non è stata interrotta la supporto alla modalità di blocco dell'API webRequest.
- È stato implementato il meccanismo delle Event Pages, che è più familiare per gli sviluppatori web, non richiede una revisione completa delle estensioni e rimuove le limitazioni legate all'uso dei Service Workers. Le Event Pages permetteranno di adattare le estensioni esistenti con pagine di sfondo ai requisiti della terza versione del manifesto, mantenendo nel 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 (rimosso il permesso «all_urls»), ma funzionerà solo nel contesto della scheda attiva, cioè l'utente dovrà confermare l'uso dell'estensione per ogni sito. In Firefox, tutte le richieste di accesso ai dati del sito saranno considerate facoltative e la decisione finale sulla concessione dell'accesso sarà presa dall'utente, il quale potrà decidere selettivamente a quale estensione fornire accesso ai propri dati su un determinato sito.
Per gestire le autorizzazioni, è stato aggiunto un pulsante "Unified Extensions" nell'interfaccia per gestire direttamente a quali siti ha accesso ciascun componente aggiuntivo: l'utente può fornire e revocare l'accesso del componente aggiuntivo a qualsiasi sito. La gestione delle autorizzazioni si applica solo ai componenti aggiuntivi basati sulla terza versione del manifesto; per i componenti aggiuntivi basati sulla seconda versione del manifesto, non è previsto un controllo granulare dell'accesso ai siti.

- Modifica nel trattamento delle richieste Cross-origin: secondo il nuovo manifesto, le stesse restrizioni di autorizzazione si applicheranno agli script di elaborazione del contenuto come per la pagina principale in cui questi script vengono incorporati (ad esempio, se la pagina non ha accesso all'API di geolocalizzazione, anche lo script del componente aggiuntivo non otterrà tale accesso). Questa modifica è completamente implementata in Firefox.
- API basata su Promise. Firefox supporta questa API anche per la terza versione del manifesto.
- Divieto di eseguire codice caricato da fonti esterne server (si tratta di situazioni in cui un componente aggiuntivo carica ed esegue codice esterno). In Firefox viene bloccato il codice esterno e gli sviluppatori di Mozilla hanno aggiunto ulteriori tecniche per monitorare i caricamenti di codice. Per gli script di elaborazione del contenuto è stata introdotta una politica separata di limitazione dell'accesso al contenuto (CSP, Content Security Policy).
Fonte: opennet.ru

