Включение chrome.userScripts в расширениях Chrome меняется

Джастин Луледжиан
Justin Lulejian

Опубликовано: 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 для принудительно установленных расширений, поэтому следите за обновлениями в примечаниях к выпуску администратора.

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

Подробнее об изменениях и новом поведении можно узнать в нашей документации .

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