Was passiert mit Chrome-Erweiterungen?

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

Eine Wörterbucherweiterung, die die Definition eines ausgewählten Wortes anzeigt
Wörterbucherweiterung in der Seitenleiste. Sehen Sie sich den Code im Repository „chrome-extensions-samples“ an.

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() und getBadgeTextColor() anpassen. Außerdem können Sie mit isEnabled() 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, das setShelfEnabled() ersetzt.
  • Verlaufs-API: chrome.history.getVisits() und chrome.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 zu VisitItem 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 und timeoutMsForNonInteractive.
  • Storage API: In Chrome 112 wurde die Speichergröße von chrome.session auf 10 MB erhöht. Dann wurde die Speichergröße von chrome.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 Version extension.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() und management.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

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.