chrome-extensions
googlechrome/modern-web-guidance
Создавайте и публикуйте расширения для Chrome с соблюдением лучших практик Manifest V3. Используйте этот навык каждый раз, когда пользователь просит создать, изменить, отладить или разобраться в расширениях браузера Chrome, дополнениях или любых элементах, связанных с API расширений Chrome. Активируйте перевод при упоминании: ‘Chrome extension’, ‘browser extension’, ‘manifest.json’, ‘content script’, ‘service worker’ (в контексте браузера), ‘popup’ (в контексте расширения браузера), ‘side panel’, ‘chrome.* API’, ‘declarativeNetRequest’, ‘omnibox’, ‘context menu’ (в расширении).
...Расширить всеО расширениях Chrome
Руководство по созданию расширений Chrome высокого качества с использованием Manifest V3 и их публикации в Chrome Web Store. Этот материал будет полезен при работе над созданием, изменением, отладкой или изучением расширений браузера Chrome и соответствующих API, включая скрипты контента, сервисных рабочих процессов, всплывающие окна, боковые панели, механизм declarativeNetRequest, поле поиска omnibox, контекстные меню и пользовательские скрипты, а также при выполнении задач по публикации в магазине, связанных с обоснованием необходимости разрешений и составлением политик конфиденциальности.
Часть, посвящённая разработке, содержит набор обязательных правил, направленных на устранение наиболее частых причин неисправности расширений. К примерам относятся обязательное использование файлов иконок, действительно существующих в системе (или полное их отсутствие), указание явного триггера для открытия боковой панели (одного лишь параметра default_path недостаточно для её открытия), запуск кода исключительно внутри защищённых iframe из-за ограничений CSP расширения, блокирующих выполнение функций eval и встроенных скриптов, указание разрешений на работы с вкладками до получения данных tab.url, использование конструкции async/await вместо цепочек .then(), объединение операций с DOM в скриптах контента для избежания блокировки основного потока, а также отказ от хранения состояния в переменных сервисных рабочих процессов из-за их временного характера (для сохранения данных следует использовать chrome.storage и функцию chrome.alarms вместо setTimeout). Дополнительные правила касаются стабилизации идентификатора расширения для авторизации через chrome.identity OAuth с помощью ключа из манифеста, предоставления обратной связи пользователю после действий в контекстном меню, использования LanguageModel API (Prompt API) в сервисных рабочих процессах, всплывающих окнах и боковых панелях, а также обязательного указания ключа действия в манифесте перед использованием функции chrome.action.
Используйте это руководство, когда вам нужны расширения, которые будут корректно работать с первой попытки и пройдут проверку, а не когда требуется отладка тонких нюансов Manifest V3. Каждое правило показывает примеры некорректного и корректного кода, а также указывает на соответствующий справочный документ (по иконкам, боковым панелям, защите через CSP, управлению вкладками, скриптам контента, сервисным рабочим процессам, механизмам аутентификации, контекстным меню и Prompt API). Вторая часть посвящена публикации расширений в Chrome Web Store: подготовке к публикации, реагированию на отказы в проверке, написанию обоснований необходимости разрешений и составлению политик конфиденциальности, что делает материал полезным на всех этапах — от первой версии до размещения в магазине.
Часто задаваемые вопросы
Когда следует использовать эти знания?
При создании, изменении, отладке или изучении расширений Chrome и соответствующих API, а также при публикации в Chrome Web Store, включая подготовку обоснований разрешений и политик конфиденциальности.
Почему моя боковая панель не открывается, если она определена в манифесте?
Указание параметра side_panel.default_path само по себе не обеспечивает открытия панели; необходимо добавить триггер, например вызов функции chrome.sidePanel.open() при нажатии на кнопку действия или в всплывающем окне, либо установить параметр openPanelOnActionClick.
Почему состояние моего расширения теряется?
Сервисные рабочие процессы имеют временный характер и прекращают работу примерно через 30 секунд бездействия, поэтому данные, сохранённые в переменных, теряются; для их сохранения следует использовать chrome.storage и читать данные при каждом событии, вместо setTimeout/setInterval применяя функцию chrome.alarms.
Как запустить динамический код с учётом ограничений CSP расширения?
CSP расширения блокирует выполнение функций eval, new Function и встроенных скриптов, поэтому код следует запускать только в защищённых iframe (с использованием параметра sandbox из манифеста и функции postMessage) или через URL в формате Blob или параметр srcdoc, создающий отдельный источник данных.
Охватывает ли материал Prompt API?
Да. API LanguageModel работает в сервисных рабочих процессах, всплывающих окнах и боковых панелях без дополнительных разрешений, к тому же расширения имеют доступ к функции LanguageModel.params(), недоступной в обычном веб-серфинге.
Все файлы
23 файла references/extensions/context-menus.md1.8 KBПросмотреть references/extensions/auth-identity.md3.9 KBПросмотреть references/extensions/declarative-net-request.md2.7 KBПросмотреть references/extensions/message-passing.md4.1 KBПросмотреть references/extensions/api-calling.md2.1 KBПросмотреть references/extensions/csp-sandbox.md4.7 KBПросмотреть references/extensions/media-capture.md4.7 KBПросмотреть references/extensions/prompt-api.md3.7 KBПросмотреть references/extensions/tab-management.md3.7 KBПросмотреть SKILL.md25.5 KBПросмотреть references/extensions/content-scripts.md3.4 KBПросмотреть references/extensions/devtools.md2.8 KBПросмотреть references/extensions/omnibox.md1.8 KBПросмотреть references/extensions/side-panel.md4.4 KBПросмотреть references/webstore/chromewebstore-template.md5.6 KBПросмотреть references/webstore/review-checklist.md6.8 KBПросмотреть references/extensions/icons.md2.7 KBПросмотреть references/extensions/popup-ui.md2.3 KBПросмотреть references/extensions/storage.md1.9 KBПросмотреть references/webstore/store-listing.md7.8 KBПросмотреть references/extensions/service-worker.md4.5 KBПросмотреть references/extensions/user-scripts.md9.1 KBПросмотреть references/webstore/privacy-policy.md4.1 KBПросмотреть
Все файлы
23 файловУстановить chrome-extensions
Скачайте файлы с навыками и извлеките их в папку .claude/skills/.
Скачать ZIPКлонируйте репозиторий и скопируйте файлы навыка в свой проект.
git clone # Copy SKILL.md to your .claude/skills/ directory
Копировать





Дом
