Was passiert mit Chrome-Erweiterungen?

Amy Steam
Amy Steam

Bisher war 2023 ein geschäftiges Jahr in der Welt der Chrome-Erweiterungen. Ihr Feedback hilft uns, die Erweiterungsplattform und unsere Dokumentation zu verbessern. In der WebExtensions Community Group arbeiten wir auch weiterhin mit anderen Browseranbietern zusammen, damit Erweiterungs-APIs in allen Browsern 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, und zeigen Ihnen, welche neuen Funktionen 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, andere API-Verbesserungen kurz besprechen und künftige API-Releases vorstellen.

Highlights

Nicht sichtbare Dokumente

Die Offscreen API wurde in Chrome 109 eingeführt. Manifest V3-Erweiterungen können damit Anwendungsfälle verarbeiten, die eine Interaktion mit dem DOM oder Fenster erfordern, was im Erweiterungs-Service-Worker nicht ausgeführt werden kann. Mit Chrome 114 wurden außerdem zwei weitere nicht sichtbare Gründe eingeführt: 'WORKERS' für Fälle, in denen ein Dokument einen Worker erzeugen muss und 'LOCAL_STORAGE' für die Migration von Daten von window.localStorage zur chrome.storage API.

Ab Chrome 115 können Sie beim Erstellen von nicht sichtbaren Dokumenten mehrere Gründe angeben. Auf diese Weise können Sie zwei zusammengehörige Aufgaben im selben Dokument ausführen.

Neue Seitenleisten-API 🎉

Früher konnten Seitenleisten in Erweiterungen nur durch Einfügen eines neuen Elements mit Inhaltsskripten auf jeder Seite erstellt werden. In Chrome 114 wurde die Side Panel API eingeführt. Ab sofort lässt sich eine Companion-Seitenleiste viel einfacher entwickeln. Weitere Informationen

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

Stabilere Service Worker

Durch alle Erweiterungsereignisse wird jetzt der Timer für die Inaktivität des Erweiterungsdienst-Workers neu gestartet. In Chrome 110 wurde die harte maximale Lebensdauer von fünf Minuten für Erweiterungs-Service-Worker entfernt. Außerdem wird durch Nachrichten an systemeigene Anwendungen und Nachrichten innerhalb der Erweiterung der Timer bei Inaktivität neu gestartet. Weitere Informationen finden Sie im Artikel Lebenszyklus des Erweiterungs-Service-Workers.

Weitere API-Einführungen

  • Action API: Ab Chrome 110 können Sie den Badgetext mit setBadgeTextColor() und getBadgeTextColor() anpassen. Außerdem können Sie in 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 Erweiterungsverknüpfungen während der Konvertierung in MV3 nicht bestehen blieben, wurde in Chrome 111 behoben.
  • Downloads API: Die Standardbenutzeroberfläche für Downloads in Chrome wurde aus einer Ablage unten auf die rechte Seite der Omnibox verschoben. Um dieses Verhalten zu deaktivieren, 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 Protokolleinträgen und höheren Besuchszahlen führen. „isLocal“ wurde in Chrome 115 zu VisitItem hinzugefügt (wird im Laufe des Monats voraussichtlich instabilell ausgeführt), damit nur nach lokalen Besuchen gefiltert werden kann.
  • Identity API: Das Authentifizierungsfenster wird jetzt als Pop-up angezeigt und nicht mehr als das gesamte Anwendungsfenster. Damit Sie JavaScript-Weiterleitungen besser steuern können, haben wir zwei neue Optionen hinzugefügt: abortOnLoadForNonInteractive und timeoutMsForNonInteractive.
  • Storage API: In Chrome 112 wurde der Speicherplatz von chrome.session auf 10 MB erhöht. Dann wurde die Speichergröße von chrome.local entsprechend 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 vereinfachen. Eine Liste der anstehenden Änderungen im Zusammenhang mit der MV3-Migration finden Sie auf der Seite Bekannte Probleme. Außerdem planen wir, die folgenden Funktionen hinzuzufügen:

  • DeclarativeNetRequest API: Der Standardwert für die Property isUrlFilterCaseSensitive wird in false geändert. Siehe WECG-Thread.
  • Über die File Handling API können ChromeOS-Erweiterungen Dateien mit bestimmten MIME-Typen und Dateiendungen öffnen. Diese Funktion ist derzeit hinter einer Markierung.
  • Runtime API: Wir veröffentlichen runtime.getContexts(), um das eingestellte extension.getViews() zu ersetzen. So können Erweiterungen feststellen, ob eine Erweiterungsseite, z. B. die Seitenleiste oder ein nicht sichtbares Dokument, geöffnet ist. Siehe WECG-Vorschlag.
  • Service Worker: Wir fügen den Chrome APIs starke Keep-Alives hinzu, für die eine Eingabeaufforderung angezeigt wird: permissions.request(), desktopCapture.chooseDesktopMedia(), identity.launchWebAuthFlow() und management.uninstall().
  • Side Panel API: Wir führen sidepanel.open() ein. Damit wird die Seitenleiste der Erweiterung programmatisch geöffnet, wenn eine Nutzergeste ausgeführt wird, z. B. durch einen Klick auf das Kontextmenü.
  • TabCapture API: Wir fügen die Möglichkeit hinzu, getMediaStreamId() vom Service Worker der Erweiterung aufzurufen und einen MediaStream von einer Stream-ID in einem nicht sichtbaren Dokument abzurufen. Beispiele finden Sie unter Audio- und Bildschirmaufnahmen.

