Что нового в расширениях Chrome

Регулярно проверяйте эту страницу, чтобы узнавать об изменениях в расширениях Chrome, документации к расширениям, а также о связанных с ними изменениях в политике и других изменениях. Другие уведомления вы найдете в списке рассылки расширений Chrome . В расписании Chrome указаны даты стабильных и бета-версий.

Видео: Как узнать, безопасно ли запрашивать разрешения в вашем расширении Chrome.

Опубликовано на

Узнайте, как добавление нового разрешения к вашему расширению отображается для пользователей в нашем последнем видео .

Видео: Всё, что произошло с расширениями Chrome в 2025 году.

Опубликовано на

Оливер подводит итоги 2025 года, рассказывая обо всех новинках этого года — смотрите прямо сейчас .

Видео: Можно ли создать кроссбраузерное расширение для Chrome?

Опубликовано на

Узнайте, как создать кроссбраузерное расширение, в нашем последнем видео .

Видео: Как обеспечить безопасность ключей API в расширении Chrome?

Опубликовано на

Узнайте, как обеспечить безопасность ключей API, посмотрев наше новое видео .

Видео: Ответы на ваши вопросы о доступности товаров в Chrome Web Store.

Опубликовано на

В нашем последнем видео мы отвечаем на ваши вопросы о поиске приложений в Chrome Web Store.

Chrome 140: Новый API sidePanel.getLayout()

Опубликовано на

Начиная с Chrome 140, используйте новый API sidePanel.getLayout() , чтобы определить, расположена ли боковая панель слева или справа от экрана. Это особенно полезно, если вы поддерживаете языки с написанием справа налево (RTL), где в новых версиях Chrome настройки по умолчанию отличаются.

Новое руководство: жизненный цикл обновления расширений.

Опубликовано на

Мы опубликовали новое руководство, объясняющее, как обновлять расширения в Chrome .

Chrome 139: Удаление флагов --extensions-on-chrome-urls и --disable-extensions-except в сборках Chrome с фирменной символикой.

Опубликовано на

Начиная с Chrome 139, флаги командной строки --extensions-on-chrome-urls и --disable-extensions-except будут удалены в официальных сборках Chrome. Подробнее можно узнать в списке рассылки .

Chrome 138: Изменения на странице новой вкладки

Опубликовано на

Начиная с версии Chrome 138, мы обновляем пользовательский интерфейс новой вкладки, добавляя новый нижний колонтитул. Подробнее можно узнать в списке рассылки .

Запись в блоге: Обновите свои расширения перед предстоящими изменениями в закладках.

Опубликовано на

Мы вносим некоторые изменения в синхронизацию закладок, которые могут повлиять на работу вашего расширения. Подробнее читайте в статье блога .

Запись в блоге: Что будет происходить с расширениями Chrome в июне 2025 года

Опубликовано на

Мы были заняты: участвовали в конференции Google I/O, а также внедрили несколько новых функций в Chrome и Chrome Web Store. Узнайте все подробности в разделе «Что происходит с расширениями Chrome, июнь 2025 года »!

Видео: Игра «Ударь крота» в вашем браузере — это возможно?!

Опубликовано на

Узнайте, как создать игру в браузере, посмотрев наше новое видео .

Видео: Объяснение нового меню расширений Chrome

Опубликовано на

Узнайте больше об экспериментальном новом меню расширений в нашем последнем видео « Объяснение нового меню расширений Chrome» .

Видео: Наращивание волос — это круто!

Опубликовано на

В первом эпизоде ​​«Расширения — это здорово» вы узнаете, как начать разработку расширений, а во втором эпизоде ​​— насколько гибкими могут быть возможности настройки Chrome!

Chrome 135: Новый API userScripts.execute()

Опубликовано на

Начиная с Chrome 135, в API chrome.userScripts появился новый метод userScripts.execute() . С его помощью можно внедрить пользовательский скрипт один раз в произвольное время, вместо того чтобы регистрировать его постоянно.

Chrome 132: Просмотр и редактирование хранилища расширений в инструментах разработчика.

Опубликовано на

Начиная с Chrome 132, вы можете просматривать и редактировать данные, хранящиеся с помощью API chrome.storage , в инструментах разработчика. Для получения дополнительной информации см. новую страницу «Просмотр и редактирование хранилища расширений» в документации инструментов разработчика.

Запись в блоге: Новое меню расширений

Опубликовано на

На конференции Google I/O 2024 мы представили предварительные эскизы будущих изменений в меню расширений, которые предоставят пользователям больше контроля над сайтами, к которым расширения могут получать доступ. Вскоре мы начнем тестирование этих изменений, сначала на небольшой части пользователей в версии Canary, и надеемся в будущем распространить их на более широкую аудиторию.

Мы также представляем API chrome.permissions.addHostAccessRequest() .

Подробнее читайте в нашей статье в блоге .

Chrome 132: Новое свойство «заморожено» в API вкладок.

Опубликовано на

Начиная с Chrome версии 132, свойство frozen в Tabs API указывает, была ли вкладка заблокирована браузером. Сообщения, отправленные заблокированным вкладкам, будут поставлены в очередь и обработаны после разблокировки вкладки.

API подсказок в расширениях Chrome

Опубликовано на

API Prompt для расширений теперь доступен в пробной версии, так что вы можете создавать расширения Chrome, использующие Gemini Nano, нашу наиболее эффективную языковую модель, прямо в браузере.

Присоединяйтесь к пробной версии Prompt API, работающей в Chrome с 131 по 136, и поделитесь своим мнением. Ваши отзывы могут напрямую повлиять на то, как мы будем разрабатывать и внедрять будущие версии этого API, а также всех встроенных API для искусственного интеллекта.

Запись в блоге: Что происходит с расширениями Chrome в октябре 2024 года

Опубликовано на

Пришло время подвести итоги событий в мире расширений Chrome: у нас есть интересные обновления по интеграции ИИ, новые API, события и видеоролики. Читайте обо всем этом в октябрьском выпуске «Что происходит в мире расширений Chrome» !

Примите участие в конкурсе Built-in AI Challenge

Опубликовано на

Chrome запустил конкурс Built-in AI Challenge: вам предлагается создать инновационные веб-приложения и расширения Chrome, используя встроенные модели искусственного интеллекта и API Chrome , и получить шанс выиграть призы на общую сумму 65 000 долларов США.

