Was passiert mit Chrome-Erweiterungen?

2023 war bisher ein ereignisreiches Jahr für Chrome-Erweiterungen. Ihr wertvolles Feedback hat uns dabei geholfen, die Erweiterungsplattform und unsere Dokumentation zu verbessern. Außerdem arbeiten wir weiterhin mit anderen Browseranbietern in der WebExtensions Community Group zusammen, damit Erweiterungs-APIs plattformübergreifend konsistenter funktionieren.

In diesem Beitrag stellen wir Ihnen einige Änderungen vor, an denen das Chrome-Erweiterungs-Team in der ersten Jahreshälfte gearbeitet hat. Außerdem erfahren Sie, welche neuen Funktionen im Laufe des Quartals veröffentlicht werden. Los gehts!

Neue APIs und Funktionen für Erweiterungen

In diesem Abschnitt möchte ich einige wichtige API-Veröffentlichungen hervorheben, kurz andere API-Verbesserungen erwähnen und über anstehende API-Releases informieren.

Highlights

Nicht sichtbare Dokumente

Die Offscreen API wurde in Chrome 109 eingeführt. So können Manifest V3-Erweiterungen Anwendungsfälle verarbeiten, die eine Interaktion mit dem DOM oder Fenster erfordern, was im Erweiterungs-Dienst-Worker nicht möglich ist. Außerdem wurden in Chrome 114 zwei weitere Gründe für die Anzeige von Offscreen-Inhalten eingeführt: 'WORKERS' für Fälle, in denen für Ihr Dokument ein Worker erstellt werden muss, und 'LOCAL_STORAGE' zur Migration von Daten von window.localStorage zur chrome.storage API.

Ab Chrome 115 können Sie beim Erstellen eines Offscreen-Dokuments mehrere Gründe angeben. So können Sie zwei ähnliche Aufgaben im selben Dokument ausführen.

Neue Side Panel API 🎉

Bisher war die einzige Möglichkeit, Seitenleisten in Erweiterungen zu erstellen, das Einfügen eines neuen Elements mit Inhaltsscripts auf jeder Seite. In Chrome 114 wurde die Side Panel API eingeführt. Jetzt können Sie eine Seitenleiste für Nutzer viel einfacher entwickeln. Weitere Informationen dazu, wie Sie mit der Seitenleiste API die Nutzerfreundlichkeit verbessern können

Eine Wörterbucherweiterung, die die Definition eines ausgewählten Wortes anzeigt
Seitenleisten-Wörterbucherweiterung. Code im Repository „chrome-extensions-samples“ ansehen

Robustere Service Worker

Bei allen Erweiterungsereignissen wird jetzt der Timer für die Inaktivität des Dienst-Workers der Erweiterung neu gestartet. In Chrome 110 wurde die maximale Lebensdauer von fünf Minuten für Erweiterungs-Service-Worker entfernt. Außerdem wird der Inaktivitätstimer durch Nachrichten an native Anwendungen und Nachrichten innerhalb der Erweiterung zurückgesetzt. Weitere Informationen finden Sie im Artikel Der Lebenszyklus von Service Workern für Erweiterungen.

Weitere API-Einführungen

  • Action API: Ab Chrome 110 können Sie den Badge-Text 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: In Chrome 111 wurde der Fehler behoben, durch den Erweiterungskürzel, die im Manifest unter "commands._execute_action" deklariert wurden, bei der Umwandlung in MV3 nicht beibehalten wurden.
  • Downloads API: Die standardmäßige Download-Benutzeroberfläche in Chrome wurde von einem Bereich unten an die rechte Seite der Omnibox verschoben. Wenn Sie dieses Verhalten deaktivieren möchten, können Sie downloads.setUiOptions() verwenden, das setShelfEnabled() ersetzt.
  • History 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 einer höheren Anzahl von Besuchen führen. In Chrome 115 (voraussichtlich Ende des Monats in der stabilen Version verfügbar) wurde isLocal zu VisitItem hinzugefügt, damit nur nach lokalen Besuchen gefiltert werden kann.
  • Identity API: Das Authentifizierungsfenster wird jetzt als Pop-up angezeigt, anstatt ein vollständiges Anwendungsfenster zu belegen. Um Ihnen mehr Kontrolle über JavaScript-Weiterleitungen zu bieten, 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. Anschließend wurde die Speichergröße von chrome.local 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 anstehenden Änderungen im Zusammenhang mit der MV3-Migration findest du auf der Seite mit bekannten Problemen. Außerdem planen wir, die folgenden Funktionen hinzuzufügen:

  • DeclarativeNetRequest API: Der Standardwert für das Attribut isUrlFilterCaseSensitive ändert sich in false. Weitere Informationen finden Sie im WECG-Thread.
  • Mit der File Handling API können ChromeOS-Erweiterungen Dateien mit bestimmten MIME-Typen und Dateiendungen öffnen. Diese Funktion ist derzeit deaktiviert.
  • Runtime API: Wir führen runtime.getContexts() ein, um extension.getViews() zu ersetzen, das eingestellt wird. So können Erweiterungen feststellen, ob eine Erweiterungsseite wie die Seitenleiste oder ein Dokument außerhalb des Bildschirms geöffnet ist. Weitere Informationen finden Sie im WECG-Vorschlag.
  • Service Worker: Chrome-APIs werden jetzt starke Keep-Alives hinzugefügt, die eine Nutzeraufforderung anzeigen: permissions.request(), desktopCapture.chooseDesktopMedia(), identity.launchWebAuthFlow() und management.uninstall().
  • Seitenleiste API: Wir führen sidepanel.open() ein. Damit wird die Seitenleiste der Erweiterung programmatisch als Reaktion auf eine Nutzergeste geöffnet, z. B. ein Klick 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 Offscreen-Dokument abzurufen. Beispiele finden Sie unter Audioaufnahmen und Bildschirmaufzeichnungen.