Auf der Seite Neuerungen bei Erweiterungen finden Sie diese Ankündigungen, sobald sie in Chrome Beta verfügbar sind.

Dokumentationsupgrades und weitere Informationen zu Manifest V3

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

Highlights

  • Der neue Abschnitt MV3-Migration bietet praktische Möglichkeiten, Manifest V2-Erweiterungen zu Manifest V3 zu konvertieren.
  • Ausführliche Informationen zu den Themen im Extension Service Worker finden Sie im Leitfaden Extension Service Worker. Dazu gehört unter anderem, wie sie registriert und aktualisiert werden, wie der Lebenszyklus aussieht und wie Importe funktionieren.
  • In der Anleitung Ereignisse mit Service Workern verarbeiten werden die Grundlagen von Extension Service Workern erläutert. Es erstellt eine Omnibox-Erweiterung, über die Sie schnell auf Referenzseiten der Erweiterungs-API zugreifen können.

Weitere Neuigkeiten

Demnächst verfügbar...

  • Hier erfahren Sie, wie Sie remote gehosteten Code zu Manifest V3 migrieren.
  • Hier erfahren Sie, wie Sie automatisierte Tests für Chrome-Erweiterungen ausführen.
  • Verbesserte Anleitung für deklarative Nettoanfragen.
  • Verbesserungen an der Erläuterung des Inhaltsskripts.

💡 Schon gewusst?

Zum Abschluss möchte ich Ihnen noch ein paar nützliche Tools und Informationen vorstellen:

  • Chrome arbeitet an der Unterstützung von WebHID. Sie können die API ab Chrome 115 ausprobieren. Die API ist allerdings noch in der Entwicklung.
  • 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 für die Aktualisierung 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 Aktualisierungsvorgang wie ein Nutzer erleben. Das ist wichtig, da einige Berechtigungen die Erweiterung deaktivieren können, bis der Nutzer wieder Zugriff gewährt.

Kontaktiere uns! 🙌

In diesem Jahr hat sich das Team für Erweiterungen bei Google I/O Connect persönlich gefreut, die Entwickler der Erweiterungen persönlich kennenzulernen. Wir arbeiten an neuen Gruppenbereichen, über die wir Sie vernetzen können, zum Beispiel durch die Einführung von Fokusgruppen und Meetup-Veranstaltungen.

In der Zwischenzeit können Sie weiterhin Fragen zu den chromium-groups stellen, sich an der WECG beteiligen und Probleme mit der Dokumentation im GitHub-Repository „developer.chrome.com“ melden.

Nochmals vielen Dank, dass Sie Teil der Community für Erweiterungsentwickler sind.