Зарегистрируйтесь и получите дополнительную информацию на сайте Built-in AI Challenge . Мы с нетерпением ждём, что вы создадите, внедрив искусственный интеллект в веб-технологии!

Chrome 130: action.onUserSettingsChanged

Опубликовано на

Начиная с Chrome 130, стало доступно событие action.onUserSettingsChanged . Это стало возможным благодаря предложению, выдвинутому в группе WebExtensions Community Group. Благодарим Microsoft за вклад в Chromium.

Chrome 130: StorageArea.getKeys()

Опубликовано на

Начиная с Chrome 130, метод getKeys() доступен в интерфейсе StorageArea, используемом API chrome.storage . Это стало возможным благодаря предложению, выдвинутому в сообществе WebExtensions.

Chrome 128: Сопоставление заголовков ответа в запросе Declarative Net.

Опубликовано на

Начиная с Chrome 128, мы добавляем поддержку сопоставления заголовков ответа в API запросов Declarative Net. Это был распространенный запрос, особенно касающийся сопоставления заголовка Content-Type, и мы разработали подходящий API совместно с группой сообщества WebExtensions.

Мы обновили справочник API, добавив новые поля responseHeaders и excludedResponseHeaders . Вы можете использовать их для проверки наличия и значения заданного заголовка.

В рамках этого обновления мы добавили в нашу документацию новый раздел , посвященный оценке правил , в котором объясняется, как происходит сопоставление правил. В частности, для сопоставления заголовков правила могут выполняться только после получения заголовков ответа, поэтому они применяются на более позднем этапе, чем другие правила. Это означает, что запрос достигает сервера до того, как будет заблокирован или перенаправлен.

Видео: Что такое сценарии контента?

Опубликовано на

Узнайте о скриптах контента в расширениях Chrome, в том числе о том, как зарегистрировать CSS и JavaScript для выполнения на определенной странице. Посмотрите полное видео .

Важные обновления политики

Опубликовано на

Команда Chrome Web Store опубликовала ряд обновлений на странице «Политика программы для разработчиков» , призванных стимулировать разработку высококачественных продуктов, предотвращать обманные действия и обеспечивать информированное согласие пользователей. Ребекка Соарес, менеджер по политике Chrome Web Store, обобщила все обновления в статье блога «Расширения Chrome: Важные обновления политики» .

Запись в блоге: Что происходит с расширениями Chrome, июль 2024 г.

Опубликовано на

За последние три месяца мы выпустили несколько важных обновлений и новых функций, включая начало поэтапного вывода из эксплуатации Manifest V2. Узнайте все самое интересное в июльском выпуске «Что происходит в расширениях Chrome» !

Видео: Что такое удаленно размещенный код?

Опубликовано на

Патрик из команды разработчиков расширений Chrome объясняет концепцию удаленно размещенного кода (RHC) в расширениях Chrome. Узнайте, почему RHC больше не разрешен, как его обнаружить и что делать, если ваше расширение нуждается в обновлении. Посмотрите полное видео .

Chrome 127: Новый API action.openPopup

Опубликовано на

Начиная с Chrome версии 127, API action.openPopup доступен для всех расширений. Ранее он был доступен только в версии Canary или для расширений, установленных с помощью политики.

Видео: Интервью с командой по вопросам доверия и безопасности.

Опубликовано на

Команда разработчиков расширений Chrome побеседовала с командой по вопросам доверия и безопасности, которая занимается проверкой расширений в Chrome Web Store, чтобы задать вам вопросы. Посмотрите полное видео .

Сообщение в блоге: Начался поэтапный вывод из эксплуатации Manifest V2.

Опубликовано на

Начиная с 3 июня в каналах Chrome Beta, Dev и Canary, у пользователей, у которых всё ещё установлены расширения Manifest V2, при посещении страницы управления расширениями — chrome://extensions — появится предупреждение о том, что поддержка некоторых установленных расширений (Manifest V2) вскоре прекратится. Подробнее читайте в официальном объявлении.

Обновления пользовательского интерфейса боковой панели.

Опубликовано на

Недавно мы внесли некоторые изменения в пользовательский интерфейс боковой панели, в том числе добавили значок булавки и удалили глобальный значок боковой панели. Подробнее читайте в сообщении об обновлении (PSA) , а также ознакомьтесь с обновленной документацией и примерами .

Запись в блоге: Расширения Chrome на Google I/O 2024

Опубликовано на

Очередная конференция Google I/O позади, и мы рассказали обо всех интересных обновлениях расширений! Заходите на YouTube, чтобы посмотреть полное видео , и читайте нашу статью в блоге, где собраны основные моменты.

Пропустить проверку для допустимых изменений в запросах декларативной сети.

Опубликовано на

В Chrome Web Store теперь можно пропускать проверку допустимых изменений при использовании API Declarative Net Request. Подробнее о допустимых изменениях и способах их включения можно узнать в документации Chrome Web Store .

Параметр deployPercentage доступен в API Chrome Web Store.

Опубликовано на

Мы недавно обновили документацию по API Chrome Web Store, добавив информацию о deployPercentage , который позволяет назначать процент частичного развертывания. Узнайте больше о deployPercentage .

Chrome 126: Тестирование расширений Origin

Опубликовано на

В Chrome 126 появилось новое поле в файле manifest.json — trial_tokens , позволяющее подключаться к пробным версиям Origin и Deprecation Trials для всех расширений. Подробнее см. в руководстве .

Запись в блоге: Что нового в расширениях Chrome — апрель 2024 года

Опубликовано на

Мы опубликовали новый выпуск рубрики «Что происходит в расширениях Chrome» . В статье рассказывается о том, над чем работала команда разработчиков расширений в течение последних нескольких месяцев. Это включает в себя: откат версий в Chrome Web Store, улучшенную поддержку аутентификации Firebase, а также запуск и обновление новых API.

Откат версий в панели разработчика Chrome Web Store

Опубликовано на

Откатите расширение до предыдущей версии, опубликованной в Chrome Web Store, — без дополнительной проверки! Подробнее читайте в блоге и документации .

Chrome 124: Расширенный API documentScan

