chrome.contentSettings

説明

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

権限

contentSettings

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

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

コンセプトと使用方法

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

各コンテンツ設定が影響を及ぼすウェブサイトをパターンを使って指定できます。たとえば https://*.youtube.com/* には、youtube.com とそのすべてのサブドメインを指定します。content の構文は パターンの設定は一致パターンと同じですが、次の点が異なります。

  • httphttpsftp の URL の場合、パスにはワイルドカード(/*)を使用する必要があります。file URL の場合、パスは 完全に指定する必要があります。また、ワイルドカードは含めないでください
  • 一致パターンとは対照的に、コンテンツ設定パターンではポート番号を指定できます。ポート number を指定した場合、そのポートを持つウェブサイトのみがパターンに一致します。ポート番号がない場合、 そのパターンはすべてのポートに一致します。

パターンの優先度

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

たとえば、次のパターンは優先順位順に並んでいます。

  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 が考慮されます。たとえば、特定のサイトによるアクセスが 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>

リソース識別子

リソース識別子を使用すると、コンテンツ タイプの特定のサブタイプのコンテンツ設定を指定できます。 現在、リソース識別子をサポートしているコンテンツ タイプは 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 以降

列挙型

「許可」

"block"

CameraContentSetting

Chrome 46 以降

列挙型

「許可」

"block"

"ask"

ClipboardContentSetting

Chrome 121 以降

列挙型

「許可」

"block"

"ask"

ContentSetting

プロパティ

  • クリア

    void

    <ph type="x-smartling-placeholder"></ph> 約束

    この拡張機能で設定されているすべてのコンテンツ設定ルールを消去します。

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

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

    • 詳細

      オブジェクト

      • スコープ

        範囲省略可

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

    • callback

      関数(省略可)

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

      () => void

    • 戻り値

      約束 <void>

      Chrome 96 以降

      Promise は Manifest V3 以降でサポートされていますが、 下位互換性が確保されます同じ関数呼び出しで両方を使用することはできません。「 Promise はコールバックに渡された型と同じ型で解決されます。

  • get

    void

    <ph type="x-smartling-placeholder"></ph> 約束

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

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

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

    • 詳細

      オブジェクト

      • シークレット モード

        ブール値(省略可)

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

      • primaryUrl

        文字列

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

      • resourceIdentifier

        ResourceIdentifier(省略可)

        設定を取得する必要があるコンテンツ タイプの、より具体的な識別子。

      • secondaryUrl

        文字列(省略可)

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

    • callback

      関数(省略可)

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

      (details: object) => void

      • 詳細

        オブジェクト

        • 設定

          T

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

    • 戻り値

      Promise&lt;object&gt;

      Chrome 96 以降

      Promise は Manifest V3 以降でサポートされていますが、 下位互換性が確保されます同じ関数呼び出しで両方を使用することはできません。「 Promise はコールバックに渡された型と同じ型で解決されます。

  • getResourceIdentifiers

    void

    <ph type="x-smartling-placeholder"></ph> 約束

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

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

    • callback

      関数(省略可)

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

      (resourceIdentifiers?: ResourceIdentifier[]) => void

      • resourceIdentifiers

        ResourceIdentifier[] 省略可

        このコンテンツ タイプのリソース識別子のリスト。このコンテンツ タイプでリソース識別子を使用しない場合は undefined

    • 戻り値

      Promise <ResourceIdentifier[]>

      Chrome 96 以降

      Promise は Manifest V3 以降でサポートされていますが、 下位互換性が確保されます同じ関数呼び出しで両方を使用することはできません。「 Promise はコールバックに渡された型と同じ型で解決されます。

  • set

    void

    <ph type="x-smartling-placeholder"></ph> 約束

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

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

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

    • 詳細

      オブジェクト

      • primaryPattern

        文字列

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

      • resourceIdentifier

        ResourceIdentifier(省略可)

        コンテンツ タイプのリソース ID。

      • スコープ

        範囲省略可

        設定を行う場所(デフォルト: 標準)。

      • secondaryPattern

        文字列(省略可)

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

      • 設定

        任意

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

    • callback

      関数(省略可)

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

      () => void

    • 戻り値

      約束 <void>

      Chrome 96 以降

      Promise は Manifest V3 以降でサポートされていますが、 下位互換性が確保されます同じ関数呼び出しで両方を使用することはできません。「 Promise はコールバックに渡された型と同じ型で解決されます。

CookiesContentSetting

Chrome 44 以降

列挙型

「許可」

"block"

&quot;session_only&quot;

FullscreenContentSetting

Chrome 44 以降

「許可」

ImagesContentSetting

Chrome 44 以降

列挙型

「許可」

"block"

JavascriptContentSetting

Chrome 44 以降

列挙型

「許可」

"block"

LocationContentSetting

Chrome 44 以降

列挙型

「許可」

"block"

"ask"

MicrophoneContentSetting

Chrome 46 以降

列挙型

「許可」

"block"

"ask"

MouselockContentSetting

Chrome 44 以降

「許可」

MultipleAutomaticDownloadsContentSetting

Chrome 44 以降

列挙型

「許可」

"block"

"ask"

NotificationsContentSetting

Chrome 44 以降

列挙型

「許可」

"block"

"ask"

PluginsContentSetting

Chrome 44 以降

"block"

PopupsContentSetting

Chrome 44 以降

列挙型

「許可」

"block"

PpapiBrokerContentSetting

Chrome 44 以降

"block"

ResourceIdentifier

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

プロパティ

  • description

    文字列(省略可)

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

  • id

    文字列

    指定されたコンテンツ タイプのリソース識別子。

Scope

Chrome 44 以降

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

列挙型

「レギュラー サイズ」

"secret_session_only"

プロパティ

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 です。 プライマリ URL は、最上位フレームの URL です。セカンダリ URL は使用されません。注: set() を呼び出す場合、プライマリ パターンは にする必要があります。

camera

Chrome 46 以降

サイトにカメラへのアクセスを許可するかどうかを指定します。次のいずれか allow: サイトによるカメラへのアクセスを許可します。 block: サイトによるカメラへのアクセスを許可しません。 ask: サイトがカメラへのアクセスを求められたときに確認します。 デフォルトは ask です。 プライマリ URL は、カメラへのアクセスをリクエストしたドキュメントの URL です。セカンダリ URL は使用されません。 注: 「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 は使用されません。 注: 「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() の呼び出しは無視されます。