Недавно мы объявили об изменениях в графике прекращения поддержки Manifest V2, и, хотя мы по-прежнему твердо привержены Manifest V3, мы признаем, что с нашей стороны предстоит еще много работы.
- Прежде чем объявить о новом графике прекращения поддержки, мы завершили устранение приоритетных недостатков платформы и закрыли критические ошибки, которые были задокументированы на этой странице.
- Мы дали разработчикам время на разработку, гарантировав не менее шести месяцев между объявлением графика и предстоящими экспериментами по прекращению поддержки Manifest V2.
Устранение разрыва в платформах
Мы стремимся устранить следующие пробелы, прежде чем объявить новый график прекращения поддержки Manifest V2:
Проблемы собирались на основе отзывов партнеров, отчетов об ошибках и разработчиков. Мы продолжим нашу постоянную работу по улучшению стабильности и общей производительности платформы расширений.
В настоящее время нет открытых проблем, которые считаются критическим недостатком платформы.
Недавно были решены следующие проблемы:
- Поддержка обработки файлов в ChromeOS в качестве замены
chrome.fileBrowserHandler
[Chrome 120]. - Поддержка пользовательских сценариев: разрешите регистрацию сценариев контента с произвольным кодом с помощью нового API userScripts [Chrome 120].
- Дополнительные мощные службы поддержки для некоторых операций, занимающих более пяти минут.
- Добавлено в Chrome 116 для
permissions.request()
,desktopCapture.chooseDesktopMedia()
,identity.launchWebAuthFlow()
иmanagement.uninstall()
. - Добавлен в Chrome 118 для
chrome.debugger
- Добавлено в Chrome 116 для
- Увеличьте количество статических и включенных наборов правил для декларативного сетевого запроса (DNR). Число включенных статических наборов правил увеличено с 10 до 50, а общее количество статических наборов правил — с 50 до 100 [Chrome 120].
- Расширьте функциональность документа за кадром, чтобы указать больше причин для использования документа за кадром. Добавлена
GEOLOCATION
в Chrome 116. - Улучшение поддержки API
chrome.tabCapture
[Chrome 116]:- Поддержка вызова
getMediaStreamId()
от сервис-воркера. - Поддержка получения
MediaStream
из идентификатора потока в закадровом документе.
- Поддержка вызова
- Увеличение времени жизни сервис-воркера при наличии активных соединений
WebSocket
[Chrome 116].
Манифест V3: часто задаваемые вопросы
Вопрос: Планируем ли мы поддерживать постоянные сервисные работники?
Ответ: Одной из ключевых причин перехода от фоновых сценариев к сервис-воркерам является более эффективная модель программирования, управляемая событиями, которая обусловлена эфемерной природой сервис-воркеров. Следовательно, мы не планируем поддерживать постоянных сервис-работников. Однако, чтобы удовлетворить конкретные потребности разработчиков расширений, мы продолжаем вносить множество улучшений в сервис-воркеры. В частности:
- Все события расширения и вызовы API продлевают срок службы сервис-воркера .
- Отдельные варианты использования, такие как собственный обмен сообщениями, сохранят работоспособность сотрудников службы расширений более 5 минут.
Вопрос: Есть ли способ получить доступ к DOM в сервис-воркерах?
О: Мы следуем подходу, принятому веб-платформой, не включая доступ к DOM в веб-воркеры (включая сервис-воркеров). Для поддержки случаев использования, требующих фонового доступа к DOM со стороны сервисных работников, мы представили возможность делегировать фоновую работу кратковременным документам Offscreen , которые обеспечивают полный доступ к DOM.
Вопрос: Будет ли возможность поддерживать удаленный код в Manifest V3?
О: Чтобы сделать расширения Chrome более безопасными, мы продолжим запрещать выполнение произвольного удаленно размещенного кода в расширениях Chrome. Однако это не означает, что мы запрещаем все виды динамического выполнения кода. Мы по-прежнему поддерживаем различные варианты динамического выполнения кода в расширениях Chrome:
- Поддержка
eval()
в расширениях DevTools. - Поддержка пользовательских скриптов .
- Выполнение удаленно размещенного кода в изолированных фреймах iframe
- Удаленно размещенные файлы конфигурации, которые можно интерпретировать во время выполнения в пакете расширения. Однако возможные пути выполнения должны быть заранее определены.
Вопрос: Мое расширение Manifest V2 использует webRequestBlocking, который не поддерживается в Manifest V3. Как я могу продолжать предоставлять ту же функциональность в Manifest V3?
О: Мы уверены, что большинство случаев использования блокировки запросов можно решить с помощью нового API declarativeNetRequest
, который имеет дополнительное преимущество, позволяющее избежать накладных расходов на производительность межпроцессного взаимодействия, выполнения кода при каждом запросе или требования активного процесса расширения во время запрос. Однако в сложных случаях использования на предприятии (или в сфере образования) динамическая блокировка запросов по-прежнему поддерживается.
Мы что-то пропустили? Пожалуйста дай нам знать .