Опубликовано на

В ChromeOS теперь доступен расширенный API documentScan для обнаружения и извлечения изображений с подключенных сканеров документов.

Chrome 124: Поддержка WebGPU в Service Workers

Опубликовано на

Начиная с Chrome версии 124, сервис-воркеры поддерживают WebGPU . Для быстрого начала ознакомьтесь с примером расширения WebGPU .

Chrome 123: API событий поддерживает фильтрацию по блокам CIDR.

Опубликовано на

API событий теперь поддерживает фильтрацию по блокам бесклассовой междоменной маршрутизации (CIDR). Блок CIDR — это набор IP-адресов, имеющих общий сетевой префикс и одинаковое количество битов. Ранее разработчику, которому нужно было фильтровать несколько IP-адресов, приходилось настраивать правило фильтрации для каждого адреса в диапазоне блока. Теперь, когда расширение вызывает addListener() , переданное правило означает, что обработчик событий будет вызываться только тогда, когда часть URL-адреса, содержащая хост, является IP-адресом и содержится в любом из блоков CIDR, указанных в массиве.

Chrome Web Store: Обновления требований к длине имени расширения.

Опубликовано на

В Chrome Web Store теперь действует универсальное ограничение в 75 символов для поля "name" в файле manifest.json расширения. Ранее для английского языка ограничение составляло 45 символов, а для других языковых версий ограничений для поля "name" не было.

Изначально это было задумано для учета культурных и языковых различий, которые невозможно передать одним и тем же количеством символов. К сожалению, эта функция была использована некоторыми разработчиками для рассылки спама в магазине. В результате мы вводим новый универсальный лимит — увеличение до 75 символов. Этот лимит распространяется почти на все расширения в магазине, поэтому, скорее всего, от вас не потребуется никаких действий в связи с этим изменением. Если вы попытаетесь загрузить расширение с названием длиннее максимального лимита, загрузка будет заблокирована магазином.

Запись в блоге: Путь eyeo к тестированию приостановки работы сотрудников сферы услуг

Опубликовано на

В этой статье от команды разработчиков Extension Engine компании eyeo мы рассмотрим проблему тестирования сервисных воркеров расширений. В Manifest V2 расширения работали на фоновой странице, которая оставалась активной на протяжении всего жизненного цикла расширения. В Manifest V3 вместо этого используются сервисные воркеры, которые, по своей сути, экономят ресурсы, отключаясь, когда они не нужны. Это создает определенные проблемы при тестировании. В этой статье объясняется, как eyeo решила эти проблемы .

Chrome 123: Теперь будильники срабатывают, когда устройство находится в спящем режиме.

Опубликовано на

Будильники, установленные с помощью API chrome.alarms , больше не срабатывают с задержкой, когда устройство переходит в спящий режим. Когда устройство просыпается, будильник срабатывает один раз, независимо от того, сколько будильников было пропущено. Например, предположим, что будильник установлен на срабатывание раз в час, и устройство, на котором он установлен, находится в спящем режиме с 00:55 до 02:05. Тогда событие onAlarm сработает только в 02:00. Оно сработает как можно ближе к 02:00 и немедленно, как только устройство просыпается, если оно находилось в спящем режиме.

Это изменение приводит Chrome в соответствие с согласованным поведением в группе сообщества веб-расширений.

Запись в блоге: Изменения в поведении bfcache при работе с портами сообщений расширений

Опубликовано на

Кэширование "назад/вперед" (bfcache) — это оптимизация браузера, позволяющая мгновенно переходить по ссылкам "назад" и "вперед". Начиная с Chrome 123, когда страница с открытым портом расширения сохраняется в bfcache, канал сообщений закрывается, то есть сообщения на эту страницу отправляться не будут. Следовательно, скрипты расширений должны отслеживать события жизненного цикла, такие как onDisconnect , и устанавливать новое соединение при восстановлении страницы из bfcache.

Для получения дополнительной информации и примеров кода см. раздел «Изменения в поведении BFCache при работе с портами сообщений расширений» .

Chrome 122: Поддержка промисов в асинхронных API расширений

Опубликовано на

Мы завершили реализацию поддержки Promise для всех асинхронных методов API расширений. Это было сделано для модернизации методов API путем улучшения эргономики работы с асинхронными операциями. Несколько методов (например, desktopCapture.chooseDesktopMedia() ) по-прежнему поддерживают только коллбэки, поскольку их текущие интерфейсы несовместимы с Promise. Для обеспечения обратной совместимости поддержка коллбэков сохраняется. Если вы обнаружите Promise, который не работает, пожалуйста, сообщите об ошибке .

Новые рекомендации по коммуникации в режиме реального времени

Опубликовано на

Мы только что опубликовали руководства по использованию функций обновления в реальном времени в расширениях. Обновления в реальном времени обеспечивают мгновенный канал связи между вашими серверами и установленными расширениями. Кроме того, у нас есть новые рекомендации по использованию chrome.gcm и Web Push .

Новые рекомендации и примеры: увольнение сотрудника службы тестирования.

Опубликовано на

Мы только что опубликовали руководство по тестированию завершения работы сервис-воркера с помощью Puppeteer . Прилагаемый пример демонстрирует это в Puppeteer и Selenium.

Обновленный пример для нативной системы обмена сообщениями.

Опубликовано на

Мы только что опубликовали обновленный пример для нативной системы обмена сообщениями. Этот API позволяет вашему расширению запускаться и взаимодействовать с другим приложением. Благодарим участника GitHub Шубхама-Расала за проделанную работу.

Chrome 121: Новое свойство lastAccessed для tabs.Tab

Опубликовано на

В объект tabs.Tab добавлено новое свойство с именем lastAccessed . Это свойство указывает, когда вкладка была активирована в последний раз. Возвращаемое значение — в миллисекундах с начала эпохи.

Chrome 121: Неподдерживаемые «фоновые» клавиши теперь выдают предупреждение.

Опубликовано на

При переходе от Manifest V2 к Manifest V3 были внесены изменения в дочерние элементы ключа манифеста "background" , чтобы обеспечить замену фоновых скриптов на рабочие процессы служб расширений. Ранее добавление ключей Manifest V2 "scripts" , "page" или "persistent" к ключу "background" расширения Manifest V3 приводило к ошибке. Теперь наличие этих ключей вызывает предупреждение.

