chrome-extensions
googlechrome/modern-web-guidance
Erstellen und veröffentlichen Sie Chrome-Erweiterungen unter Verwendung der bewährten Methoden von Manifest V3. Nutzen Sie diese Fähigkeit immer dann, wenn Benutzer darum bitten, Chrome-Browsererweiterungen, Add-ons oder alles, was mit der Chrome Extensions API zu tun hat, zu erstellen, zu ändern, zu debuggen oder zu verstehen. Die Aktion wird ausgelöst, wenn die Begriffe ‚Chrome extension‘, ‚browser extension‘, ‚manifest.json‘, ‚content script‘, ‚service worker‘ (im Browserkontext), ‚popup‘ (im Kontext einer Chrome-Erweiterung), ‚side panel‘, ‚chrome.* API‘, ‚declarativeNetRequest‘, ‚omnibox‘ oder ‚context menu‘ (in ext) erwähnt werden.
...Alle erweiternÜber Chrome-Erweiterungen
Anleitungen zur Erstellung von Chrome-Erweiterungen in Produktionsqualität unter Verwendung von Manifest V3 sowie zur Veröffentlichung derselben im Chrome Web Store. Der Leitfaden wird eingesetzt, wenn es um die Erstellung, Anpassung, Fehlerbehebung oder das Verständnis von Chrome-Browsererweiterungen sowie der chrome.*-APIs geht – darunter Content Scripts, Service Workers, Popups, Seitentabs, declarativeNetRequest, Omnibox, Kontextmenüs und User Scripts – sowie um Aufgaben zur Veröffentlichung im Web Store wie die Begründung von Berechtigungen und die Erstellung von Datenschutzrichtlinien.
Der Aufbauabschnitt ist als Sammlung von verpflichtenden Regeln strukturiert, die die häufigsten Ursachen für fehlerhafte Erweiterungen adressieren. Beispiele hierfür sind das Einbeziehen ausschließlich tatsächlich vorhandener Icon-Dateien (oder das vollständige Weglassen von Icons), die Angabe eines expliziten Auslösers zum Öffnen eines Seitentabs (ein alleiniger default_path reicht nicht aus), das Ausführen von Code nur innerhalb sandboxierter Iframes, da die CSP der Erweiterung eval- und Inline-Skripte blockiert, die Angabe der Berechtigungen für Tabs vor dem Abrufen von tab.url, die stets Verwendung von async/await anstelle von .then()-Ketten, das Bündeln von DOM-Arbeiten in Content Scripts, um den Hauptthread nicht zu blockieren, sowie das Vermeiden des Speicherns von Zuständen in Variablen von Service Workers, da diese vorübergehend sind (verwenden Sie stattdessen chrome.storage und chrome.alarms anstelle von setTimeout). Weitere Regeln beinhalten die Stabilisierung der Extension-ID für chrome.identity OAuth mittels eines Manifest-Schlüssels, die Bereitstellung von Rückmeldungen an Benutzer nach Aktionen in Kontextmenüs, die Nutzung des LanguageModel (Prompt API) in Service Workers, Popups und Seitentabs sowie die Erforderlichkeit eines Action-Schlüssels im Manifest vor der Verwendung von chrome.action.
Verwenden Sie diesen Leitfaden, wenn Sie Erweiterungen möchten, die beim ersten Versuch funktionieren und die Überprüfung bestehen, anstatt sich mit subtilen Problemen von Manifest V3 auseinanderzusetzen. Jede Regel zeigt fehlerhaften Code im Vergleich zum korrekten Code und verweist auf eine detailliertere Referenzdatei (für Icons, Seitentabs, CSP-Sandbox, Tab-Verwaltung, Content Scripts, Service Workers, Authentifizierung/Kontextmenüs sowie das Prompt API). Ein zweiter Teil befasst sich mit der Veröffentlichung im Chrome Web Store, einschließlich der Vorbereitung einer Erweiterung, der Reaktion auf Ablehnungen bei Überprüfungen, der Erstellung von Begründungen für Berechtigungen und der Ausarbeitung von Datenschutzrichtlinien – somit ist er für den gesamten Lebenszyklus von der ersten Erstellung bis zur Veröffentlichung im Store nützlich.
FAQ
Wann sollte diese Fähigkeit eingesetzt werden?
Immer dann, wenn es um die Erstellung, Anpassung, Fehlerbehebung oder das Verständnis von Chrome-Erweiterungen sowie der Chrome Extensions API geht, oder bei der Veröffentlichung im Chrome Web Store, einschließlich der Begründung von Berechtigungen und der Erstellung von Datenschutzrichtlinien.
Warum öffnet sich mein Seitentab nicht, obwohl er im Manifest definiert ist?
Die Definition von side_panel.default_path macht den Seitentab noch nicht öffnbar; Sie müssen einen Auslöser hinzufügen, wie zum Beispiel chrome.sidePanel.open() bei Klick auf eine Aktion oder einen Button im Popup, oder openPanelOnActionClick festlegen.
Warum geht der Zustand meiner Erweiterung verloren?
Service Workers sind vorübergehend und beenden ihre Arbeit nach etwa 30 Sekunden Inaktivität, wodurch im Variablen gespeicherter Zustand verloren geht; speichern Sie ihn stattdessen in chrome.storage und lesen Sie ihn bei jedem Ereignis ab, indem Sie chrome.alarms anstelle von setTimeout/setInterval verwenden.
Wie kann ich unter Berücksichtigung der CSP der Erweiterung dynamischen Code ausführen?
Die CSP der Erweiterung blockiert eval, new Function und Inline-Skripte; daher sollte Code nur in sandboxierten Iframes ausgeführt werden (über die Manifest-Sandbox in Kombination mit postMessage) oder über eine Blob-URL oder srcdoc, die eine separate Origin erstellt.
Umfasst der Leitfaden auch das Prompt API?
Ja. Die LanguageModel API funktioniert in Service Workers, Popups und Seitentabs ohne zusätzliche Berechtigungen, und Erweiterungen erhalten außerdem Zugriff auf LanguageModel.params(), der im Web nicht verfügbar ist.
Alle Dateien
23 Dateienchrome-extensions installieren
Laden Sie die Skill-Dateien herunter und extrahieren Sie sie in Ihren Ordner .claude/skills/.
ZIP herunterladenKlonen Sie das Repository und kopieren Sie die Skill-Dateien in Ihr Projekt.
git clone # Copy SKILL.md to your .claude/skills/ directory
Kopieren





Heim
