Cosa sta succedendo nelle estensioni di Chrome?

Laura Pausini
Amy Steam

Finora il 2023 è stato un anno impegnativo nel mondo delle estensioni di Chrome. Il tuo prezioso feedback ci ha permesso di migliorare la piattaforma delle estensioni e la nostra documentazione. Continuiamo inoltre a collaborare con altri fornitori di browser nel WebExtensions Community Group in modo che le API delle estensioni funzionino in modo più coerente in tutti i browser.

In questo post, condivideremo con te alcune modifiche su cui il team addetto alle estensioni di Chrome ha lavorato durante la prima metà di quest'anno e le funzionalità che verranno rilasciate alla fine di questo trimestre. Iniziamo!

Nuove API e funzionalità delle estensioni

In questa sezione voglio evidenziare alcuni lanci di API significativi, esaminare brevemente altri miglioramenti dell'API e condividere le prossime versioni dell'API.

In evidenza

Documenti fuori schermo

L'API Offscreen è stata introdotta in Chrome 109. Consente alle estensioni Manifest V3 di gestire i 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 due motivi aggiuntivi al di fuori dello schermo: 'WORKERS' per i casi 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 diversi motivi quando crei un documento fuori schermo. In questo modo puoi eseguire due attività correlate nello stesso documento.

Nuova API Side Panel 🎉

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

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

Service worker più affidabili

Tutti gli eventi dell'estensione ora riavviano il timer di inattività del service worker dell'estensione. In Chrome 110, la durata massima di cinque minuti è stata rimossa per i Service worker delle estensioni. Inoltre, i messaggi alle applicazioni 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() consente di verificare se l'azione è attivata per la scheda corrente.
  • API Commands: il bug per cui le scorciatoie delle estensioni, dichiarate nel manifest in "commands._execute_action", non venivano mantenute durante la conversione a MV3, è stato corretto in Chrome 111.
  • API Download: l'interfaccia utente predefinita per i download in Chrome è stata spostata da una barra delle app in basso a destra nella 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 sincronizzati con il database della cronologia locale. Ciò potrebbe comportare un maggior numero di voci nella cronologia e un numero di visite più elevato. isLocal è stato aggiunto a VisitItem in Chrome 115 (previsto nella versione stabile a fine 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 completa dell'applicazione. Per concedere un maggiore controllo durante il processo dei reindirizzamenti JavaScript, abbiamo aggiunto due nuove opzioni: abortOnLoadForNonInteractive e timeoutMsForNonInteractive.
  • API Storage: in Chrome 112 la dimensione dello spazio di archiviazione di chrome.session è stata aumentata a 10 MB. Successivamente, le dimensioni dello spazio di archiviazione di chrome.local sono state modificate affinché corrispondano a quelle in Chrome 114.

Disponibile a breve…

Le prossime versioni di Chrome introdurranno molte funzionalità che semplificano la migrazione delle estensioni a Manifest V3. Per un elenco delle prossime modifiche 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 verrà impostato su false. Vedi il thread WECG.
  • L'API File handling consentirà alle estensioni di ChromeOS di aprire file con estensioni e tipi MIME specificati. Al momento questa funzionalità è dietro un contrassegno.
  • API Runtime: stiamo rilasciando runtime.getContexts() per sostituire extension.getViews(), che è deprecata. In questo modo, le estensioni possono stabilire se è aperta una pagina di 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 un prompt dell'utente: permissions.request(), desktopCapture.chooseDesktopMedia(), identity.launchWebAuthFlow() e management.uninstall().
  • API Side Panel: stiamo lanciando sidepanel.open(), che aprirà il riquadro laterale dell'estensione in modo programmatico in risposta a un gesto dell'utente, ad esempio il clic su un menu contestuale.
  • API Tab Capture: aggiungeremo la possibilità di chiamare getMediaStreamId() dal service worker dell'estensione e ottenere un MediaStream da un ID stream in un documento fuori schermo. Per alcuni esempi, vedi Registrazione audio e acquisizione schermo.

Consulta la pagina Novità delle estensioni per questi annunci non appena saranno disponibili in Chrome Beta.

Upgrade della documentazione e altre indicazioni per Manifest V3

Ci stiamo adoperando per migliorare anche l'esperienza di apprendimento dello sviluppatore. Grazie di cuore a tutti coloro che hanno dedicato del tempo a porre domande sul gruppo chromium-group e a segnalare i problemi relativi alla documentazione su developer.chrome.com.

In evidenza

  • La nuova sezione Migrazione MV3 fornisce modi pratici per convertire le estensioni Manifest V2 in Manifest V3.
  • La guida relativa ai service worker delle estensioni fornisce informazioni dettagliate sugli argomenti dei Service worker delle estensioni. Questi includono il modo in cui vengono registrati e aggiornati, l'aspetto del 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 delle estensioni.

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.
  • Sono state migliorate le indicazioni relative alle richieste nette dichiarative.
  • Miglioramenti al testo esplicativo dello script dei contenuti.

💡 Lo sapevi?

Prima di concludere, vorremmo condividere un paio di strumenti e approfondimenti utili:

  • Chrome ha iniziato a lavorare sul supporto di WebHID. Puoi sperimentare l'API a partire da Chrome 115 (ma tieni presente che è ancora in fase di sviluppo).
  • Puppeteer ora supporta i test in modalità headless tramite --headless=new . Scopri di più nel post del blog sull'upgrade della modalità headless di Chrome.
  • Con lo strumento di test dell'aggiornamento delle estensioni puoi controllare quali avvisi vengono attivati quando le autorizzazioni vengono modificate nel file manifest. In questo modo, puoi sperimentare il processo di aggiornamento come farebbe un utente. Questo è importante perché alcune autorizzazioni potrebbero disattivare l'estensione finché l'utente non concede nuovamente l'accesso.

Sentiamoci! 🙌

Quest'anno il team addetto all'estensione è stato felice 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 lanciando focus group ed eventi di meetup.

Nel frattempo, continua a fare domande su chromium-groups, prendere in considerazione la partecipazione al WECG e a segnalare eventuali problemi relativi alla documentazione sul repository GitHub di sviluppatori.chrome.com.

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