Это делается для того, чтобы обеспечить возможность использования одного файла манифеста в расширениях в нескольких браузерах, согласно предложению, выдвинутому в группе сообщества .

Chrome 120: Минимальная точность установки параметров оповещения снижена до 30 секунд.

Опубликовано на

Начиная с Chrome 120, расширения Manifest V3 могут использовать API chrome.alarms с задержками или периодами в 30 секунд, вместо требований к значениям в 60 секунд и более.

Запись в блоге: Возобновление перехода на Manifest V3

Опубликовано на

Обновлен график поддержки Manifest V2. Подробности смотрите в нашем блоге за ноябрь 2023 года .

Запись в блоге: Улучшения в поддержке фильтрации контента в Manifest V3

Опубликовано на

Узнайте о том, как мы улучшили API declarativeNetRequest, в нашей новой статье в блоге .

Запись в блоге: Что нового в Chrome 120 для расширений

Опубликовано на

Недавно вышла бета-версия Chrome 120. Краткий обзор важных обновлений для разработчиков расширений можно найти в нашей новой статье в блоге: Что нового в Chrome 120 для расширений . Этот релиз также знаменует собой важную веху, поскольку он устраняет последние два элемента (userScripts, обработчик файлов в ChromeOS) из списка критических недостатков платформы .

Внимание: Внесены изменения в обработку URL-адресов политик конфиденциальности в панели разработчика.

Опубликовано на

В панели разработчика политики конфиденциальности теперь добавляются на уровне отдельных элементов. Это позволяет задавать разные политики конфиденциальности для каждого элемента. Подробнее об этом изменении читайте в нашем информационном сообщении .

Видео: Беседа с Мэттом Фрисби

Опубликовано на

Мы только что опубликовали новое видео на YouTube-канале Chrome for Developers, в котором беседуем с экспертом Google для разработчиков и автором Мэттом Фрисби. Посмотреть его можно здесь .

Новые рекомендации по тестированию расширений.

Опубликовано на

Мы только что опубликовали новые рекомендации по написанию автоматизированных тестов для расширений, включая инструкции по написанию модульных тестов , а также общие рекомендации и руководство по сквозному тестированию.

Запись в блоге: Что происходит с расширениями Chrome — октябрь 2023 г.

Опубликовано на

Мы только что опубликовали второе издание статьи «Что происходит в расширениях Chrome» . В статье рассказывается о том, над чем работала команда разработчиков расширений в течение последних нескольких месяцев, включая решение проблем со стабильностью сервис-воркеров и успешный прогресс в устранении всех недостатков платформы MV3. Мы также делимся информацией о предстоящих интересных релизах API, таких как API для списков чтения и API для пользовательских скриптов.

Увеличены лимиты статических наборов правил в API декларативных сетевых запросов.

Опубликовано на

На основе отзывов, полученных в группе сообщества Web Extensions, мы значительно увеличиваем лимит на количество включенных статических наборов правил с 10 до 50. Кроме того, мы увеличиваем общее количество разрешенных статических наборов правил с 50 до 100. Эта функция уже доступна в версии Canary.

Улучшены рекомендации по работе с удаленно размещенным кодом.

Опубликовано на

Одно из требований Manifest V3 заключается в том, что расширения больше не могут использовать удаленно размещенный код. Хотя это было частью нашего руководства по миграции с самого начала, мы посчитали целесообразным улучшить рекомендации по этому вопросу. Теперь на этой странице представлена ​​более подробная информация, описывающая, что по-прежнему возможно в Manifest V3, а также стратегии обновления.

В раздел «Устранение нарушений в Chrome Web Store» добавлено новое дополнение. В нём описаны распространённые причины отклонения расширений с удалённо размещённым кодом.

Chrome 118: параметр isUrlFilterCaseSensitive теперь по умолчанию имеет значение false.

Опубликовано на

Начиная с Chrome 118, свойство isUrlFilterCaseSensitive в API chrome.declarativeNetRequest изменено на значение по умолчанию — false . Если вы хотите сохранить старое поведение, вы можете явно установить isUrlFilterCaseSensitive в true в правилах declarativeNetRequest.

Это стало результатом обсуждений в группе сообщества веб-расширений. Firefox и Safari уже внедрили аналогичное изменение.

Документация по файлам cookie и API веб-хранилища

Опубликовано на

Мы опубликовали новое руководство о том , как работают файлы cookie и API веб-хранилища в расширениях Chrome . Оно включает в себя подробную информацию об изменениях в разделении файлов cookie и хранилища в Privacy Sandbox , текущем проекте по отказу от сторонних файлов cookie путем создания ряда новых API веб-платформы, а также подробности о том, как они работают в расширениях.

Образцы расширения теперь можно искать.

Опубликовано на

Недавно мы создали страницу, позволяющую искать примеры расширений Chrome . Страница поиска предлагает несколько вариантов. Поле поиска позволяет искать текст в заголовках примеров. Вы можете ограничить поиск по разрешениям или API расширения. Дополнительный фильтр позволяет ограничить поиск либо примерами API, либо функциональными примерами (вариантами использования).

Эта новая страница-пример была создана участником программы Google Summer of Code, Сюэчжоу Даем, который также предоставил несколько новых примеров. Вы можете прочитать о его опыте этим летом в его публикации в нашем блоге .

Как и прежде, наши примеры кода по-прежнему доступны на GitHub для клонирования или создания форков.

Chrome 118: Изменения в URL-адресах схемы открытия файла.

Опубликовано на

Начиная с Chrome 118, для открытия URL-адресов по схеме file:// с использованием API вкладок или Windows расширениям потребуется включить параметр "Разрешить доступ к URL-адресам файлов" на странице chrome://extensions . Вы можете проверить наличие этого доступа программно, вызвав метод chrome.extension.isAllowedFileSchemeAccess() . Firefox уже ограничивает доступ к URL-адресам файлов, а Safari поддерживает это изменение. Для получения дополнительной информации ознакомьтесь с сообщением в списке рассылки расширений Chrome .

Chrome 117: Расширена защита URL-адресов при навигации по API расширений.

Опубликовано на

