chrome.types

説明

chrome.types API には、Chrome の型宣言が含まれています。

Chromeの設定

ChromeSetting 型は、Chrome ブラウザの設定用のイベント パブリッシャー(onChange)だけでなく、共通の関数セット(get()set()clear())も提供します。プロキシ設定の例では、これらの関数の使用方法を示しています。

スコープとライフサイクル

Chrome では、ブラウザ設定のスコープが次の 3 つに区別されます。

regular
regular スコープで設定された設定は、通常のブラウザ ウィンドウに適用され、上書きされない場合はシークレット ウィンドウに継承されます。これらの設定はディスクに保存され、管理拡張機能によってクリアされるか、管理拡張機能が無効化またはアンインストールされるまでそのまま残ります。
incognito_persistent
incognito_persistent スコープで設定された設定は、シークレット ウィンドウにのみ適用されます。これらの設定は regular 設定をオーバーライドします。これらの設定はディスクに保存され、管理拡張機能によってクリアされるか、管理拡張機能が無効化またはアンインストールされるまでそのまま残ります。
incognito_session_only
incognito_session_only スコープで設定された設定は、シークレット ウィンドウにのみ適用されます。これらの場合、regularincognito_persistent の設定がオーバーライドされます。これらの設定はディスクに保存されず、最後のシークレット ウィンドウが閉じられるとクリアされます。シークレット ウィンドウが 1 つ以上開いている場合にのみ設定できます。

優先度

Chrome は、さまざまなレイヤで設定を管理します。有効な設定に影響する可能性のあるレイヤを、優先順位の高い順に示します。

  1. オペレーティング システムによって提供されるシステム設定
  2. コマンドライン パラメータ
  3. 拡張機能によって提供される設定
  4. ポリシー

このリストが示すように、ポリシーは拡張機能で指定した変更よりも優先される場合があります。get() 関数を使用すると、拡張機能が設定を提供できるかどうか、またはこの設定がオーバーライドされるかどうかを判断できます。

前述のとおり、Chrome では通常のウィンドウとシークレット ウィンドウで異なる設定を使用できます。次の例は、この動作を示しています。ポリシーが設定をオーバーライドせず、拡張機能が通常のウィンドウ (R)の設定とシークレット ウィンドウ (I)の設定を行えるものとします。

  • (R) のみが設定されている場合、これらの設定は通常のウィンドウとシークレット ウィンドウの両方に有効です。
  • (I) のみが設定されている場合、これらの設定はシークレット ウィンドウにのみ適用されます。通常のウィンドウでは、下位レイヤ(コマンドライン オプションとシステム設定)で決定された設定が使用されます。
  • (R)(I) の両方が設定されている場合、それぞれの設定が通常のウィンドウとシークレット ウィンドウで使用されます。

2 つ以上の拡張機能が同じ設定に異なる値を設定しようとした場合、最後にインストールされた拡張機能が他の拡張機能よりも優先されます。最近インストールされた拡張機能が (I) のみを設定している場合、通常のウィンドウの設定は以前にインストールされた拡張機能で定義できます。

設定の有効な値は、優先順位ルールを考慮した結果の値です。Chrome で使用されます。

ChromeSetting

Chrome ブラウザの設定にアクセスできるインターフェース。例については、accessibilityFeatures をご覧ください。

プロパティ

  • onChange

    Event<functionvoidvoid>

    設定の変更後に発生します。

    onChange.addListener 関数は次のようになります。

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

    • callback

      関数

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

      (details: object) => void

      • 詳細

        オブジェクト

        • incognitoSpecific

          ブール値(省略可)

          変更された値がシークレット セッションに固有かどうか。このプロパティは、ユーザーがシークレット モードで拡張機能を有効にしている場合にのみ存在します。

        • levelOfControl

          設定の制御レベル。

        • T

          変更後の設定の値。

  • クリア

    void

    設定をクリアし、デフォルト値を復元します。

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

    (details: object) => {...}

    • 詳細

      オブジェクト

      クリアする設定。

      • スコープ

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

    • 戻り値

      Promise<void>

      Chrome 96 以降
  • get

    void

    設定の値を取得します。

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

    (details: object) => {...}

    • 詳細

      オブジェクト

      考慮すべき設定。

      • シークレット

        ブール値(省略可)

        シークレット セッションに適用される値を返すかどうか(デフォルトは false)。

    • 戻り値

      Promise<object>

      Chrome 96 以降
  • set

    void

    設定の値を設定します。

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

    (details: object) => {...}

    • 詳細

      オブジェクト

      変更する設定。

      • スコープ

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

      • T

        設定の値。各設定には特定の値の型があり、設定とともに説明されています。拡張機能で異なる型の値を設定することはできません

    • 戻り値

      Promise<void>

      Chrome 96 以降

ChromeSettingScope

Chrome 44 以降

ChromeSetting のスコープ。次のいずれか 1 つ:

  • regular: 通常のプロファイルの設定(他の場所でオーバーライドされていない場合、シークレット プロファイルに継承されます)。
  • regular\_only: 通常のプロファイルのみの設定(シークレット プロファイルには継承されない)、
  • incognito\_persistent: ブラウザの再起動後も維持されるシークレット プロファイルの設定(通常の基本設定をオーバーライドします)。
  • incognito\_session\_only: シークレット モード セッション中にのみ設定でき、シークレット モード セッションが終了すると削除されるシークレット モード プロファイルの設定(通常の優先設定と incognito_persistent 優先設定をオーバーライドします)。

列挙型

"regular"

"regular_only"

"incognito_persistent"

"incognito_session_only"

LevelOfControl

Chrome 44 以降

次のいずれか 1 つ:

  • not\_controllable: 拡張機能で制御できない
  • controlled\_by\_other\_extensions: 優先順位の高い拡張機能によって制御される
  • controllable\_by\_this\_extension: この拡張機能で制御できる
  • controlled\_by\_this\_extension: この拡張機能によって制御される

列挙型

"not_controllable"

"controlled_by_other_extensions"

"controllable_by_this_extension"

"controlled_by_this_extension"