Chrome 拡張機能で chrome.userScripts を有効にする方法の変更

Justin Lulejian
Justin Lulejian

公開日: 2025 年 5 月 29 日

Chrome 138 以降、Chrome 拡張機能のユーザー スクリプト(chrome.userScripts API)に、セキュリティの強化とユーザーによるよりきめ細かい制御に重点を置いた一連の変更が加えられます。この更新は、デベロッパー コミュニティとそのユーザーから寄せられた貴重なフィードバックに対応しています。

以前は、ユーザー スクリプトを有効にするには、Chrome 内のグローバルなデベロッパー モード切り替えボタンをオンにする必要がありました。このアプローチには、セキュリティ、機能、エンタープライズに関連するいくつかの重要な制限があることがお客様から寄せられたフィードバックからわかりました。

具体的には、グローバルな [デベロッパー モード] 切り替えボタンに依存すると、次の問題が発生します。

  • セキュリティ リスク: デベロッパー モードが有効になると、userScripts 権限をリクエストした新しい拡張機能は、ユーザー スクリプトを実行する機能を自動的に取得します。この場合、ユーザーの明示的な同意や、新しい拡張機能に関連するリスクの認識がない場合もあります。
  • 機能のオーバーロード: [デベロッパー モード] 切り替えボタンは、デベロッパー向けの他の権限もいくつか制御するため、ユーザー スクリプトを実行するための特定の権限を正確に管理できません。
  • 企業の課題: 多くの企業は、管理対象デバイスでデベロッパー モードを有効にすることを好まないため、chrome.userScripts API に依存する拡張機能のデプロイや使用が事実上できなくなります。

こうした懸念に対処し、Chrome 拡張機能のセキュリティとユーザビリティを改善するため、グローバルな [デベロッパー モード] 切り替えボタンから、拡張機能ごとの新しい [ユーザー スクリプトを許可する] 切り替えボタンに移行します。

この新しい切り替えボタンは、Chrome 138(chrome://extensions/?id=<your_extension_id>)の拡張機能の詳細ページでアクセスできます。これにより、ユーザーは拡張機能ごとにユーザー スクリプトを実行する拡張機能の機能を明示的に制御できます。これにより、よりきめ細かい制御が可能になり、潜在的なセキュリティ リスクが軽減されます。

ユーザー スクリプトを許可するダイアログ。

移行期間中、Chrome バージョン 138 より前では引き続き [Developer Mode] 切り替えボタンが使用されますが、バージョン 138 以降では、拡張機能ごとに新しい [Allow User Scripts] 切り替えボタンが使用されます。138 以降を初めて起動すると、デベロッパー モードの切り替えが有効になっている場合、userScripts 権限が付与されている既存の拡張機能の新しい切り替えが自動的に有効になります。移行後にインストールされる新しい拡張機能はすべて、デフォルトで [ユーザー スクリプトを許可する] がオフになります。

また、以前は、User Scripts API の可用性を確認するために、拡張機能は chrome.userScripts へのアクセスを試行する必要がありました。デベロッパー モードが無効になっていると、エラーが発生していました。Chrome 138 以降では、他の API と動作が統一され、API が使用できない場合は未定義になります。ただし、すべての Chrome バージョンに対応しているため、API が利用可能かどうかを確認するには、次のチェックをおすすめします。

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 管理コンソールを使用して、chrome.userScripts API を使用する拡張機能を管理する必要があります。強制的にインストールされた拡張機能に対する chrome.userScripts アクセスの制御方法のさらなる変更を検討しておりますので、管理者のリリースノートで最新情報をご確認ください。

今回の変更により、ユーザーは拡張機能の機能をより正確に制御できるようになり、セキュリティの強化とより透明性の高いエクスペリエンスの実現につながると考えています。拡張機能のデベロッパーは、この変更を反映してドキュメントを更新し、ユーザーがスムーズに移行できるようにすることをおすすめします。

変更と新しい動作について詳しくは、ドキュメントをご覧ください。

この改善を促したデベロッパー コミュニティからのフィードバックに感謝いたします。YouTube は、すべてのユーザーにとって安全でユーザー フレンドリーなエクスペリエンスを提供できるよう引き続き取り組んでまいります。