Ранее навигация, запускаемая вызовами API расширений для tabs.update() , tabs.create() и windows.create() выдавала ошибку для некоторых URL-адресов chrome://. Кроме того, вызов tabs.update() с использованием URL-адреса JavaScript был запрещен. В версии 117 эти меры защиты для URL-адресов JavaScript были распространены на метод tabs.create() , и в список запрещенных URL-адресов, к которому применяются все упомянутые выше методы, был добавлен ряд дополнительных URL-адресов chrome://.

Улучшены рекомендации по использованию API declarativeNetRequest.

Опубликовано на

API chrome.declarativeNetRequest блокирует или изменяет сетевые запросы, указывая декларативные правила. Это позволяет расширениям изменять сетевые запросы, не перехватывая их и не просматривая их содержимое, тем самым обеспечивая большую конфиденциальность для пользователей. Однако его использование может быть непростым. Учитывая это, мы переписали руководство таким образом, чтобы оно, на наш взгляд, более четко объясняло, как реализовать декларативные наборы правил. Ознакомьтесь с новым разделом по ссылке выше.

Использование вашей учетной записи Google Analytics в Chrome Web Store

Опубликовано на

Chrome Web Store предлагает интеграцию с Google Analytics, что позволяет просматривать аналитику для вашего объявления в Chrome Web Store в дополнение к данным, доступным в панели разработчика. Для получения дополнительной информации ознакомьтесь с разделом «Использование вашей учетной записи Google Analytics с Chrome Web Store» .

Chrome 115: Инструменты разработчика по умолчанию пропускают скрипты контента.

Опубликовано на

Внедренные скрипты контента теперь по умолчанию находятся в списке игнорируемых скриптов в DevTools. Это не влияет на точки останова, но означает, что скрипты контента будут пропускаться во время отладки, а исключения от этих скриптов будут игнорироваться. Когда скрипт контента открыт на вкладке «Источники» , появляется всплывающее окно с предупреждением, если эта функция включена, и возможностью удалить скрипт контента из списка игнорируемых. Чтобы отключить это поведение, откройте DevTools, перейдите в «Настройки» , затем в «Список игнорируемых» . Для получения дополнительной информации см. «Что нового в DevTools» .

Chrome 116 бета: Здесь больше информации, чем мы можем уместить.

Опубликовано на

Chrome 116 — это крупное обновление для расширений. Теперь вы можете открывать боковые панели программно. Новый метод позволяет узнать, есть ли активный документ за пределами экрана. Сервис-воркеры получили ряд улучшений. В версии 116 достаточно улучшений, чтобы мы написали отдельную статью в блоге, посвященную им . Chrome 116 находится в бета-версии с 19 июля.

Запись в блоге: Что происходит с расширениями Chrome

Опубликовано на

Мы только что опубликовали обзор изменений и улучшений расширений за этот год. В статье обсуждаются основные новые функции этого года, включая API боковой панели, улучшения сервис-воркеров и работу с документами вне экрана. Вы также получите представление о том, над чем мы работаем в этом квартале. В статье перечислено гораздо больше информации со ссылками на все разделы.

Новые рекомендации и пример: узнайте, как использовать Google Analytics 4 в расширении для Chrome.

Опубликовано на

Мы опубликовали новые рекомендации и примеры использования Google Analytics и геолокации:

Chrome 115: Укажите несколько причин в методе chrome.offscreen.createDocument()

Опубликовано на

Теперь при вызове метода chrome.offscreen.createDocument() можно указывать несколько перечислений reason . Используйте это, если документ, находящийся вне экрана, будет использоваться для разных целей. Браузер использует предоставленные причины для определения времени жизни документа, находящегося вне экрана.

Новый инструмент: Инструмент тестирования обновлений расширений

Опубликовано на

Мы только что выпустили инструмент тестирования обновлений расширений — локальный сервер обновлений расширений, который можно использовать для тестирования обновлений расширений Chrome во время локальной разработки, включая предоставление разрешений. Инструмент показывает процесс обновления пользователем, включая отключение расширения до тех пор, пока пользователь не предоставит запрошенные разрешения. Этот инструмент особенно полезен для имитации изменений разрешений, запрашиваемых при обновлении расширения с Manifest V2 до Manifest V3.

Chrome 114: Новый API для боковой панели

Опубликовано на

Представляем новый API боковой панели — дополнительный интерфейс, позволяющий пользователям получать доступ к инструментам рядом с просматриваемым контентом. Подробнее можно узнать в справочнике по API боковой панели . Кроме того, мы добавили множество примеров боковых панелей в наш репозиторий примеров на GitHub . Более подробную информацию о боковых панелях вы найдете в новой статье блога «Разработка превосходного пользовательского опыта с помощью нового API боковой панели» . Мы также пересмотрели нашу политику качества и лучшие практики , чтобы предоставить дополнительные рекомендации по созданию высококачественных расширений для боковых панелей.

Ваши отзывы важны для разработки этого API; пожалуйста, делитесь своими мыслями и пожеланиями по функциям в группах chromium-groups . Следите за обновлениями, поскольку мы продолжаем улучшать API боковой панели.

Новые примеры: WASM в расширениях

Опубликовано на

Доступны два новых примера, демонстрирующих использование WASM в расширении:

Особая благодарность участнику GitHub @daidr за предоставленные примеры.

Обновленные рекомендации по миграции Manifest V3

Опубликовано на

Мы обновили раздел «Известные проблемы» в руководстве по миграции на Manifest V3, добавив обновленный список пробелов в функциональности расширений, которые мы планируем устранить до объявления новых сроков прекращения поддержки Manifest V2.

Запись аудио и видео с помощью Manifest V3

Опубликовано на

Мы только что опубликовали новую статью под названием «Запись звука и захват экрана» , в которой рассматривается запись звука или видео с вкладки, окна или экрана в Manifest V3. В этой статье описаны несколько подходов к записи с использованием API chrome.tabCapture и функции getDisplayMedia() .

Chrome 114: Увеличен объем хранилища.local quota

Опубликовано на

Мы увеличили квоту для свойства storage.local примерно до 10 МБ. Это было согласовано в группе сообщества веб-расширений . Таким образом, storage.local соответствует storage.session , которое было изменено в Chrome 112.

Руководство и помощь по созданию нового сервисного работника расширения

