Cosa sta succedendo nelle estensioni di Chrome?

Finora il 2023 è stato un anno intenso nel mondo delle estensioni di Chrome. Il tuo prezioso feedback ci ha permesso di migliorare la piattaforma di estensione e la nostra documentazione. Continuiamo inoltre a collaborare con altri fornitori di browser nel gruppo della community WebExtensions per garantire un funzionamento più coerente delle API di estensione nei vari browser.

In questo post condivideremo alcune modifiche su cui il team delle estensioni di Chrome ha lavorato durante la prima metà dell'anno e le funzionalità in arrivo che verranno rilasciate entro la fine del trimestre. Iniziamo.

Nuove API ed estensioni

In questa sezione, voglio evidenziare alcuni lanci di API significativi, esaminare brevemente altri miglioramenti delle API e condividere le release delle API imminenti.

In evidenza

Documenti fuori schermo

L'API Offscreen è stata introdotta in Chrome 109. Consente alle estensioni Manifest V3 di gestire casi d'uso che richiedono l'interazione con il DOM o la finestra, che non possono essere eseguiti nel service worker dell'estensione. Inoltre, Chrome 114 ha introdotto altri due motivi offscreen: 'WORKERS' per le istanze in cui il documento deve generare un worker e 'LOCAL_STORAGE' per facilitare la migrazione dei dati da window.localStorage all'API chrome.storage.

A partire da Chrome 115, puoi fornire più motivi per la creazione di un documento offscreen. In questo modo puoi eseguire due attività correlate nello stesso documento.

Nuova API riquadro laterale 🎉

In passato, l'unico modo per creare barre laterali nelle estensioni era inserire un nuovo elemento con script di contenuti in ogni pagina. In Chrome 114 è stata lanciata l'API Riquadro laterale. Ora puoi sviluppare un'esperienza nella barra laterale complementare per gli utenti in modo molto più semplice. Scopri di più su come l'API Side Panel ti consente di progettare un'esperienza utente superiore.

Un'estensione del dizionario che mostra la definizione di una parola selezionata
Estensione del dizionario del riquadro laterale. Consulta il codice nel repository chrome-extensions-samples.

Service worker più affidabili

Tutti gli eventi di estensione ora riavviano il timer di inattività del worker del servizio dell'estensione. In Chrome 110, la durata massima obbligatoria di cinque minuti è stata rimossa per i worker del servizio di estensione. Inoltre, i messaggi alle app native e i messaggi all'interno dell'estensione riavviano il timer di inattività. Scopri di più nell'articolo Il ciclo di vita del service worker dell'estensione.

Altri lanci di API

  • API Action: a partire da Chrome 110, puoi personalizzare il testo del badge con setBadgeTextColor() e getBadgeTextColor(). Inoltre, isEnabled() ti consente di verificare se l'azione è attivata per la scheda corrente.
  • API Commands: il bug per cui le scorciatoie delle estensioni, dichiarate nel file manifest in "commands._execute_action", non venivano conservate durante la conversione a MV3, è stato corretto in Chrome 111.
  • API Downloads: l'interfaccia utente dei download predefinita in Chrome è passata da una sezione in basso al lato destro dell'omnibox. Per disattivare questo comportamento, puoi utilizzare downloads.setUiOptions() che sostituisce setShelfEnabled().
  • API History: chrome.history.getVisits() e chrome.history.search() restituiscono anche i dati di altri dispositivi che sono stati sincronizzati con il database della cronologia locale. Ciò potrebbe comportare un aumento delle voci della cronologia e un aumento del numero di visite. isLocal è stato aggiunto a VisitItem in Chrome 115 (previsto nella versione stabile entro la fine del mese) per poter filtrare solo in base alle visite locali.
  • API Identity: la finestra di autenticazione ora viene visualizzata come popup, anziché occupare una finestra dell'applicazione completa. Per offrire un maggiore controllo durante la procedura di reindirizzamento JavaScript, abbiamo aggiunto due nuove opzioni: abortOnLoadForNonInteractive e timeoutMsForNonInteractive.
  • API Storage: in Chrome 112 le dimensioni dello spazio di archiviazione di chrome.session sono state aumentate a 10 MB. Successivamente, le dimensioni dello spazio di archiviazione di chrome.local sono state modificate in modo da corrispondere a quelle di Chrome 114.

Disponibile a breve...

