Veröffentlicht: 19. November 2024
Auf der Google I/O 2024 haben wir erste Designs für bevorstehende Änderungen am Erweiterungsmenü vorgestellt, mit denen Nutzer mehr Kontrolle darüber haben, auf welche Websites Erweiterungen zugreifen können. Wir werden diese Änderungen bald testen, beginnend mit einem kleinen Prozentsatz der Nutzer in Canary. Wir hoffen, sie in Zukunft allgemein einführen zu können.
In der Vergangenheit haben wir bei Gesprächen mit Entwicklern oft Bedenken hinsichtlich der Auswirkungen einer Änderung der Art und Weise geäußert, wie Erweiterungen bei der Installation Hostberechtigungen anfordern können. Das neue Menü hat keine Auswirkungen auf das Standardverhalten. Erweiterungen erhalten weiterhin bei der Installation Zugriff auf alle angeforderten Hosts. Mit diesen Änderungen möchten wir es Nutzern leichter machen, bereits verfügbare Einstellungen zu finden.
In diesem Beitrag erhalten Sie einen Überblick darüber, was Sie erwartet und wie Sie Ihre Erweiterungen mit einer neuen API vorbereiten können, um Fälle zu behandeln, in denen der Zugriff auf eine Seite vom Nutzer verweigert wurde.
Was ändert sich?
Um Nutzern mehr Kontrolle zu geben, führen wir ein neues Menü für Erweiterungen ein. Erweiterungen erhalten weiterhin bei der Installation Zugriff auf alle angeforderten Hosts. Nutzer können den Zugriff jetzt jedoch einfacher pro Erweiterung steuern.
Im neuen Menü (auf dem Bild ist das aktuelle Design zu sehen, das sich noch ändern kann) ist klarer zu erkennen, welche Erweiterungen auf einer Seite ausgeführt werden können. Außerdem haben Nutzer die Möglichkeit, den Zugriff bei Bedarf zu ändern. Nutzer können auch verhindern, dass alle Erweiterungen auf einer bestimmten Website ausgeführt werden. Wie bereits erwähnt, ändern sich keine der verfügbaren Einstellungen oder Standardeinstellungen. Wir möchten lediglich die Sichtbarkeit der bereits vorhandenen Funktionen für Nutzer verbessern.
Anfrage für Websitezugriff hinzufügen
Wir haben eine neue API entwickelt, die diese Änderungen ergänzt. Dabei haben wir uns auf den umfangreichen Input anderer Browser und Entwickler in der WebExtensions Community Group gestützt.
Wenn ein Nutzer den Zugriff auf eine Seite verweigert hat, können Erweiterungen jetzt über die neue permissions.addSiteAccessRequest
API Zugriff anfordern. In diesem Fall wird dem Nutzer in der Symbolleiste neben dem Puzzleteil der Erweiterung die Meldung „Zulassen“ angezeigt. Hier ist ein Design, das wir untersuchen:
Wenn ein Nutzer im Erweiterungsmenü auf „Zulassen“ klickt, erhält die Erweiterung dauerhaften Zugriff auf den Host. Der Nutzer kann die Einwilligung auch in Zukunft widerrufen, indem er das Erweiterungsmenü oder die Seite chrome://extensions aufruft. Wenn Sie in der Symbolleiste auf „Zulassen 1?“ klicken, können Sie den Zugriff sofort gewähren.
Erweiterungen können permissions.addSiteAccessRequest
mit einem tabId
aufrufen, um eine Berechtigungsanfrage für diesen Tab anzuzeigen. Sie können die Funktion bereits jetzt mithilfe der Funktionserkennung in Ihrer Erweiterung verwenden. Ohne das neue Menü kann die API nicht genutzt werden. Wenn Sie sie jedoch implementieren, profitieren Nutzer mit dem neuen Menü, sobald es eingeführt wird.
chrome.tabs.onUpdated.addListener(async (tabId, changes) => {
if (typeof changes.url !== 'string') return;
const url = new URL(changes.url);
// If we are on the /checkout page of example.com.
if (url.origin === 'https://example.com' && url.pathname === '/checkout') {
const hasPermission = await chrome.permissions.contains({
origins: ['https://example.com/*']
});
// We already have host permissions.
if (hasPermission) {
return;
}
// Add a site access request if the API is available.
if (chrome.permissions.addSiteAccessRequest) {
chrome.permissions.addSiteAccessRequest({ tabId });
}
}
});
In diesem Beispiel wird nur dann eine Anfrage gesendet, wenn sich der Nutzer auf der Seite /checkout
befindet. Den vollständigen Code finden Sie in unserem Repository „chrome-extensions-samples“.
Entwickler von Erweiterungen sollten darauf achten, wann sie Nutzer um Zugriff bitten. Nutzer ignorieren solche Anfragen eher und Chrome drosselt möglicherweise übermäßige Anfragen. Nutzer können auch festlegen, dass eine Erweiterung keine Anfragen mehr anzeigen darf. Daher sollten Sie den Zugriff nur in bestimmten Situationen anfordern, wenn Sie sich ziemlich sicher sind, dass der Nutzer mit Ihrer Erweiterung interagieren möchte.
Anfragen sind an einen bestimmten Tab gebunden und werden automatisch gelöscht, wenn ein Nutzer zu einem anderen Ursprung wechselt. Es gibt eine entsprechende removeSiteAccessRequest
-Methode, mit der eine Anfrage explizit gelöscht werden kann, z. B. wenn eine Anfrage an einen bestimmten Pfad gebunden ist.
Da diese API mit dem neuen Menü für Erweiterungen verknüpft ist, werden Aufrufe ignoriert, wenn das neue Menü nicht aktiviert ist. Wir empfehlen Ihnen jedoch, die API schon jetzt auszuprobieren und in Ihrer Erweiterung zu verwenden. So können Sie die Nutzerfreundlichkeit verbessern, da die neuen Menüänderungen nach und nach für mehr Nutzer sichtbar werden.
Weitere Informationen zur Verwendung optionaler Berechtigungen finden Sie in der Dokumentation zu Berechtigungen.
Jetzt ausprobieren
Die API ist in Chrome 133.0.6838.0 und höher standardmäßig aktiviert (derzeit in Chrome Canary). Wenn Sie das neue Menü aktivieren möchten, aktivieren Sie unter chrome://flags das Flag „Zugriffssteuerung für das Erweiterungsmenü“.
Zur Erinnerung: Diese Funktion befindet sich noch in der Entwicklungsphase und kann sich weiterentwickeln und ändern. Wir empfehlen, die Tests in Chrome Canary durchzuführen, um die neuesten Funktionen zu nutzen.
Sie können Feedback zum neuen Design in der chromium-extensions-Mailingliste hinterlassen. Wir berücksichtigen es bei der weiteren Arbeit am neuen Menü.