Опубликовано на

Сервис-воркеры являются неотъемлемой частью расширений Chrome. Мы только что опубликовали руководство , объясняющее основы регистрации, отладки и взаимодействия с сервис-воркерами. Мы также добавили новое руководство по сервис-воркерам, в котором более подробно объясняются важные понятия. В ближайшие месяцы мы будем расширять этот раздел.

Дополнительные советы по устранению неполадок, связанных с нарушениями в работе интернет-магазина.

Опубликовано на

Для облегчения публикации расширений в Chrome Web Store мы добавили новые рекомендации в двух разделах. Рекомендации по минимальной функциональности сосредоточены на предоставлении пользователям преимуществ и улучшении их опыта работы в браузере. Рекомендации по партнерской рекламе касаются информирования пользователей о расширениях, использующих партнерские ссылки или коды для монетизации, и предоставления им определенного контроля путем требования от пользователя совершения определенных действий перед включением.

Новые инструкции для конвертера манифестов расширений.

Опубликовано на

Мы переписали файл README для конвертера манифестов расширений , чтобы вам было проще понять, что нужно сделать после запуска инструмента. Конвертер помогает мигрировать расширения, созданные на основе Manifest V2, на Manifest V3. Новый файл README описывает работу инструмента, используя слова, максимально приближенные к контрольному списку руководства по миграции . Конвертер не делает всего, но он исключает многие задачи, не требующие участия человека.

Chrome 113: Новые причины для отображения документов вне экрана.

Опубликовано на

В API Offscreen Documents добавлены два новых типа причин . Используйте LOCAL_STORAGE для доступа к API localStorage веб-платформы. Используйте WORKER при создании веб-воркеров.

Google Analytics 4 теперь доступен в панели разработчика.

Опубликовано на

Панель разработчика Chrome Web Store теперь поддерживает Google Analytics 4 (GA4). Мы упростили настройку Google Analytics и сделали управление доступом для групповых издателей более понятным. Если вы ранее использовали Google Universal Analytics для отслеживания активности вашего магазина, вам необходимо принять меры до 1 июля 2023 года, чтобы обеспечить продолжение получения данных о вашем магазине. Для получения дополнительной информации см. сообщение в списке рассылки расширений Chrome .

API для работы с файлами теперь доступен в ChromeOS.

Опубликовано на

API обработки файлов доступен для экспериментов в ChromeOS в версии Canary для версий 112 и 113. Он позволяет расширениям в ChromeOS открывать файлы с указанными MIME-типами и расширениями. Для реализации обработки файлов добавьте набор правил в файл manifest.json . Эта функция работает так же, как и для прогрессивных веб-приложений. Для получения дополнительной информации см. статью на этом сайте.

Для включения обработки файлов:

  • Начиная с версии 112, запускайте Chrome, используя флаг --enable-features=ExtensionWebFileHandlers .
  • Начиная с версии 113, вставьте os://flags/#extension-web-file-handlers в адресную строку Chrome и выберите «Включено» в выпадающем меню.

Мы надеемся запустить эту функцию в Chrome 115 в конце июня. Следите за обновлениями.

Новые примеры: динамические объявления и программное внедрение.

Опубликовано на

Мы создали новый пример для API chrome.scripting . Он демонстрирует динамические объявления, когда скрипт содержимого регистрируется во время выполнения, и программное внедрение, когда скрипт выполняется во вкладке, которая уже открыта.

Новые примеры: варианты использования декларативных сетевых запросов.

Опубликовано на

Доступны три новых примера, демонстрирующих API декларативных сетевых запросов . Каждый из них демонстрирует реализацию одного конкретного случая использования. Первый показывает, как блокировать файлы cookie. Два оставшихся демонстрируют блокировку и перенаправление URL-адресов.

Chrome 112: Увеличена квота storage.session

Опубликовано на

Начиная с Chrome 112, квота для свойства storage.session увеличена примерно до 10 МБ. Это было согласовано в группе сообщества веб-расширений: https://github.com/w3c/webextensions/issues/350

Chrome 109: Документы, находящиеся за пределами видимой области экрана

Опубликовано на

В расширениях Manifest V3 теперь доступны документы, отображаемые вне экрана. Они помогают перейти от фоновых страниц к сервисным работникам расширений, обеспечивая поддержку функций и API, связанных с DOM. Для получения дополнительной информации прочитайте статью в блоге .

Chrome 110: Включено ли расширение?

Опубликовано на

Метод chrome.action.isEnabled() программно проверяет, включено ли расширение для конкретной вкладки. Это избавляет вас от необходимости постоянно отслеживать состояние включенных вкладок. Этот новый метод принимает идентификатор вкладки и ссылку на функцию обратного вызова и возвращает логическое значение. У него есть одно ограничение: вкладки, созданные с помощью chrome.declarativeContent всегда возвращают false.

(The chrome.action namespace recently got new methods for controlling the appearance of extension badges. For more information, see Setting badge colors .)

Chrome 110: Change in service worker idle timeout

Опубликовано на

Previously, an extension service worker would frequently shut down at the five minute mark. We've changed this behavior to more closely resemble service worker lifetime's on the web. An extension service worker will be shut down after either thirty seconds of inactivity or if a single activity takes longer than 5 minutes to process. For more information, see Longer extension service worker lifetimes .

Post: Pausing Manifest V2 phase-out

Опубликовано на

The Manifest V2 deprecation timelines are under review and the experiments scheduled for early 2023 are being postponed. For more information, read the update in the Chrome Extensions Mailing List.

Chrome 110: Setting badge colors

Опубликовано на

The chrome.action namespace has two new methods to give you more control over the appearance extension badges. The setBadgeTextColor() and getBadgeTextColor() methods allow an extension to change and query its toolbar icon's badge text color. When used with setBadgeBackgroundColor and getBadgeBackgroundColor these new methods let you enforce design and brand consistency.

Blog post: More details on the transition to Manifest V3

Опубликовано на

We have clarified the Manifest V2 deprecation timeline . The Manifest V2 support timeline has also been updated to reflect this information.

Docs update: Known issues when migrating to Manifest V3

Опубликовано на

We've put together a list of major features currently in development and open bugs . Our goal with this page is to help developers better understand the current state of the platform and what features they can target as they prepare for the future.

