2023 war bisher ein ereignisreiches Jahr in der Welt der Chrome-Erweiterungen gewesen. Ihr wertvolles Feedback hat uns geholfen, die Erweiterungsplattform und unsere Dokumentation zu verbessern. Wir arbeiten auch weiterhin mit anderen Browseranbietern in der WebExtensions Community Group zusammen, damit Erweiterungs-APIs browserübergreifend einheitlicher funktionieren.
In diesem Beitrag informieren wir Sie über einige Änderungen, an denen das Team für Chrome-Erweiterungen in der ersten Jahreshälfte gearbeitet hat, sowie die geplanten Funktionen, die im Laufe des Quartals veröffentlicht werden. Los gehts!
Neue Erweiterungs-APIs und -Funktionen
In diesem Abschnitt möchte ich einige wichtige API-Einführungen hervorheben, mich kurz mit anderen API-Verbesserungen befassen und auf anstehende API-Releases hinweisen.
Highlights
Nicht sichtbare Dokumente
Die Offscreen API wurde mit Chrome 109 eingeführt. Manifest V3-Erweiterungen können damit Anwendungsfälle verarbeiten, die eine Interaktion mit dem DOM oder Fenster erfordern, die nicht im Erweiterungs-Service-Worker ausgeführt werden kann. Mit Chrome 114 wurden außerdem zwei zusätzliche Gründe eingeführt, die nicht angezeigt werden: 'WORKERS'
für Fälle, in denen ein Worker erstellt werden muss, und 'LOCAL_STORAGE'
, um Daten von window.localStorage
zur chrome.storage
API zu migrieren.
Ab Chrome 115 können Sie mehrere Gründe angeben, wenn Sie ein nicht sichtbares Dokument erstellen. So können Sie zwei zusammengehörige Aufgaben im selben Dokument ausführen.
Neue Seitenleisten-API 🎉
Früher konnten Seitenleisten in Erweiterungen nur durch das Einfügen eines neuen Elements mit Inhaltsskripten auf jeder Seite erstellt werden. In Chrome 114 wurde die Side Panel API eingeführt. Jetzt können Sie auf viel einfachere Weise eine Companion-Seitenleiste für Nutzer entwickeln. Weitere Informationen
Robustere Service Worker
Alle Erweiterungsereignisse starten jetzt den inaktiven Timer des Erweiterungs-Service-Workers neu. In Chrome 110 wurde die feste maximale Lebensdauer von 5 Minuten für Erweiterungs-Service-Worker entfernt. Auch Nachrichten an native Anwendungen und Nachrichten innerhalb der Erweiterung starten den Inaktivitäts-Timer neu. Weitere Informationen finden Sie im Artikel Lebenszyklus des Erweiterungs-Service-Workers.
Weitere API-Einführungen
- Action API: Ab Chrome 110 können Sie den Logotext mit
setBadgeTextColor
() undgetBadgeTextColor()
anpassen. Außerdem können Sie mitisEnabled()
prüfen, ob die Aktion für den aktuellen Tab aktiviert ist. - Commands API: Der Fehler, bei dem die im Manifest unter
"commands._execute_action"
deklarierten Tastenkombinationen für Erweiterungen bei der Konvertierung in MV3 nicht bestand, wurde in Chrome 111 behoben. - Downloads API: Die Standardbenutzeroberfläche für Downloads in Chrome wurde aus der Ablage unten rechts in der Omnibox verschoben. Wenn Sie dieses Verhalten deaktivieren möchten, können Sie
downloads.setUiOptions()
verwenden, dassetShelfEnabled()
ersetzt. - Verlaufs-API:
chrome.history.getVisits()
undchrome.history.search()
geben auch Daten von anderen Geräten zurück, die mit der lokalen Verlaufsdatenbank synchronisiert wurden. Dies kann zu mehr Verlaufseinträgen und höheren Besuchszahlen führen.isLocal
wurde in Chrome 115 zuVisitItem
hinzugefügt (erwartet im Laufe des Monats), damit nur nach lokalen Besuchen gefiltert werden kann. - Identity API: Das Authentifizierungsfenster wird jetzt als Pop-up angezeigt und nimmt nicht das gesamte Anwendungsfenster ein. Um die JavaScript-Weiterleitungen genauer steuern zu können, haben wir zwei neue Optionen hinzugefügt:
abortOnLoadForNonInteractive
undtimeoutMsForNonInteractive
. - Storage API: In Chrome 112 wurde die Speichergröße von
chrome.session
auf 10 MB erhöht. Dann wurde die Speichergröße vonchrome.local
an die Größe in Chrome 114 angepasst.
Demnächst verfügbar...
In den kommenden Chrome-Versionen werden viele Funktionen eingeführt, die die Migration von Erweiterungen zu Manifest V3 erleichtern. Eine Liste der bevorstehenden Änderungen im Zusammenhang mit der MV3-Migration findest du auf unserer Seite zu bekannten Problemen. Wir planen außerdem, die folgenden Funktionen hinzuzufügen:
- DeclarativeNetRequest API: Der Standardwert für das Attribut isUrlFilterCaseSensitive wird in
false
geändert. Weitere Informationen finden Sie im WECG-Thread. - Die File Handling API ermöglicht es ChromeOS-Erweiterungen, Dateien mit bestimmten MIME-Typen und Dateiendungen zu öffnen. Diese Funktion ist derzeit hinter einer Kennzeichnung.
- Runtime API: Wir veröffentlichen
runtime.getContexts()
, um die eingestellte Versionextension.getViews()
zu ersetzen. So können Erweiterungen feststellen, ob eine Erweiterungsseite wie die Seitenleiste oder das nicht sichtbare Dokument geöffnet ist. Siehe Vorschlag WECG - Service Worker: Wir fügen den Chrome APIs starke Keep-Alives hinzu, bei denen eine Nutzeraufforderung angezeigt wird:
permissions.request()
,desktopCapture.chooseDesktopMedia()
,identity.launchWebAuthFlow()
undmanagement.uninstall()
. - Side Panel API: Wir führen
sidepanel.open()
ein, mit dem die Seitenleiste der Erweiterung programmatisch geöffnet wird, wenn der Nutzer eine Touch-Geste ausführt, z. B. das Klicken auf das Kontextmenü. - TabCapture API: Wir fügen die Möglichkeit hinzu,
getMediaStreamId()
über den Erweiterungs-Service-Worker aufzurufen und einen MediaStream aus einer Stream-ID in einem nicht sichtbaren Dokument abzurufen. Beispiele finden Sie unter Audioaufnahme und Bildschirmaufnahme.
Sobald sie in Chrome Beta verfügbar sind, finden Sie entsprechende Ankündigungen auf der Seite Neuerungen bei Erweiterungen.
Upgrades der Dokumentation und weitere Anleitungen zu Manifest V3
Außerdem haben wir intensiv daran gearbeitet, die Lernerfahrung für Entwickler zu verbessern. Ein großes Dankeschön an alle, die sich die Zeit genommen haben, Fragen zur chromium-group zu stellen und Dokumentationsprobleme auf developer.chrome.com zu melden.
Highlights
- Der neue Abschnitt MV3-Migration bietet praktische Möglichkeiten zum Konvertieren von Manifest V2-Erweiterungen in Manifest V3.
- Der Leitfaden Erweiterungs-Service-Worker enthält detaillierte Informationen zu den Themen für Erweiterungs-Service-Worker. Dazu gehören die Registrierung und Aktualisierung, das Aussehen des Lebenszyklus und die Funktionsweise von Importen.
- In der Anleitung Ereignisse mit Service Workern verarbeiten werden die Grundlagen von Erweiterungs-Service-Workern erläutert. Es erstellt eine Omnibox-Erweiterung, mit der Sie schnell auf Erweiterungs-API-Referenzseiten zugreifen können.
Weitere Neuigkeiten
- In Google Analytics 4 erfahren Sie, wie Sie die Nutzung von Pop-ups und Service Worker-Ereignissen für Erweiterungen erfassen.
- Unter Standortbestimmung erfahren Sie, wie Sie den geografischen Standort der Erweiterung mithilfe der Offscreen API ermitteln.
- Unter Audioaufzeichnung und Bildschirmaufnahme erfahren Sie, wie Sie mithilfe der APIs von
chrome.tabCapture
undnavigator.mediaDevices.getDisplayMedia()
Audio und Video aus Tabs, Fenstern oder Bildschirmen aufzeichnen. - Wir haben dem Leitfaden Debugging-Erweiterungen neue Tipps zur Fehlerbehebung hinzugefügt.
- Wir haben die Richtlinien zu Berechtigungswarnungen aktualisiert, um besser verständlich zu machen, wie Berechtigungswarnungen funktionieren und wie du die Nutzerfreundlichkeit verbessern kannst. Es gibt auch praktische Möglichkeiten zu prüfen, welche Warnungen Nutzer sehen.
- Unser Team und Beitragende haben außerdem neue Beispiele für Manifest V3-Erweiterungen hinzugefügt: WASM in Erweiterungen, Scripting API-Demo, Side Panel API-Cookbooks und DeclarativeNetRequest API-Beispiele. Weitere Erweiterungsbeispiele finden Sie in unserem GitHub-Beispiel-Repository.
Demnächst verfügbar...
- Anleitung zum Migrieren von remote gehostetem Code zu Manifest V3.
- So führen Sie automatisierte Tests für Chrome-Erweiterungen aus.
- Verbesserte Anleitung für deklarative Nettoanfragen.
- Verbesserungen an der Erläuterung des Inhaltsskripts
💡 Schon gewusst?
Zum Abschluss möchten wir Ihnen noch ein paar nützliche Tools und Informationen vorstellen:
- Chrome unterstützt jetzt WebHID. Ab Chrome 115 können Sie mit der API experimentieren. Sie wird jedoch noch weiterentwickelt.
- Puppeteer unterstützt jetzt Tests im monitorlosen Modus mit
--headless=new
. Weitere Informationen dazu finden Sie im Blogpost zum Upgrade des monitorlosen Modus in Chrome. - Mit dem Testtool zum Aktualisieren von Erweiterungen können Sie prüfen, welche Warnungen ausgelöst werden, wenn sich Berechtigungen im Manifest ändern. Auf diese Weise können Sie den Aktualisierungsprozess wie die Nutzenden erleben. Dies ist wichtig, da die Erweiterung durch einige Berechtigungen möglicherweise deaktiviert wird, bis der Nutzer wieder Zugriff gewährt.
Kontaktieren Sie uns! 🙌
Dieses Jahr freute sich das Erweiterungsteam, die Erweiterungsentwickler bei der Google I/O Connect persönlich kennenzulernen. Wir arbeiten daran, neue Möglichkeiten zu schaffen, mit euch in Kontakt zu treten, beispielsweise Fokusgruppen und Meetup-Veranstaltungen.
In der Zwischenzeit können Sie weiterhin Fragen zu den chromium-groups stellen, an der WECG teilnehmen und etwaige Dokumentationsprobleme im GitHub-Repository für developer.chrome.com melden.
Nochmals vielen Dank, dass Sie Teil der Community für Entwickler von Erweiterungen sind.