更新日: 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 の場合、パスは完全に指定する必要があり、ワイルドカードを含めることはできません。- 一致パターンとは異なり、コンテンツ設定パターンではポート番号を指定できます。ポート番号が指定されている場合、パターンはそのポートを持つウェブサイトにのみ一致します。ポート番号が指定されていない場合、パターンはすべてのポートに一致します。
パターンの優先順位
特定のサイトに複数のコンテンツ設定ルールが適用される場合は、より具体的なパターンのルールが優先されます。
たとえば、次のパターンは優先順に並べられています。
https://www.example.com/*https://*.example.com/*(example.com とすべてのサブドメインに一致)<all_urls>(すべての URL に一致)
パターンの具体性に影響するワイルドカードには、次の 3 種類があります。
- ポートのワイルドカード(
https://www.example.com:*/*など) - スキーム内のワイルドカード(例:
*://www.example.com:123/*) - ホスト名のワイルドカード(例:
https://*.example.com:123/*)
あるパターンが、ある部分では別のパターンよりも具体的だが、別の部分では具体的でない場合、異なる部分はホスト名、スキーム、ポートの順にチェックされます。たとえば、次のパターンは優先順に並べ替えられます。
https://www.example.com:*/*ホスト名とスキームを指定します。*:/www.example.com:123/*ホスト名は指定されていますが、スキームが指定されていないため、優先度はそれほど高くありません。https://*.example.com:123/*ポートとスキームが指定されていますが、ホスト名にワイルドカードが含まれているため、優先度は低くなります。
プライマリ パターンとセカンダリ パターン
どのコンテンツ設定を適用するかを決定する際に考慮される URL は、コンテンツ タイプによって異なります。たとえば、contentSettings.notifications の設定は、アドレスバーに表示される URL に基づいています。この URL は「プライマリ」URL と呼ばれます。
コンテンツ タイプによっては、追加の URL を考慮できるものもあります。たとえば、サイトで contentSettings.cookies の設定が許可されるかどうかは、HTTP リクエストの URL(この場合はプライマリ URL)と、アドレスバーに表示される URL(「セカンダリ」URL と呼ばれます)に基づいて決定されます。
複数のルールにプライマリ パターンとセカンダリ パターンがある場合は、より具体的なプライマリ パターンを持つルールが優先されます。複数のルールに同じプライマリ パターンがある場合は、より具体的なセカンダリ パターンを持つルールが優先されます。たとえば、次のプライマリ / セカンダリ パターンペアのリストは、優先順に並べられています。
| 優先度 | メインのパターン | サブパターン |
|---|---|---|
| 1 | https://www.moose.com/* | https://www.wombat.com/* |
| 2 | https://www.moose.com/* | <all_urls> |
| 3 | <all_urls> | https://www.wombat.com/* |
| 4 | <all_urls> | <all_urls> |
リソース識別子
リソース ID を使用すると、コンテンツ タイプの特定のサブタイプにコンテンツ設定を指定できます。現在、リソース識別子をサポートしているコンテンツ タイプは contentSettings.plugins のみです。リソース識別子は特定のプラグインを識別します。コンテンツ設定を適用する際、まず特定のプラグインの設定が確認されます。特定のプラグインの設定が見つからない場合は、プラグインの一般的なコンテンツ設定が確認されます。
たとえば、コンテンツ設定ルールにリソース識別子 adobe-flash-player とパターン <all_urls> がある場合、リソース識別子とパターン https://www.example.com/* のないルールよりも優先されます。これは、パターンがより具体的であっても同様です。
コンテンツ タイプのリソース ID のリストを取得するには、contentSettings.ContentSetting.getResourceIdentifiers メソッドを呼び出します。返されるリストは、ユーザーのマシンにインストールされているプラグインのセットによって変わる可能性がありますが、Chrome はプラグインの更新全体で識別子を安定させようとします。
例
この API を試すには、chrome-extension-samples リポジトリから contentSettings API の例をインストールします。
型
AutoVerifyContentSetting
列挙型
"allow"
"block"
CameraContentSetting
列挙型
"allow"
"block"
"ask"
ClipboardContentSetting
列挙型
"allow"
"block"
"ask"
ContentSetting
プロパティ
-
消去
void
Promiseこの拡張機能によって設定されたすべてのコンテンツ設定ルールを消去します。
clear関数は次のようになります。(details: object, callback?: function) => {...}
-
詳細
オブジェクト
-
スコープ
Scope 省略可
設定をクリアする場所(デフォルト: regular)。
-
-
callback
function 省略可
callbackパラメータは次のようになります。() => void
-
戻り値
Promise<void>
Chrome 96 以降Promise は Manifest V3 以降でのみサポートされています。他のプラットフォームではコールバックを使用する必要があります。
-
-
get
void
Promise指定された URL のペアの現在のコンテンツ設定を取得します。
get関数は次のようになります。(details: object, callback?: function) => {...}
-
詳細
オブジェクト
-
シークレット
boolean 省略可
シークレット モード セッションのコンテンツ設定を確認するかどうか。(デフォルトは false)。
-
primaryUrl
文字列
コンテンツ設定を取得するプライマリ URL。プライマリ URL の意味は、コンテンツ タイプによって異なります。
-
resourceIdentifier
設定を取得するコンテンツのタイプをより具体的に示す識別子。
-
secondaryUrl
文字列 省略可
コンテンツ設定を取得するセカンダリ URL。デフォルトはメイン URL です。セカンダリ URL の意味はコンテンツ タイプによって異なります。また、すべてのコンテンツ タイプでセカンダリ URL が使用されるわけではありません。
-
-
callback
function 省略可
callbackパラメータは次のようになります。(details: object) => void
-
詳細
オブジェクト
-
設定
T
コンテンツの設定。設定可能な値については、個々の ContentSetting オブジェクトの説明をご覧ください。
-
-
-
戻り値
Promise<object>
Chrome 96 以降Promise は Manifest V3 以降でのみサポートされています。他のプラットフォームではコールバックを使用する必要があります。
-
-
getResourceIdentifiers
void
PromisegetResourceIdentifiers関数は次のようになります。(callback?: function) => {...}
-
callback
function 省略可
callbackパラメータは次のようになります。(resourceIdentifiers?: ResourceIdentifier[]) => void
-
resourceIdentifiers
ResourceIdentifier[] 省略可
このコンテンツ タイプの、リソース識別子のリスト。このコンテンツ タイプでリソース識別子が使用されていない場合は
undefined。
-
-
戻り値
Promise<ResourceIdentifier[]>
Chrome 96 以降Promise は Manifest V3 以降でのみサポートされています。他のプラットフォームではコールバックを使用する必要があります。
-
-
set
void
Promise新しいコンテンツ設定ルールを適用します。
set関数は次のようになります。(details: object, callback?: function) => {...}
-
詳細
オブジェクト
-
primaryPattern
文字列
メイン URL のパターン。パターンの形式について詳しくは、コンテンツ設定パターンをご覧ください。
-
resourceIdentifier
コンテンツ タイプの Resource Identifier。
-
スコープ
Scope 省略可
設定を適用する場所(デフォルト: regular)。
-
secondaryPattern
文字列 省略可
セカンダリ URL のパターン。デフォルトでは、すべての URL が一致します。パターンの形式について詳しくは、コンテンツ設定のパターンをご覧ください。
-
設定
任意
このルールによって適用される設定。設定可能な値については、個々の ContentSetting オブジェクトの説明をご覧ください。
-
-
callback
function 省略可
callbackパラメータは次のようになります。() => void
-
戻り値
Promise<void>
Chrome 96 以降Promise は Manifest V3 以降でのみサポートされています。他のプラットフォームではコールバックを使用する必要があります。
-
CookiesContentSetting
列挙型
"allow"
"block"
"session_only"
FullscreenContentSetting
値
"allow"
ImagesContentSetting
列挙型
"allow"
"block"
JavascriptContentSetting
列挙型
"allow"
"block"
LocationContentSetting
列挙型
"allow"
"block"
"ask"
MicrophoneContentSetting
列挙型
"allow"
"block"
"ask"
MouselockContentSetting
値
"allow"
MultipleAutomaticDownloadsContentSetting
列挙型
"allow"
"block"
"ask"
NotificationsContentSetting
列挙型
"allow"
"block"
"ask"
PluginsContentSetting
値
"block"
PopupsContentSetting
列挙型
"allow"
"block"
PpapiBrokerContentSetting
値
"block"
ResourceIdentifier
リソース識別子を使用するコンテンツ タイプは contentSettings.plugins のみです。詳細については、リソース識別子をご覧ください。
プロパティ
-
説明
文字列 省略可
リソースの説明(人が読める形式)。
-
id
文字列
指定されたコンテンツ タイプのリソース識別子。
Scope
ContentSetting のスコープ。regular(通常のプロファイルの設定。他の場所でオーバーライドされない限り、シークレット プロファイルに継承されます)、incognito\_session\_only(シークレット プロファイルの設定。シークレット モード セッション中にのみ設定でき、シークレット モード セッションが終了すると削除されます。通常の設定をオーバーライドします)のいずれか。
列挙型
"regular"
"incognito_session_only"
SoundContentSetting
列挙型
"allow"
"block"
プロパティ
automaticDownloads
サイトに複数ファイルの自動ダウンロードを許可するかどうかを指定します。allow: サイトに複数のファイルの自動ダウンロードを許可する、block: サイトに複数のファイルの自動ダウンロードを許可しない、ask: サイトが最初のファイルの後にファイルを自動ダウンロードしようとしたときに確認する、のいずれか。デフォルトは ask です。プライマリ URL は、トップレベル フレームの URL です。セカンダリ URL は使用されません。
autoVerify
サイトで Private State Tokens API の使用を許可するかどうか。allow(サイトに Private State Tokens API の使用を許可する)、block(サイトによる Private State Tokens API の使用をブロックする)のいずれか。
デフォルトは allow です。set() を呼び出す場合、プライマリ URL パターンは <all_urls> にする必要があります。セカンダリ URL は使用されません。
camera
サイトにカメラへのアクセスを許可するかどうか。allow(サイトにカメラへのアクセスを許可する)、block(サイトにカメラへのアクセスを許可しない)、ask(サイトがカメラへのアクセスを求めたときに確認する)のいずれか。デフォルトは ask です。プライマリ URL は、カメラへのアクセスをリクエストしたドキュメントの URL です。セカンダリ URL は使用されません。注: 両方のパターンが「<all_urls>」の場合、「allow」設定は無効です。
clipboard
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 です。2 つ目の URL は画像の URL です。
javascript
JavaScript を実行するかどうか。allow(JavaScript を実行する)、block(JavaScript を実行しない)のいずれか。デフォルトは allow です。プライマリ URL は、トップレベル フレームの URL です。セカンダリ URL は使用されません。
location
位置情報を許可するかどうか。allow: サイトに現在地の追跡を許可する、block: サイトに現在地の追跡を許可しない、ask: サイトに現在地の追跡を許可する前に確認する、のいずれかです。デフォルトは ask です。プライマリ URL は、位置情報をリクエストしたドキュメントの URL です。セカンダリ URL は、最上位フレームの URL です(リクエスト URL とは異なる場合があります)。
microphone
サイトにマイクへのアクセスを許可するかどうか。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() への呼び出しは無視されます。