Chrome Web Store: "large promo tile" image upload removed

Опубликовано на

Chrome Web Store has removed the "large promo tile" upload UI from the item Store Listing tab in the developer dashboard. This change does not affect the end user experience as these images were not used in the consumer UI. See this chromium-extensions post for additional details.

Chrome 106: Allow pages on file:// urls to access web accessible resources

Опубликовано на

Opaque origins such as sandboxed iframes and dynamic import should also be able to access web accessible resources, according to crbug.com/1219825#c11 .

Chrome 106: Fixed bug allowing incorrect final arguments on some async API functions

Опубликовано на

Previously, Manifest V3 calling async APIs could provide an invalid final argument and Chrome would not error. With this fix Chrome will now correctly error and report that there was no matching signature. Developers are encouraged to check their extensions on Canary for any errors in case they accidentally using incorrect signature for an API call that will be broken by this bug fix.

Blog post: Chrome Web Store analytics revamp

Опубликовано на

Chrome Web Store has a revamped item analytics experience for the Chrome Web Store Developer Dashboard. The new dashboard is easier to understand at a glance and consolidates the most useful information up front. Read the blog post for more information.

Chrome 105: promises for the Identity API

Опубликовано на

Functions on the Identity API now support promise based calls. This comes with a slight change to the surface for identity.getAuthToken() , where the asynchronous return set to a promise based call will have "token" and "grantedScopes" as parameters on a single object (as opposed to the callback version receiving them as separate arguments to the callback).

Chrome 104: New favicons API for Manifest V3

Опубликовано на

Manifest V3 extensions can now access favicons using a new URL pattern: chrome-extension://<id>/_favicon/ , where is the ID of your extension. This replaces the Manifest V2 platform's chrome://favicons API. See the Favicon API docs for more information.

Docs update: Developer trader/non-trader disclosure

Опубликовано на

Added the trader/non-trader developer identification that informs developers to accurately self-declare their trader/non-trader status.

Chrome 103: Wasm in Manifest V3 requires wasm-unsafe-eval

Опубликовано на

Chrome no longer grants extensions script-src: wasm-unsafe-eval by default. Extensions that use WebAssembly must now explicitly add this directive and value to extension_pages in their content_security_policy declarations.

Chrome 103: Changing MV3 shortcuts take effect immediately

Опубликовано на

When changing a Manifest V3 extension's keyboard shortcut on chrome://extensions/shortcuts , updates are now applied immediately. Previously the extension would have to be reloaded before the change would take effect.

Chrome 102: Dynamic content scripts in main world

Опубликовано на

Dynamically registered content scripts can now specify the world that assets will be injected into. See scripting.registerContentScripts() for details.

Chrome 102: New manifest field "optional_host_permissions"

Опубликовано на

Manifest V3 extensions can now specify the optional_host_permissions key in manifest.json. This allows Manifest V3 extensions to declare optional match patterns for hosts just as Manifest V2 extensions could using the optional_permissions key.

Chrome 102: свойство injectImmediately в методе scripting.executeScript()

Опубликовано на

chrome.scripting.executeScript() now accepts an optional injectImmediately property on it's injection argument. If present and set to true, the script will inject into the target as soon as possible, rather than waiting for document_idle . Note that this is not a guarantee the script will inject before the page is loaded since the page continues to load while the API call is being made.

Chrome 102: Omnibox API support in Manifest V3

Опубликовано на

The Omnibox API can now be used in service worker-based extensions. Previously, some of this API's methods would throw on invocation due to internal dependencies on DOM capabilities.

Chrome 102: wasm-unsafe-eval разрешен в Manifest V3 CSP

Опубликовано на

Manifest V3 extensions can now include wasm-unsafe-eval in their content_security_policy declarations. This change allows Manifest V3 extensions to use WebAssembly.

Chrome 102: Новый API storage.session

Опубликовано на

Manifest V3 extensions can now use in memory storage storage.session .

Обновление документации: обнаружение товаров в Chrome Web Store.

Опубликовано на

Discovery on Chrome Web Store gives an overview of how users find items on the Chrome Web Store and how our editors select items to feature.

Chrome 101: Улучшены условия домена declarativeNetRequest.

Опубликовано на

declarativeNetRequest rule conditions have been updated to allow extensions to better target requests based on the request's "request" and "initiator" domains. The relevant condition properties are initiatorDomains , excludedInitiatorDomains , requestDomains , and excludedRequestDomains . See also this chromium-extensions thread .

Chrome 100: Исправлена ​​проблема с вызовом scripting.executeScript() на новых вкладках.

Fixed a longstanding issue where calling scripting.executeScript() on a newly created tab or window could fail.

Chrome 100: собственный порт для обмена сообщениями поддерживает работу сервис-воркера.

Опубликовано на

Connecting to a native messaging host using chrome.runtime.connectNative() in an extension's service worker should keep the service worker alive as long as the port is open.

Chrome 100: omnibox.setDefaultSuggestion() поддерживает промисы и коллбэки.

Опубликовано на

The omnibox.setDefaultSuggestion() method now returns a promise or accepts a callback to allow developers to determine when the suggestion has been properly set.

Chrome 100: поддержка i18n.getMessage() в рабочих процессах служб расширений

Опубликовано на

The chrome.i18n.getMessage() API is now supported in extension service worker contexts.

Chrome 99: match_origin_as_fallback в Canary

Опубликовано на

Content scripts can now specify the match_origin_as_fallback key to inject into frames that are related to a matching frame, including frames with about: , data: , blob: , and filesystem: URLs. See the content scripts documentation for details.

Chrome 99: поддержка рабочих процессов расширений для схем file: в Canary.

Опубликовано на

Service worker-based Manifest V2 and Manifest V3 extensions can now use the Fetch API to request file: -scheme URLs. Access to file: -scheme URLs still requires that the user enable 'Allow access to File URLs' for the extension in the chrome://extensions page.

Chrome 99: обещана поддержка API обмена сообщениями в Canary.

Опубликовано на

Promise support has been added to tabs.sendMessage , runtime.sendMessage , and runtime.sendNativeMessage for extensions built for Manifest V3.

Обновление документации: Документация по проверке в Chrome Web Store

