chrome.contentSettings

refresh date: 2026-09-25 robots: noindex

説明

chrome.contentSettings API を使用して、ウェブサイトが Cookie、JavaScript、プラグインなどの機能を使用できるかどうかを制御する設定を変更します。一般的に、コンテンツの設定では、Chrome の動作をグローバルではなくサイトごとにカスタマイズできます。

権限

contentSettings

マニフェスト

API を使用するには、拡張機能のマニフェストで「contentSettings」権限を宣言する必要があります。次に例を示します。

{
  "name": "My extension",
  ...
  "permissions": [
    "contentSettings"
  ],
  ...
}

コンテンツ設定のパターン

パターンを使用して、各コンテンツ設定が影響するウェブサイトを指定できます。たとえば、https://*.youtube.com/* は youtube.com とそのすべてのサブドメインを指定します。コンテンツ設定パターンの構文は、一致パターンの構文と同じですが、いくつか違いがあります。

  • http、https、ftp の URL の場合、パスはワイルドカード(/*)である必要があります。file の URL の場合、パスは完全に指定されている必要があり、ワイルドカードを含めることはできません。
  • 一致パターンとは異なり、コンテンツ設定パターンではポート番号を指定できます。ポート番号が指定されている場合、パターンはそのポートを持つウェブサイトにのみ一致します。ポート番号が指定されていない場合、パターンはすべてのポートに一致します。

パターンの優先順位

特定のサイトに複数のコンテンツ設定ルールが適用される場合、より具体的なパターンを含むルールが優先されます。

たとえば、次のパターンは優先順位で並べ替えられています。

  1. https://www.example.com/*
  2. https://*.example.com/*(example.com とすべてのサブドメインに一致)
  3. <all_urls>(すべての URL に一致)

3 種類のワイルドカードは、パターンの具体性に影響します。

  • ポートのワイルドカード(https://www.example.com:*/* など)
  • スキーム内のワイルドカード(例: *://www.example.com:123/*)
  • ホスト名のワイルドカード(例: https://*.example.com:123/*)

パターンの一部分が別のパターンよりも具体的で、別の部分が具体的でない場合、ホスト名、スキーム、ポートの順にチェックされます。たとえば、次のパターンは優先順位で並べ替えられます。

  1. https://www.example.com:*/* ホスト名とスキームを指定します。
  2. *:/www.example.com:123/* ホスト名を指定しているものの、スキームを指定していないため、それほど高くありません。
  3. https://*.example.com:123/* ホスト名にワイルドカードが含まれているため、ポートとスキームを指定していても優先度が低くなります。

プライマリ パターンとセカンダリ パターン

どのコンテンツ設定を適用するかを決定する際に考慮される URL は、コンテンツのタイプによって異なります。たとえば、contentSettings.notifications の設定は、アドレスバーに表示される URL に基づいています。この URL は「プライマリ」URL と呼ばれます。

一部のコンテンツ タイプでは、追加の URL を考慮できます。たとえば、サイトが contentSettings.cookies を設定できるかどうかは、HTTP リクエストの URL(この場合はプライマリ URL)と、オムニボックスに表示される URL(セカンダリ URL)に基づいて決定されます。

複数のルールにプライマリ パターンとセカンダリ パターンがある場合は、プライマリ パターンの指定がより詳細なルールが優先されます。複数のルールに同じプライマリ パターンがある場合は、セカンダリ パターンの指定がより詳細なルールが優先されます。たとえば、次の主/副パターン ペアのリストは、優先順位で並べ替えられています。

優先度プライマリ パターンセカンダリ パターン
1https://www.moose.com/*https://www.wombat.com/*
2https://www.moose.com/*<all_urls>
3<all_urls>https://www.wombat.com/*
4<all_urls><all_urls>

リソース識別子

リソース ID を使用すると、コンテンツ タイプの特定のサブタイプのコンテンツ設定を指定できます。現在、リソース ID をサポートしているコンテンツ タイプは contentSettings.plugins のみです。リソース ID は特定のプラグインを識別します。コンテンツ設定を適用する際は、まず特定のプラグインの設定が確認されます。特定のプラグインの設定が見つからない場合は、プラグインの一般的なコンテンツ設定が確認されます。

たとえば、コンテンツ設定ルールにリソース識別子 adobe-flash-player とパターン <all_urls> がある場合、そのパターンがより具体的であっても、リソース識別子がなくパターン https://www.example.com/* があるルールよりも優先されます。

コンテンツ タイプのリソース識別子のリストを取得するには、contentSettings.ContentSetting.getResourceIdentifiers メソッドを呼び出します。返されるリストは、ユーザーのマシンにインストールされているプラグインのセットによって変わる可能性がありますが、Chrome はプラグインの更新間で識別子を安定させようとします。

例

この API を試すには、chrome-extension-samples リポジトリから contentSettings API の例をインストールします。

型

AutoVerifyContentSetting

Chrome 113 以降

列挙型

"allow"

"block"

CameraContentSetting

Chrome 46 以降

列挙型

"allow"

"block"

"ask"

ClipboardContentSetting

Chrome 121 以降

列挙型

"allow"

"block"

"ask"

ContentSetting

プロパティ

  • 消去

    void

    Promise

    この拡張機能で設定されたすべてのコンテンツ設定ルールをクリアします。

    clear 関数は次のようになります。

    (details: object, callback?: function) => {...}

    • 詳細

      オブジェクト

      • スコープ

        スコープ(省略可)

        設定をクリアする場所(デフォルト: regular)。

    • callback

      関数 省略可

      callback パラメータは次のようになります。

      () => void

    • 戻り値

      Promise<void>

      Chrome 96 以降

      Promise は Manifest V3 以降でのみサポートされています。他のプラットフォームではコールバックを使用する必要があります。

  • get

    void

    Promise

    指定された URL のペアの現在のコンテンツ設定を取得します。

    get 関数は次のようになります。

    (details: object, callback?: function) => {...}

    • 詳細

      オブジェクト

      • シークレット

        ブール値(省略可)

        シークレット セッションのコンテンツ設定を確認するかどうか。(デフォルトは false)

      • primaryUrl

        文字列

        コンテンツ設定を取得するプライマリ URL。プライマリ URL の意味はコンテンツ タイプによって異なります。

      • resourceIdentifier

        設定を取得するコンテンツのタイプをより具体的に示す識別子。

      • secondaryUrl

        文字列 省略可

        コンテンツ設定を取得するセカンダリ URL。デフォルトはプライマリ URL です。セカンダリ URL の意味はコンテンツ タイプによって異なり、すべてのコンテンツ タイプでセカンダリ URL が使用されるわけではありません。

    • callback

      関数 省略可

      callback パラメータは次のようになります。

      (details: object) => void

      • 詳細

        オブジェクト

        • 設定

          T

          コンテンツの設定。有効な値については、個々の ContentSetting オブジェクトの説明をご覧ください。

    • 戻り値

      Promise<object>

      Chrome 96 以降

      Promise は Manifest V3 以降でのみサポートされています。他のプラットフォームではコールバックを使用する必要があります。

  • getResourceIdentifiers

    void

    Promise

    getResourceIdentifiers 関数は次のようになります。

    (callback?: function) => {...}

    • callback

      関数 省略可

      callback パラメータは次のようになります。

      (resourceIdentifiers?: ResourceIdentifier[]) => void

      • resourceIdentifiers

        ResourceIdentifier[] 省略可

        このコンテンツ タイプのリソース ID のリスト。このコンテンツ タイプでリソース ID が使用されていない場合は undefined。

    • 戻り値
      Chrome 96 以降

      Promise は Manifest V3 以降でのみサポートされています。他のプラットフォームではコールバックを使用する必要があります。

  • set

    void

    Promise

    新しいコンテンツ設定ルールを適用します。

    set 関数は次のようになります。

    (details: object, callback?: function) => {...}

    • 詳細

      オブジェクト

      • primaryPattern

        文字列

        メインの URL のパターン。パターンの形式について詳しくは、コンテンツ設定パターンをご覧ください。

      • resourceIdentifier

        コンテンツ タイプのリソース識別子。

      • スコープ

        スコープ(省略可)

        設定する場所(デフォルト: regular)。

      • secondaryPattern

        文字列 省略可

        セカンダリ URL のパターン。デフォルトでは、すべての URL に一致します。パターンの形式について詳しくは、コンテンツ設定のパターンをご覧ください。

      • 設定

        任意

        このルールによって適用される設定。有効な値については、個々の ContentSetting オブジェクトの説明をご覧ください。

    • callback

      関数 省略可

      callback パラメータは次のようになります。

      () => void

    • 戻り値

      Promise<void>

      Chrome 96 以降

      Promise は Manifest V3 以降でのみサポートされています。他のプラットフォームではコールバックを使用する必要があります。

CookiesContentSetting

Chrome 44 以降

列挙型

"allow"

"block"

"session_only"

FullscreenContentSetting

Chrome 44 以降

値

"allow"

ImagesContentSetting

Chrome 44 以降

列挙型

"allow"

"block"

JavascriptContentSetting

Chrome 44 以降

列挙型

"allow"

"block"

LocationContentSetting

Chrome 44 以降

列挙型

"allow"

"block"

"ask"

MicrophoneContentSetting

Chrome 46 以降

列挙型

"allow"

"block"

"ask"

MouselockContentSetting

Chrome 44 以降

値

"allow"

MultipleAutomaticDownloadsContentSetting

Chrome 44 以降

列挙型

"allow"

"block"

"ask"

NotificationsContentSetting

Chrome 44 以降

列挙型

"allow"

"block"

"ask"

PluginsContentSetting

Chrome 44 以降

値

"block"

PopupsContentSetting

Chrome 44 以降

列挙型

"allow"

"block"

PpapiBrokerContentSetting

Chrome 44 以降

値

"block"

ResourceIdentifier

リソース識別子を使用するコンテンツ タイプは contentSettings.plugins のみです。詳細については、リソース識別子をご覧ください。

プロパティ

  • 説明

    文字列 省略可

    リソースの説明(人が読める形式)。

  • id

    文字列

    指定されたコンテンツ タイプの Resource Identifier。

Scope

Chrome 44 以降

ContentSetting のスコープ。regular: 通常のプロファイルの設定(他の場所でオーバーライドされていない場合、シークレット プロファイルに継承されます)。incognito\_session\_only: シークレット セッション中にのみ設定でき、シークレット セッションが終了すると削除されるシークレット プロファイルの設定(通常の設定をオーバーライドします)。

列挙型

"regular"

"incognito_session_only"

SoundContentSetting

Chrome 141 以降

列挙型

"allow"

"block"

プロパティ

automaticDownloads

サイトによる複数ファイルの自動ダウンロードを許可するかどうか。allow: サイトが複数のファイルを自動的にダウンロードすることを許可する、block: サイトが複数のファイルを自動的にダウンロードすることを許可しない、ask: サイトが最初のファイルの後にファイルを自動的にダウンロードしようとしたときに確認する、のいずれか。デフォルトは ask です。プライマリ URL は、トップレベル フレームの URL です。セカンダリ URL は使用されません。

autoVerify

Chrome 113 以降

サイトで Private State Tokens API の使用を許可するかどうか。allow: サイトが Private State Tokens API を使用することを許可します。block: サイトが Private State Tokens API を使用することをブロックします。デフォルトは allow です。set() を呼び出す場合、プライマリ URL パターンは <all_urls> である必要があります。セカンダリ URL は使用されません。

camera

Chrome 46 以降

サイトがカメラにアクセスすることを許可するかどうか。allow: サイトによるカメラへのアクセスを許可する、block: サイトによるカメラへのアクセスを許可しない、ask: サイトがカメラへのアクセスを求めたときに確認する、のいずれか。デフォルトは ask です。プライマリ URL は、カメラへのアクセスをリクエストしたドキュメントの URL です。セカンダリ URL は使用されません。注: 両方のパターンが「<all_urls>」の場合、「allow」設定は無効です。

clipboard

Chrome 121 以降

サイトが Async Clipboard API の高度な機能を使用してクリップボードにアクセスできるようにするかどうかを指定します。「高度な」機能には、ユーザー操作後の組み込み形式の書き込み以外の機能(読み取り機能、カスタム形式の書き込み機能、ユーザー操作なしの書き込み機能など)が含まれます。allow: サイトが高度なクリップボード機能を使用することを許可します。block: サイトが高度なクリップボード機能を使用することを許可しません。ask: サイトが高度なクリップボード機能を使用しようとしたときに確認します。デフォルトは ask です。プライマリ URL は、クリップボードへのアクセスをリクエストしたドキュメントの URL です。セカンダリ URL は使用されません。

cookies

ウェブサイトによる Cookie やその他のローカル データの保存を許可するかどうか。allow: Cookie を受け入れる、block: Cookie をブロックする、session\_only: 現在のセッションでのみ Cookie を受け入れるのいずれか。デフォルトは allow です。プライマリ URL は、Cookie のオリジンを表す URL です。セカンダリ URL は、トップレベル フレームの URL です。

fullscreen

非推奨。効果がなくなりました。全画面表示の権限がすべてのサイトに自動的に付与されるようになりました。値は常に allow です。

images

画像を表示するかどうか。allow: 画像を表示する、block: 画像を表示しないのいずれか。デフォルトは allow です。プライマリ URL は、トップレベル フレームの URL です。セカンダリ URL は画像の URL です。

javascript

JavaScript を実行するかどうか。allow: JavaScript を実行します。block: JavaScript を実行しません。デフォルトは allow です。プライマリ URL は、トップレベル フレームの URL です。セカンダリ URL は使用されません。

location

位置情報の使用を許可するかどうか。allow: サイトがユーザーの物理的な位置情報を追跡することを許可します。block: サイトがユーザーの物理的な位置情報を追跡することを許可しません。ask: サイトがユーザーの物理的な位置情報を追跡することを許可する前に確認します。デフォルトは ask です。プライマリ URL は、位置情報をリクエストしたドキュメントの URL です。セカンダリ URL は、最上位フレームの URL です(リクエスト URL と異なる場合もあれば、同じ場合もあります)。

microphone

Chrome 46 以降

サイトにマイクへのアクセスを許可するかどうか。allow: サイトがマイクにアクセスすることを許可する、block: サイトがマイクにアクセスすることを許可しない、ask: サイトがマイクにアクセスしようとしたときに確認する、のいずれか。 デフォルトは ask です。プライマリ URL は、マイクへのアクセスをリクエストしたドキュメントの URL です。セカンダリ URL は使用されません。注: 両方のパターンが「<all_urls>」の場合、「allow」設定は無効です。

mouselock

非推奨。効果がなくなりました。マウスロックの権限がすべてのサイトに自動的に付与されるようになりました。値は常に allow です。

notifications

サイトにデスクトップ通知の表示を許可するかどうか。allow: サイトでデスクトップ通知を表示することを許可する、block: サイトでデスクトップ通知を表示することを許可しない、ask: サイトでデスクトップ通知を表示しようとしたときに確認する、のいずれか。 デフォルトは ask です。プライマリ URL は、通知を表示するドキュメントの URL です。セカンダリ URL は使用されません。

plugins

非推奨。Chrome 88 で Flash のサポートが終了したため、この権限は無効になりました。値は常に block です。set() と clear() の呼び出しは無視されます。

popups

サイトでポップアップを表示することを許可するかどうか。allow: サイトにポップアップの表示を許可する、block: サイトにポップアップの表示を許可しない、のいずれか。デフォルトは block です。プライマリ URL は、トップレベル フレームの URL です。セカンダリ URL は使用されません。

unsandboxedPlugins

非推奨。以前は、サイトがサンドボックス化されていないプラグインを実行することを許可するかどうかを制御していましたが、Chrome 88 で Flash ブローカー プロセスが削除されたため、この権限は無効になりました。値は常に block です。set() と clear() の呼び出しは無視されます。