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

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

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

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

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

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

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

Начиная с Chrome 140, используйте новый API sidePanel.getLayout() , чтобы определить, расположена ли боковая панель слева или справа на экране. Это особенно полезно, если вы поддерживаете языки с написанием справа налево, для которых настройки по умолчанию в новых установках 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. Узнайте всё самое важное в статье «Что происходит в расширениях Chrome» за июнь 2025 года !

Видео: «Бей крота» в браузере — возможно ли это!?

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

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

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

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

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

Видео: Расширения — это здорово!

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

Узнайте, как приступить к разработке расширений в выпуске Extensions are Neat, эпизод 1 , и насколько гибка настройка Chrome в выпуске 2 !

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

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

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

Chrome 132: просмотр и редактирование хранилища расширений в DevTools

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

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

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

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

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

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

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

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

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

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

API Prompt в расширениях Chrome

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

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

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

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

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

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

Присоединяйтесь к испытанию встроенного ИИ

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

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

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

Chrome 130: action.onUserSettingsChanged

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

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

Chrome 130: StorageArea.getKeys()

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

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

Chrome 128: Сопоставление заголовков ответа в декларативном сетевом запросе

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

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

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

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

Видео: Что такое контент-скрипты?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Видео: интервью с командой Trust & Safety

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

Команда разработчиков расширений Chrome DevRel встретилась с командой Trust & Safety, которая проводит обзоры в интернет-магазине Chrome, чтобы задать вам вопросы. Посмотрите полное видео .

Запись в блоге: Начинается поэтапный отказ от Manifest V2

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

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

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

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

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

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

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

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

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

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

Интернет-магазин Chrome теперь позволяет пропускать проверку для соответствующих изменений при использовании API Declarative Net Request. Подробнее о требованиях и порядке участия читайте в документации Интернет-магазина Chrome .

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, улучшенной поддержке аутентификации Firebase, а также о новых запусках и обновлениях API.

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

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

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

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

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

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

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

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

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

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

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

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

Интернет-магазин Chrome: обновления требований к длине имени расширения

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

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

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

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

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

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

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

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

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

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

Запись в блоге: Изменения в поведении 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 для вкладок.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) из списка критических недостатков платформы .

PSA: Изменение в обработке URL-адресов политики конфиденциальности в панели разработчика

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

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

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

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

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

Новое руководство по тестированию расширений

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

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

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

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

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

Увеличены ограничения на статический набор правил в API декларативного сетевого запроса

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

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

Улучшенное руководство по удаленно размещенному коду

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

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

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

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

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

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

Это произошло после обсуждений в группе сообщества Web Extensions. 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 Extensions .

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 предлагает интеграцию с Google Analytics, что позволяет просматривать аналитику по вашему продукту в Интернет-магазине Chrome в дополнение к представлению, предлагаемому в панели разработчика. Подробнее см. в статье «Использование аккаунта Google Analytics с Интернет-магазином Chrome» .

Chrome 115: DevTools по умолчанию обходит скрипты контента

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

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

Chrome 116 beta: больше, чем мы можем здесь вместить

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Chrome 114: увеличена квота локального хранилища

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

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

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

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

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

Дополнительные советы по устранению нарушений в интернет-магазине

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

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

Новые инструкции для Extension Manifest Converter

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

Мы переписали файл README для Extension Manifest Converter , чтобы упростить понимание необходимых действий после запуска инструмента. Конвертер помогает переносить расширения, созданные на основе 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 Extensions .

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

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

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

Чтобы включить обработку файлов:

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

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

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

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

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

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

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

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

Chrome 112: увеличена квота на хранилище сеанса

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

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

Chrome 109: Внеэкранные документы

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

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

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

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

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

(Пространство имен chrome.action недавно получило новые методы для управления внешним видом значков расширений. Дополнительные сведения см. в разделе Настройка цветов значков .)

Chrome 110: изменение времени ожидания простоя сервисного работника

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

Раньше Extension Service Worker часто завершал работу через пять минут. Мы изменили это поведение, чтобы оно больше соответствовало продолжительности работы Service Worker в интернете. Extension Service Worker завершает работу либо через тридцать секунд бездействия, либо если обработка одного действия занимает более 5 минут. Подробнее см. в разделе «Увеличение продолжительности работы Extension Service Worker» .

Запись: Приостановка поэтапного отказа от Manifest V2

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

Сроки прекращения поддержки Manifest V2 пересматриваются, и эксперименты, запланированные на начало 2023 года, переносятся. Подробнее об обновлении читайте в почтовой рассылке Chrome Extensions.

Chrome 110: настройка цветов значков

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

В пространстве имён chrome.action появились два новых метода, предоставляющих больше контроля над внешним видом значков расширения. Методы setBadgeTextColor() и getBadgeTextColor() позволяют расширению изменять и запрашивать цвет текста значка на панели инструментов. При использовании с setBadgeBackgroundColor и getBadgeBackgroundColor эти новые методы позволяют обеспечить единообразие дизайна и бренда.

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

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

Мы уточнили сроки прекращения поддержки Manifest V2 . Сроки поддержки Manifest V2 также были обновлены с учётом этой информации.

Обновление документации: известные проблемы при переходе на Manifest V3

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

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

