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
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
() undgetBadgeTextColor()
anpassen. Außerdem können Sie mitisEnabled()
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, dassetShelfEnabled()
ersetzt. - History 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 einer höheren Anzahl von Besuchen führen. In Chrome 115 (voraussichtlich Ende des Monats in der stabilen Version verfügbar) wurdeisLocal
zuVisitItem
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
undtimeoutMsForNonInteractive
. - Storage API: In Chrome 112 wurde die Speichergröße von
chrome.session
auf 10 MB erhöht. Anschließend wurde die Speichergröße vonchrome.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, umextension.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()
undmanagement.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
- In diesem Artikel erfahren Sie, wie Sie die Nutzung des Pop-ups Ihrer Erweiterung und die Service Worker-Ereignisse erfassen.
- Im Hilfeartikel Standortbestimmung verwenden wird beschrieben, wie Sie den geografischen Standort der Erweiterung mithilfe der Offscreen API abrufen.
- Im Artikel Audioaufnahme und Bildschirmaufzeichnung erfahren Sie, wie Sie mithilfe der
chrome.tabCapture
- undnavigator.mediaDevices.getDisplayMedia()
-APIs Audio und Video von Tabs, Fenstern oder Bildschirmen aufzeichnen. - Dem Leitfaden Debugging-Erweiterungen wurden neue Tipps zum Entfernen von Fehlern hinzugefügt.
- Wir haben die Richtlinien zu Berechtigungswarnungen aktualisiert, damit Sie besser nachvollziehen können, wie Berechtigungswarnungen funktionieren und wie Sie die Nutzerfreundlichkeit verbessern können. Außerdem gibt es praktische Möglichkeiten, zu prüfen, welche Warnungen die Nutzer sehen.
- Unser Team und unsere Mitwirkenden haben außerdem neue Manifest V3-Erweiterungsbeispiele hinzugefügt: WASM in Erweiterungen, Scripting API-Demo, Side Panel API-Rezeptbücher und DeclarativeNetRequest API-Beispiele. Weitere Erweiterungsbeispiele finden Sie in unserem GitHub-Beispiel-Repository.
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.