Опубликовано: 29 мая 2025 г.
Начиная с Chrome 138, в расширения Chrome внесен ряд изменений в пользовательские скрипты (API chrome.userScripts
), направленных на повышение безопасности и предоставление пользователям более детального контроля. Это обновление учитывает ценные отзывы, полученные от сообщества разработчиков и их пользователей.
Раньше требовалось, чтобы пользовательские сценарии требовали включения глобального переключения режима разработчика в Chrome. Мы слышали от вас, что этот подход имел некоторые ключевые ограничения, поскольку он связан с безопасностью, функциональностью и предприятием.
В частности, зависимость от глобального переключателя режима разработчика имела следующие проблемы:
- Угрозы безопасности: После включения режима разработчика новые расширения, запрашивающие разрешение
userScripts
автоматически получают возможность запускать пользовательские скрипты, потенциально без явного согласия пользователя или осведомленности о рисках, связанных с каждым новым расширением. - Перегрузка функциональности: переключатель режима разработчика управляет несколькими другими разрешениями, ориентированными на разработчика, что делает менее точным управление конкретным разрешением на запуск пользовательских скриптов.
- Проблемы предприятий: многие предприятия предпочитают не включать режим разработчика на управляемых устройствах, что фактически не позволяет им развертывать или использовать расширения, использующие API
chrome.userScripts
.
Чтобы устранить эти проблемы и повысить безопасность и удобство использования расширений Chrome, мы переходим от глобального переключателя «Режим разработчика» к новому переключателю « Разрешить пользовательские скрипты» для каждого расширения.
Этот новый переключатель, доступный на странице сведений о расширении в Chrome 138 ( chrome://extensions/?id=<your_extension_id>
), позволяет пользователям явно контролировать способность расширения запускать пользовательские скрипты на индивидуальной основе. Это обеспечивает более детальный контроль и снижает потенциальные риски безопасности.
В течение переходного периода версии Chrome до 138 продолжат использовать переключатель «Режим разработчика» , в то время как версии 138 и более поздние будут использовать новый переключатель «Разрешить пользовательские скрипты» для каждого расширения. При первом запуске 138 и более поздних версий одноразовая миграция автоматически включит новый переключатель для существующих расширений, которым предоставлено разрешение userScripts
, если переключатель «Режим разработчика» включен. Все новые расширения, установленные после миграции, по умолчанию будут иметь переключатель « Разрешить пользовательские скрипты», установленный в положение «выкл.».
Кроме того, для проверки доступности API пользовательских скриптов расширениям ранее приходилось пытаться получить доступ к chrome.userScripts
. Это приводило к ошибке, если режим разработчика был отключен. Начиная с Chrome 138, поведение соответствует другим API, и API не определено, если оно недоступно. Тем не менее, мы рекомендуем эту проверку, чтобы определить, доступен ли API, поскольку она охватывает все версии Chrome:
function isUserScriptsAvailable() {
try {
// Method call which throws if API permission or toggle is not enabled.
chrome.userScripts.getScripts();
return true;
} catch {
// Not available.
return false;
}
}
Администраторы, которые ранее управляли пользовательскими скриптами, отключая режим разработчика, теперь должны использовать политику blocked_permissions
или консоль администратора Google для управления расширениями, использующими API chrome.userScripts
. Мы оцениваем дальнейшие изменения в том, как можно контролировать доступ к chrome.userScripts
для принудительно установленных расширений, поэтому следите за обновлениями в примечаниях к выпуску администратора.
Мы считаем, что это изменение предоставит пользователям более точный контроль над возможностями расширения, что приведет к повышению безопасности и более прозрачному опыту. Мы призываем разработчиков расширений обновить свою документацию, чтобы отразить это изменение и обеспечить плавный переход для своих пользователей.
Подробнее об изменениях и новом поведении можно узнать в нашей документации .
Мы ценим отзывы сообщества разработчиков, которые способствовали этому улучшению, и по-прежнему стремимся создать безопасный и удобный интерфейс для всех.