Aktuelle Informationen zu diesen Ankündigungen finden Sie auf der Seite Neuigkeiten zu Erweiterungen, sobald sie in Chrome Beta verfügbar sind.

Aktualisierte Dokumentation und weitere Informationen zu Manifest V3

Außerdem haben wir hart daran gearbeitet, die Lernerfahrung für Entwickler zu verbessern. Vielen Dank an alle, die sich die Zeit genommen haben, Fragen in der chromium-group zu stellen und Dokumentationsprobleme unter developer.chrome.com zu melden.

Highlights

  • Im neuen Abschnitt MV3-Migration finden Sie praktische Möglichkeiten, Manifest V2-Erweiterungen in Manifest V3 umzuwandeln.
  • Der Leitfaden Dienstworker für Erweiterungen enthält ausführliche Informationen zu Dienstworkern für Erweiterungen. Dazu gehören unter anderem die Registrierung und Aktualisierung, der Lebenszyklus und die Funktionsweise von Importen.
  • Im Tutorial Ereignisse mit Service Workers verarbeiten werden die Grundlagen von Erweiterungs-Service Workers vermittelt. Es wird eine Omnibox-Erweiterung erstellt, über die Sie schnell auf die Referenzseiten der Erweiterungs-API zugreifen können.

Weitere Neuigkeiten

Demnächst verfügbar...

  • Informationen zum Migrieren extern gehosteten Codes zu Manifest V3
  • So führen Sie automatisierte Tests für Chrome-Erweiterungen aus.
  • Verbesserte Anleitung für deklarative Netzwerkanfragen.
  • Die Erläuterung zum Inhaltsskript wurde verbessert.

💡 Wussten Sie schon?

Bevor wir zum Ende kommen, möchten wir Ihnen noch einige nützliche Tools und Statistiken vorstellen:

  • Wir arbeiten daran, WebHID in Chrome zu unterstützen. Ab Chrome 115 können Sie die API ausprobieren. Beachten Sie jedoch, dass sie sich noch in der Entwicklungsphase befindet.
  • Puppeteer unterstützt jetzt Tests im headless-Modus mit --headless=new . Weitere Informationen finden Sie im Blogpost Upgrades des monitorlosen Modus in Chrome.
  • Mit dem Testtool für Erweiterungsupdates können Sie prüfen, welche Warnungen ausgelöst werden, wenn sich die Berechtigungen im Manifest ändern. So können Sie den Aktualisierungsprozess wie ein Nutzer erleben. Das ist wichtig, da einige Berechtigungen die Erweiterung deaktivieren können, bis der Nutzer den Zugriff wieder gewährt.

Haben Sie Interesse an einem Gespräch? 🙌

In diesem Jahr konnte das Erweiterungsteam Entwickler von Erweiterungen bei den Google I/O Connect-Veranstaltungen persönlich treffen. Wir arbeiten daran, neue Möglichkeiten zu schaffen, mit euch in Kontakt zu treten, z. B. durch die Einführung von Fokusgruppen und Meetup-Veranstaltungen.

In der Zwischenzeit können Sie weiterhin Fragen in den chromium-Gruppen stellen, an der WECG teilnehmen und Dokumentationsprobleme im GitHub-Repository von developer.chrome.com melden.

Vielen Dank, dass Sie Teil der Community für Erweiterungs-Entwickler sind.