Опубликовано на

Added a new reference page that provides an overview of the Chrome Web Store review process and explains how developer program policy enforcement is handled.

Chrome 98: методы scripting.executeScript() и scripting.insertCSS() принимают несколько файлов.

Опубликовано на

The Scripting API's executeScript() and insertCSS() methods now accept multiple files. Previously these methods required an array with a single file entry.

Обновление документации: обновления по устранению неполадок, связанных с нарушениями при проверке.

Опубликовано на

The Troubleshooting Chrome Web Store violations page has been updated to provide developers with more detailed guidance for common reasons for rejection.

Chrome 96: расширена поддержка промисов еще для 27 API.

Опубликовано на

This release contains significantly more promise updates than any previous release. Updates include both general and ChromeOS-specific extensions APIs. Expand the following sections for details.

Extensions APIs

A number of APIs now support promises in Manifest V3.

Also, APIs that use the ChromeSetting prototype now also support promises. The following APIs are affected by this change.

ChromeOS APIs

Chrome 96: скрипты динамического контента

Опубликовано на

The chrome.scripting API now supports registering , updating , unregistering , and getting a list of content scripts at runtime. Previously, content scripts could only be statically declared in an extension's manifest.json or programmatically injected at runtime with chrome.scripting.executeScript() .

Обновление документации: сроки поддержки Manifest V2.

Опубликовано на

The Manifest V2 to V3 transition timeline was announced in this blog post and a more detailed timeline page was published.

Chrome 96: разрешение declarativeNetRequestWithHostAccess

Опубликовано на

The new declarativeNetRequestWithHostAccess permission allows extensions to use the chrome.declarativeNetRequest API on sites the extension has host permissions for. This also enables existing Manifest V2 extensions that use webRequest , webRequestBlocking , and site-specific host permission to migrate to the chrome.declarativeNetRequest API without requiring the user to approve new permissions.

Chrome 95: внедрение скриптов непосредственно в страницы.

Опубликовано на

The chrome.scripting API's executeScript() method can now inject scripts directly into a page's main world. Previously, extensions could only inject directly into the extension's isolated world. For more information on isolated worlds, see the documentation on content scripts .

Chrome 95: обещана поддержка API хранилища.

Опубликовано на

Methods on the Manifest V3 version of the chrome.storage API now return promises.

Обновление политики: внедрение двухфакторной аутентификации.

Опубликовано на

The policy update blog post published on June 29, 2021 has been updated to correct the two step verification deployment timeline.

Chrome 94: изменения в статическом наборе правил декларативных сетевых запросов

Опубликовано на

The chrome.declarativeNetRequest now supports specifying up to 50 static rulesets ( MAX_NUMBER_OF_STATIC_RULESETS ) and enabling up to 10 rulesets ( MAX_NUMBER_OF_ENABLED_STATIC_RULESETS ) at a time.

Chrome 93: поддержка изоляции между источниками

Опубликовано на

Both Manifest V2 and Manifest V3 extensions can now opt into cross origin isolation . This feature limits which cross-origin resources can load an extension's pages and enables the use of low level web platform features like SharedArrayBuffer . Opt in will be required starting in Chrome 95.

Обновление политики: обновлены правила программы для разработчиков.

Опубликовано на

The Chrome Web Store Developer Program Policies have been updated with clarifications to the deceptive installation tactics, spam, and repetitive content policies. This update also includes a new two step verification requirement to publish on the Chrome Web Store. Read the blog post for more information.

Запись в блоге: действия расширения в Manifest V3

Опубликовано на

Chrome extensions had chrome.browserAction and chrome.pageActions APIs for years, but Manifest V3 replaced both with a generic chrome.actions API. This post explores the history of these APIs and what has changed in Manifest V3. Read the post .

Статья в блоге: знакомство с chrome.scripting

Опубликовано на

The chrome.scripting API is a new Manifest V3 API focused on, well, scripting. In this post we dig into the motivations for this change and take a closer look at it's new capabilities. Read the post .

Chrome 92: поддержка модульных сервисных рабочих процессов

Опубликовано на

Chrome now supports JavaScript modules in service workers. To specify a module a module in your manifest:

"background": {
  "service_worker": "script.js",
  "type": "module"
}

This loads the worker script as an ES module, which lets you use the import keyword in the worker's script to import other modules.

Chrome 91: chrome.action.getUserSettings()

Опубликовано на

The new chrome.action.getUserSettings() method allows extensions to determine if the user has pinned the extension to the main toolbar.

Chrome 90: chrome.scripting.removeCSS()

Опубликовано на

The new chrome.scripting.removeCSS() method allows extensions to remove CSS that was previously inserted via chrome.scripting.insertCSS() . It replaces chrome.tabs.removeCSS() .

Chrome 90: возврат промисов из scripting.executeScript()

Опубликовано на

chrome.scripting.executeScript() now supports returning promises. If the resulting value of the script execution is a promise, Chrome will wait for the promise to settle and return its resulting value.

Chrome 90: результаты chrome.scripting.executeScript() включают frameId

Опубликовано на

Results returned from chrome.scripting.executeScript() now include the frameId . The frameId property indicates the frame that the result is from, letting extensions easily associate results with the individual frames when injecting in multiple frames.

Chrome 89: новый API для управления группами вкладок

Опубликовано на

The new chrome.tabGroups API and new capabilities in chrome.tabs let extensions read and manipulate tab groups. Requires Manifest V3.

Chrome 89: настраиваемые разрешения для веб-ресурсов.

Опубликовано на

Web accessible resources definitions in Manifest V3 have changed to let extensions restrict resource access based on the requester's origin or extension ID.

Blog post: Extension Manifest Converter

Опубликовано на

The Chrome Extensions team has open sourced "Extension Manifest Converter", a Python tool that automates some of the mechanical aspects of converting extensions to Manifest V3. See the announcement blog post and get it from GitHub .

Chrome 88: Manifest V3 general availability

Опубликовано на

Manifest V3 is a major update to the extensions platform; see Overview of Manifest V3 for a summary of new and changed features. Extensions may continue to use Manifest V2 for now, but this will be phased out in the near future. We strongly recommend that you use Manifest V3 for any new extensions, and begin migrating existing extensions to Manifest V3 as soon as possible.