Интернет-магазин Chrome: удалена загрузка изображения «большая рекламная плитка»

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

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

Chrome 106: разрешить страницам по URL-адресам file:// доступ к веб-ресурсам

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

По данным crbug.com/1219825#c11 , непрозрачные источники, такие как изолированные фреймы и динамический импорт, также должны иметь возможность доступа к веб-ресурсам.

Chrome 106: исправлена ​​ошибка, допускающая неверные конечные аргументы в некоторых асинхронных функциях API.

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

Ранее при вызове асинхронных API в Manifest V3 мог быть указан недопустимый конечный аргумент, и Chrome не выдавал ошибку. Благодаря этому исправлению Chrome теперь корректно выдаёт ошибку и сообщает об отсутствии соответствующей подписи. Разработчикам рекомендуется проверить свои расширения на Canary на наличие ошибок, чтобы избежать использования неверной подписи для вызова API, который будет нарушен этим исправлением.

Запись в блоге: Обновление аналитики Chrome Web Store

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

В Chrome Web Store обновлён интерфейс аналитики товаров для панели разработчика Chrome Web Store. Новая панель управления стала понятнее с первого взгляда и объединяет всю полезную информацию сразу. Подробнее об этом читайте в блоге .

Chrome 105: обещания для API идентификации

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

Функции API Identity теперь поддерживают вызовы на основе обещаний. Это связано с небольшим изменением интерфейса для identity.getAuthToken() : асинхронный возвращаемый набор для вызова на основе обещаний будет содержать «token» и «grantedScopes» в качестве параметров одного объекта (в отличие от версии обратного вызова, где они принимаются как отдельные аргументы обратного вызова).

Chrome 104: Новый API значков для Manifest V3

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

Расширения Manifest V3 теперь могут получать доступ к значкам favicon, используя новый шаблон URL: chrome-extension://<id>/_favicon/ , где — это идентификатор вашего расширения. Он заменяет API chrome://favicons платформы Manifest V2. Подробнее см. в документации по API Favicon .

Обновление документов: раскрытие информации о трейдерах/не трейдерах-разработчиках

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

Добавлена ​​идентификация разработчика-трейдера/нетрейдера , которая информирует разработчиков о необходимости точно указывать свой статус трейдера/нетрейдера.

Chrome 103: Wasm в Manifest V3 требует wasm-unsafe-eval

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

Chrome больше не предоставляет расширениям script-src: wasm-unsafe-eval по умолчанию. Расширения, использующие WebAssembly, теперь должны явно добавлять эту директиву и значение в extension_pages в своих объявлениях content_security_policy .

Chrome 103: изменения сочетаний клавиш MV3 вступают в силу немедленно

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

При изменении сочетания клавиш расширения Manifest V3 на chrome://extensions/shortcuts обновления теперь применяются немедленно. Раньше для вступления изменений в силу требовалась перезагрузка расширения.

Chrome 102: Динамические скрипты контента в основном мире

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

Динамически регистрируемые скрипты контента теперь могут указывать мир , в который будут внедрены ресурсы. Подробности см. в scripting.registerContentScripts() .

Chrome 102: Новое поле манифеста «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 property in 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: поддержка API омнибокса в манифесте 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 allowed in 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: New storage.session API

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

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

Docs update: Chrome Web Store item discovery

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

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: Improved declarativeNetRequest domain conditions

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

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: Resolved issue with scripting.executeScript() on newly created tabs

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

Chrome 100: native messaging port keeps service worker alive

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

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() supports promises and callbacks

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

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() support in extension service workers

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

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

Chrome 99: match_origin_as_fallback in 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: extension service worker support for file: schemes in 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: promise support for messaging APIs in Canary

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

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

Docs update: Chrome Web Store review documentation

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

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() and scripting.insertCSS() accept multiple files

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

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

Docs update: review violation troubleshooting updates

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

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

Chrome 96: expanded promise support to 27 more APIs

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

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: dynamic content scripts

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

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() .

Docs update: Manifest V2 support timeline

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

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

Chrome 96: declarativeNetRequestWithHostAccess permission

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

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: inject scripts directly into pages

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

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: promise support for Storage API

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

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

Policy update: two step verification enforcement

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

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

Chrome 94: declarative net request static ruleset changes

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

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: cross origin isolation support

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

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.

Policy update: developer program policies updated

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

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.

Blog post: extension actions in 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 .

Blog post: introducing 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: module service worker support

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

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: returning promises from 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() results include 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: new API for managing tab groups

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

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

Chrome 89: customizable permissions for web accessible resources

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

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

Запись в блоге: Конвертер манифестов расширений

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

Команда Chrome Extensions открыла исходный код «Extension Manifest Converter» — инструмента на Python, который автоматизирует некоторые механические аспекты преобразования расширений в Manifest V3. Ознакомьтесь с анонсом в блоге и скачайте его с GitHub .

Chrome 88: Манифест V3 общедоступный

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

Manifest V3 — это крупное обновление платформы расширений; см. раздел «Обзор Manifest V3» для получения сводки новых и изменённых функций. Расширения пока могут продолжать использовать Manifest V2, но в ближайшем будущем эта поддержка будет прекращена. Мы настоятельно рекомендуем использовать Manifest V3 для всех новых расширений и как можно скорее начать перенос существующих расширений на Manifest V3.