Problemi noti relativi alla migrazione a Manifest V3

Di recente abbiamo annunciato modifiche alle tempistiche di ritiro di Manifest V2 e, pur rimanendo fedele a questo impegno, riconosciamo che c'è ancora altro lavoro da fare da parte nostra.

  • Prima di annunciare le nuove tempistiche per il ritiro, abbiamo terminato di risolvere i problemi prioritari della piattaforma e abbiamo chiuso i bug critici documentati su questa pagina.
  • Abbiamo dato agli sviluppatori il tempo di creare, garantendo almeno sei mesi tra l'annuncio delle tempistiche e gli esperimenti in sospeso per la rimozione del supporto per Manifest V2.

Colmare il divario di piattaforme

Ci impegniamo a colmare le seguenti lacune prima di annunciare le nuove tempistiche di ritiro di Manifest V2:

I problemi sono stati raccolti in base ai feedback di partner, segnalazioni di bug e sviluppatori. Continueremo a lavorare per migliorare la stabilità e le prestazioni complessive della piattaforma di estensioni.

Al momento non ci sono problemi aperti considerati un divario critico della piattaforma.

Di recente sono stati risolti i seguenti problemi:

  1. Supporto della gestione file su ChromeOS in sostituzione di chrome.fileBrowserHandler [Chrome 120].
  2. Supporto degli script utente: consenti la registrazione di script di contenuti con codice arbitrario con la nuova API userScripts [Chrome 120].
  3. Keepalive dei Service worker avanzati aggiuntivi per determinate operazioni che richiedono più di cinque minuti.
    • Aggiunto in Chrome 116 per permissions.request(), desktopCapture.chooseDesktopMedia(), identity.launchWebAuthFlow() e management.uninstall().
    • Aggiunto in Chrome 118 per chrome.debugger
  4. Aumenta il numero di set di regole statici e abilitati per la richiesta di rete dichiarativa (DNR). I set di regole statici abilitati sono aumentati da 10 a 50 e i set di regole statici totali da 50 a 100 [Chrome 120].
  5. Estendi la funzionalità Documento fuori schermo per supportare altri motivi per l'utilizzo di un documento fuori schermo. GEOLOCATION aggiunto in Chrome 116.
  6. Miglioramento del supporto per l'API chrome.tabCapture [Chrome 116]:
    • Supporto della chiamata a getMediaStreamId() da un service worker.
    • Supporto dell'ottenimento di un MediaStream da un ID stream in un documento fuori schermo.
  7. Estensione della durata dei service worker quando sono presenti connessioni WebSocket attive [Chrome 116].

Domande frequenti su Manifest V3

D. Prevediamo di supportare i Service Workers permanenti?
R: Uno dei motivi principali per la migrazione dagli script in background ai service worker è la maggiore efficienza in termini di memoria del modello di programmazione basata sugli eventi, che deriva dalla natura temporanea dei service worker. Di conseguenza, non prevediamo di supportare i service worker permanenti. Tuttavia, per soddisfare le esigenze specifiche degli sviluppatori di estensioni, stiamo continuando ad apportare molti miglioramenti ai service worker. In particolare:

  • Tutti gli eventi delle estensioni e le chiamate API estenderanno la durata del service worker.
  • I casi d'uso selezionati, come i messaggi nativi, manterranno attivi i service worker delle estensioni per più di 5 minuti.

D: C'è un modo per accedere al DOM nei service worker?
R: Seguiamo l'approccio adottato dalla piattaforma web di non includere l'accesso DOM nei web worker (inclusi i service worker). Per supportare i casi d'uso che richiedono l'accesso DOM in background ai service worker, abbiamo introdotto la possibilità di delegare il lavoro in background a documenti fuori schermo di breve durata che forniscono l'accesso DOM completo.

D: Sarà disponibile un modo per supportare il codice remoto in Manifest V3?
R: Per rendere più sicure le Estensioni di Chrome, continueremo a non consentire l'esecuzione di codice arbitrario ospitato in remoto nelle estensioni di Chrome. Tuttavia, non significa che consentiamo ogni tipo di esecuzione di codice dinamico. Supportiamo comunque diverse opzioni di esecuzione dinamica del codice nelle estensioni di Chrome:

D. La mia estensione Manifest V2 si basa su webRequestBlock, che non è supportato in Manifest V3. Come faccio a continuare a fornire la stessa funzionalità in Manifest V3?
R: Siamo sicuri che la maggior parte dei casi d'uso di blocco delle richieste può essere risolta con la nuova API declarativeNetRequest, che ha il vantaggio aggiuntivo di evitare l'overhead in termini di prestazioni della comunicazione tra processi, eseguire codice su ogni richiesta o richiedere un processo di estensione attivo al momento della richiesta. Tuttavia, per i casi d'uso aziendali (o scolastici) complessi, il blocco dinamico delle richieste è ancora supportato.

Ci è sfuggito qualcosa? Contattaci.