Le prossime versioni di Chrome introdurranno molte funzionalità per semplificare la migrazione delle estensioni a Manifest V3. Per un elenco delle modifiche imminenti relative alla migrazione a MV3, consulta la nostra pagina dei problemi noti. Inoltre, prevediamo di aggiungere le seguenti funzionalità:

  • API DeclarativeNetRequest: il valore predefinito per la proprietà isUrlFilterCaseSensitive diventerà false. Consulta il thread WECG.
  • L'API File Handling consentirà alle estensioni di ChromeOS di aprire file con tipi MIME ed estensioni di file specifici. Questa funzionalità è attualmente disponibile dietro un flag.
  • API Runtime: stiamo rilasciando runtime.getContexts() per sostituire extension.getViews(), che è deprecato. In questo modo, le estensioni potranno determinare se è aperta una pagina dell'estensione, ad esempio il riquadro laterale o il documento fuori schermo. Consulta la proposta WECG.
  • Service worker: stiamo aggiungendo keep-alive efficaci alle API di Chrome che mostrano una richiesta all'utente: permissions.request(), desktopCapture.chooseDesktopMedia(), identity.launchWebAuthFlow() e management.uninstall().
  • API Riquadro laterale: stiamo lanciando sidepanel.open(), che aprirà il riquadro laterale dell'estensione in modo programmatico in risposta a un gesto dell'utente, ad esempio un clic sul menu contestuale.
  • API TabCapture: stiamo aggiungendo la possibilità di chiamare getMediaStreamId() dallo worker del servizio dell'estensione e di ottenere un MediaStream da un ID stream in un documento offscreen. Per esempi, consulta Registrazione audio e screenshot.

Continua a visitare la pagina Novità nelle estensioni per non perderti questi annunci non appena saranno disponibili in Chrome Beta.

Upgrade della documentazione e altre indicazioni su Manifest V3

Ci stiamo adoperando anche per migliorare l'esperienza di apprendimento degli sviluppatori. Un grande grazie a tutti coloro che si sono presi la briga di porre domande nel gruppo chromium-group e di segnalare problemi relativi alla documentazione su developer.chrome.com.

In evidenza

  • La nuova sezione Migrazione a MV3 fornisce metodi pratici per convertire le estensioni Manifest V2 in Manifest V3.
  • La guida sui service worker delle estensioni fornisce informazioni dettagliate sugli argomenti relativi ai service worker delle estensioni. Sono inclusi il modo in cui vengono registrati e aggiornati, il ciclo di vita, il funzionamento delle importazioni e altro ancora.
  • Il tutorial Gestire gli eventi con i service worker illustra le nozioni di base dei service worker delle estensioni. Crea un'estensione omnibox che ti consente di accedere rapidamente alle pagine di riferimento dell'API di estensione.

Altri aggiornamenti

Disponibile a breve...

  • Come eseguire la migrazione del codice ospitato in remoto a Manifest V3.
  • Come eseguire test automatici per le estensioni di Chrome.
  • Indicazioni migliorate per le richieste di rete dichiarative.
  • Miglioramenti alla spiegazione dello script dei contenuti.

💡 Lo sapevi?

Prima di concludere, volevamo condividere alcuni strumenti e approfondimenti utili:

  • Chrome ha iniziato a supportare WebHID; puoi provare l'API a partire da Chrome 115 (ma tieni presente che è ancora in fase di sviluppo).
  • Puppeteer ora supporta i test in modalità headless utilizzando --headless=new . Scopri di più nel post del blog sull'upgrade della modalità headless di Chrome.
  • Con lo strumento di test degli aggiornamenti delle estensioni, puoi controllare quali avvisi vengono attivati quando le autorizzazioni cambiano nel file manifest. In questo modo, puoi provare la procedura di aggiornamento come farebbe un utente. Questo è importante perché alcune autorizzazioni potrebbero disattivare l'estensione finché l'utente non concede di nuovo l'accesso.

Mettiamoci in contatto. 🙌

Quest'anno, il team delle estensioni ha avuto il piacere di incontrare di persona gli sviluppatori di estensioni durante gli eventi Google I/O Connect. Stiamo lavorando alla creazione di nuovi spazi per entrare in contatto con te, ad esempio il lancio di gruppi di discussione ed eventi di incontro.

Nel frattempo, continua a porre domande su chromium-groups, valuta la possibilità di partecipare al WECG e segnala eventuali problemi relativi alla documentazione nel repository GitHub di developer.chrome.com.

Grazie ancora per aver scelto di far parte della community di sviluppatori di estensioni.