説明
chrome.types
API には Chrome のタイプ宣言が含まれています。
Chromeの設定
ChromeSetting
タイプには、一般的な関数セット(get()
、set()
、clear()
)と、Chrome ブラウザの設定用のイベント パブリッシャー(onChange
)が用意されています。プロキシ設定の例では、これらの関数がどのように使用されるかを示しています。
スコープとライフサイクル
Chrome では、ブラウザ設定に次の 3 つのスコープが区別されます。
regular
regular
スコープで設定された設定は、通常のブラウザ ウィンドウに適用され、上書きされなければシークレット ウィンドウに継承されます。これらの設定はディスクに保存され、管理拡張機能によってクリアされるか、管理拡張機能を無効にするかアンインストールされるまで維持されます。incognito_persistent
incognito_persistent
スコープに設定された設定は、シークレット ウィンドウにのみ適用されます。これらについては、regular
設定をオーバーライドします。これらの設定はディスクに保存され、管理拡張機能によって消去されるか、管理拡張機能を無効にするかアンインストールされるまで維持されます。incognito_session_only
incognito_session_only
スコープに設定された設定は、シークレット ウィンドウにのみ適用されます。これらについては、regular
とincognito_persistent
の設定をオーバーライドします。これらの設定はディスクには保存されず、最後のシークレット ウィンドウを閉じると消去されます。シークレット ウィンドウを 1 つ以上開いている場合にのみ設定できます。
優先順位
Chrome はさまざまなレイヤで設定を管理します。次のリストは、有効な設定に影響を与える可能性のあるレイヤについて、優先順位の高い順に記載しています。
- オペレーティング システムのシステム設定
- コマンドライン パラメータ
- 拡張機能によって提供される設定
- ポリシー
リストが示すように、拡張機能に指定した変更はポリシーによって無効にされる可能性があります。get()
関数を使用して、拡張機能で設定を提供できるかどうか、またはこの設定をオーバーライドするかどうかを決定できます。
前述のように、Chrome では通常のウィンドウとシークレット ウィンドウで異なる設定を使用できます。次の例は、その動作を示しています。設定をオーバーライドするポリシーがなく、拡張機能で通常のウィンドウ(R)(R)とシークレット ウィンドウの設定(R)を設定できるものとします。
- (R)のみが設定されている場合、その設定は通常のウィンドウとシークレット ウィンドウの両方に対して有効になります。
- (I)のみが設定されている場合、これらの設定はシークレット ウィンドウに対してのみ有効になります。通常のウィンドウは、下位レイヤで決定される設定(コマンドライン オプションとシステム設定)を使用します。
- (R)と(I)の両方が設定されている場合、通常のウィンドウとシークレット ウィンドウにそれぞれの設定が使用されます。
複数の拡張機能で同じ設定が異なる値を設定する場合は、最後にインストールされた拡張機能が他の拡張機能よりも優先されます。最後にインストールした拡張機能で(I)のみが設定されている場合、通常のウィンドウの設定は、以前インストールした拡張機能で定義できます。
設定の「有効」値は、優先順位ルールを考慮した結果として得られる値です。Chrome で使用されます。
型
ChromeSetting
Chrome ブラウザの設定にアクセスするためのインターフェース。例については、accessibilityFeatures
をご覧ください。
プロパティ
-
onChange
イベント<functionvoidvoid>
設定の変更後に呼び出されます。
onChange.addListener
関数は次のようになります。(callback: function) => {...}
-
callback
機能
callback
パラメータは次のようになります。(details: object) => void
-
詳細
オブジェクト
-
incognitoSpecific
ブール値(省略可)
変更された値がシークレット セッションに固有のものかどうかを示します。このプロパティは、ユーザーがシークレット モードで拡張機能を有効にした場合にのみ存在します。
-
levelOfControl
設定の制御レベル。
-
value
T
変更後の設定の値。
-
-
-
-
消去
void
Promise設定を消去し、デフォルト値に戻します。
clear
関数は次のようになります。(details: object, callback?: function) => {...}
-
詳細
オブジェクト
どの設定を消去するか。
-
スコープ
設定をクリアする場所(デフォルト: 標準)。
-
-
callback
関数(省略可)
callback
パラメータは次のようになります。() => void
-
戻り値
Promise<void>
Chrome 96 以降Promise は Manifest V3 以降でサポートされていますが、コールバックは下位互換性のために提供されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されたのと同じ型で解決されます。
-
-
get
void
Promise設定の値を取得します。
get
関数は次のようになります。(details: object, callback?: function) => {...}
-
詳細
オブジェクト
考慮すべき設定。
-
シークレット モード
ブール値(省略可)
シークレット セッションに適用される値を返すかどうか(デフォルトは false)。
-
-
callback
関数(省略可)
callback
パラメータは次のようになります。(details: object) => void
-
詳細
オブジェクト
現在有効な値の詳細。
-
incognitoSpecific
ブール値(省略可)
有効な値がシークレット セッションに固有のものであるかどうかを示します。このプロパティは、
get()
のdetails
パラメータのincognito
プロパティが true の場合にのみ存在します。 -
levelOfControl
設定の制御レベル。
-
value
T
設定の値。
-
-
-
戻り値
Promise<object>
Chrome 96 以降Promise は Manifest V3 以降でサポートされていますが、コールバックは下位互換性のために提供されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されたのと同じ型で解決されます。
-
-
set
void
Promise設定の値を設定します。
set
関数は次のようになります。(details: object, callback?: function) => {...}
-
詳細
オブジェクト
変更する設定。
-
スコープ
設定を行う場所(デフォルト: 標準)。
-
value
T
設定の値。どの設定にも、値の種類があります。値の種類については、設定とともに説明します。拡張機能に別の型の値を設定しないでください。
-
-
callback
関数(省略可)
callback
パラメータは次のようになります。() => void
-
戻り値
Promise<void>
Chrome 96 以降Promise は Manifest V3 以降でサポートされていますが、コールバックは下位互換性のために提供されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されたのと同じ型で解決されます。
-
ChromeSettingScope
ChromeSetting のスコープ。次のいずれか 1 つ:
regular
: 通常のプロファイルの設定(他の場所でオーバーライドされていなければ、シークレット プロファイルに継承されます)。regular\_only
: 通常のプロファイルのみの設定(シークレット プロファイルに継承されない)。incognito\_persistent
: ブラウザの再起動後も保持される(通常の設定をオーバーライドする)シークレット プロファイルの設定incognito\_session\_only
: シークレット プロファイルの設定。シークレット モードのセッション中にのみ設定でき、シークレット モードのセッションが終了すると削除されます(通常の設定と シークレット モードの永続性の設定をオーバーライドします)。
Enum
"regular_only"
LevelOfControl
次のいずれか 1 つ:
not\_controllable
: どの拡張機能でも制御できないcontrolled\_by\_other\_extensions
: 優先度の高い拡張機能によって制御されます。controllable\_by\_this\_extension
: この拡張機能で制御できます。controlled\_by\_this\_extension
: この拡張機能によって制御されます
Enum
"not_controllable"
"controllable_by_this_extension"
"controlled_by_this_extension"