Cosa sta succedendo nelle estensioni di Chrome?

Finora il 2023 è stato un anno molto impegnativo per quanto riguarda le 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 WebEstensioni Community Group in modo che le API di estensione funzionino in modo più coerente su tutti i browser.

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

Nuove API e funzionalità delle estensioni

In questa sezione, voglio evidenziare alcuni lanci significativi dell'API, esaminare brevemente altri miglioramenti dell'API e condividere le prossime release 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, in Chrome 114 sono stati introdotti due motivi aggiuntivi fuori 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 indicare diversi motivi per la creazione di un documento fuori schermo. 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 della barra laterale complementare per gli utenti in un modo molto più diretto. Scopri di più su come l'API Side Panel ti consente di progettare un'esperienza utente di livello superiore.

Un'estensione del dizionario che mostra la definizione di una parola selezionata
Estensione del dizionario del 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 di estensioni. Inoltre, i messaggi indirizzati ad applicazioni native e messaggi all'interno dell'estensione riavviano il timer di inattività. Per saperne di più, leggi l'articolo Il ciclo di vita del service worker delle estensioni.

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 è attiva 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 risolto in Chrome 111.
  • API Download. L'interfaccia utente per i download predefinita di Chrome è stata spostata da una barra delle app in fondo al lato destro della 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 più voci nella cronologia e un numero di visite più elevato. isLocal è stato aggiunto a VisitItem in Chrome 115 (previsto nella versione stabile più avanti nel mese) per poter filtrare solo in base alle visite locali.
  • API Identity: la finestra di autenticazione ora viene visualizzata come popup, invece di occupare l'intera finestra dell'applicazione. Per concedere un maggiore controllo durante la procedura dei reindirizzamenti 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 che corrispondano a Chrome 114.

Disponibile a breve…

Le prossime versioni di Chrome introdurranno molte funzionalità per facilitare la migrazione delle estensioni a Manifest V3. Per un elenco delle prossime modifiche relative alla migrazione di 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à modificato in false. Vedi il thread WECG.
  • L'API File handling consente alle estensioni di ChromeOS di aprire file con estensioni di file e tipi MIME specificati. Questa funzionalità è attualmente dietro una segnalazione.
  • API Runtime: stiamo rilasciando runtime.getContexts() per sostituire extension.getViews(), che è deprecato. In questo modo le estensioni potranno determinare se una pagina di estensione, come il riquadro laterale o il documento fuori schermo, è aperta. Vedi la proposta WECG.
  • Service worker: stiamo aggiungendo efficaci keep-alive alle API di Chrome che mostrano un prompt dell'utente: permissions.request(), desktopCapture.chooseDesktopMedia(), identity.launchWebAuthFlow() e management.uninstall().
  • API del 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 Tab Capture: stiamo aggiungendo 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, consulta Registrazione audio e acquisizione schermo.

Continua a seguirci sulla pagina Novità delle estensioni per leggere questi annunci non appena vengono resi disponibili in Chrome Beta.

Upgrade della documentazione e ulteriori indicazioni per Manifest V3

Inoltre, ci siamo impegnati per migliorare l'esperienza di apprendimento degli sviluppatori. Grazie mille a tutti coloro che hanno trovato il tempo di porre domande su chromium-group e di segnalare i problemi relativi alla documentazione su developer.chrome.com.

In evidenza

  • La nuova sezione Migrazione MV3 fornisce alcuni modi pratici per convertire le estensioni Manifest V2 in Manifest V3.
  • La guida per i fornitori di servizi di estensione fornisce informazioni dettagliate sugli argomenti dei lavoratori del servizio di estensione. tra cui la modalità di registrazione e aggiornamento, l'aspetto del ciclo di vita, il funzionamento delle importazioni e altro ancora.
  • Il tutorial Gestire gli eventi con i service worker insegna le nozioni di base sui service worker di estensione. Crea un'estensione omnibox che permette di accedere rapidamente alle pagine di riferimento dell'API delle estensioni.

Altri aggiornamenti

Disponibile a breve…

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

💡 Lo sapevi?

Prima di concludere, vogliamo 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 utilizzando --headless=new . Scopri di più nel post del blog sull'upgrade della modalità headless di Chrome.
  • Con lo strumento di test di aggiornamento delle estensioni, puoi controllare quali avvisi vengono attivati quando le autorizzazioni cambiano nel file manifest. In questo modo, puoi seguire la procedura di aggiornamento come farebbe l'utente. Questo è importante perché alcune autorizzazioni potrebbero disattivare l'estensione finché l'utente non concede nuovamente l'accesso.

Connettiti! 🙌

Quest'anno il team di estensioni ha incontrato 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, come il lancio di focus group ed eventi di Meet.

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

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