chrome.privacy

説明

chrome.privacy API を使用すると、ユーザーのプライバシーに影響する可能性のある Chrome の機能の使用を制御できます。この API は、Chrome の構成の取得と設定に type API の ChromeSetting プロトタイプを使用します。

権限

privacy

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

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

コンセプトと使用方法

Chrome の設定の現在の値を読み取るのは簡単です。まず、目的のプロパティを見つけ、そのオブジェクトで get() を呼び出して、現在の値と拡張機能の制御レベルを取得します。たとえば、Chrome のクレジット カード自動入力機能が有効になっているかどうかを確認するには、次のように記述します。

chrome.privacy.services.autofillCreditCardEnabled.get({}, function(details) {
  if (details.value) {
    console.log('Autofill is on!');
  } else {
    console.log('Autofill is off!');
  }
});

設定の値を変更するには、まず拡張機能がその設定を制御できることを確認する必要があるため、少し複雑になります。拡張機能が、エンタープライズ ポリシーによって特定の値にロックされている設定(levelOfControl が「not_controllable」に設定されている)を切り替える場合、または別の拡張機能が値を制御している場合(levelOfControl が「controlled_by_other_extensions」に設定されている)、ユーザーの設定には変更が反映されません。set() 呼び出しは成功しますが、設定はすぐにオーバーライドされます。ユーザーが混乱する可能性があるため、選択した設定が実際には適用されない場合は、ユーザーに警告することをおすすめします。

つまり、get() メソッドを使用してアクセスレベルを判断し、拡張機能が設定の制御を取得できる場合にのみ set() を呼び出す必要があります(実際、拡張機能が設定を制御できない場合は、ユーザーの混乱を減らすために機能を視覚的に無効にすることをおすすめします)。

chrome.privacy.services.autofillCreditCardEnabled.get({}, function(details) {
  if (details.levelOfControl === 'controllable_by_this_extension') {
    chrome.privacy.services.autofillCreditCardEnabled.set({ value: true }, function() {
      if (chrome.runtime.lastError === undefined) {
        console.log("Hooray, it worked!");
      } else {
        console.log("Sadness!", chrome.runtime.lastError);
      }
    });
  }
});

設定の値の変更に関心がある場合は、その onChange イベントにリスナーを追加します。この機能を使用すると、最近インストールされた拡張機能が設定を制御している場合や、エンタープライズ ポリシーによって制御がオーバーライドされている場合に、ユーザーに警告を表示できます。クレジットカードの自動入力ステータスの変更をリッスンするには、たとえば次のコードで十分です。

chrome.privacy.services.autofillCreditCardEnabled.onChange.addListener(
  function (details) {
    // The new value is stored in `details.value`, the new level of control
    // in `details.levelOfControl`, and `details.incognitoSpecific` will be
    // `true` if the value is specific to Incognito mode.
  }
);

この API を試すには、chrome-extension-samples リポジトリからプライバシー API のサンプルをインストールします。

IPHandlingPolicy

Chrome 48 以降

WebRTC の IP 取り扱いポリシー。

列挙型

"default"

"default_public_and_private_interfaces"

"default_public_interface_only"

"disable_non_proxied_udp"

プロパティ

network

Chrome のネットワーク接続の処理全般に影響する設定。

タイプ

オブジェクト

プロパティ

  • networkPredictionEnabled

    有効にすると、Chrome は DNS エントリを事前に解決し、サーバーへの TCP 接続と SSL 接続を事前に開くことで、ウェブ ブラウジングの速度を向上させようとします。この設定は、Chrome の内部予測サービスによって行われるアクションにのみ影響します。ウェブページから開始されたプリフェッチやプリコネクトには影響しません。この設定の値はブール値で、デフォルトは true です。

  • webRTCIPHandlingPolicy
    Chrome 48 以降

    ユーザーがメディアのパフォーマンスとプライバシーのトレードオフを指定できるようにします。これにより、WebRTC トラフィックのルーティング方法と、ローカル アドレス情報の公開量が決まります。この設定の値は IPHandlingPolicy 型で、デフォルトは default です。

services

Google とデフォルトの検索プロバイダが提供するサードパーティのネットワーク サービスを必要とする機能を有効または無効にする設定。

タイプ

オブジェクト

プロパティ

  • alternateErrorPagesEnabled

    有効にすると、Chrome はウェブサービスを使用してナビゲーション エラーの解決を支援します。この設定の値はブール値で、デフォルトは true です。

  • autofillAddressEnabled
    Chrome 70 以降

    有効にすると、Chrome で住所などのフォームデータを自動的に入力できます。この設定の値はブール値で、デフォルトは true です。

  • autofillCreditCardEnabled
    Chrome 70 以降

    有効にすると、Chrome でクレジットカードのフォームへの自動入力が提案されます。この設定の値はブール値で、デフォルトは true です。

  • autofillEnabled
    Chrome 70 以降でサポートが終了したポリシー

    privacy.services.autofillAddressEnabled と privacy.services.autofillCreditCardEnabled を使用してください。これは、このリリースでの下位互換性を維持するためのもので、今後削除される予定です。

    有効にすると、Chrome でフォームへの自動入力が提案されます。この設定の値はブール値で、デフォルトは true です。

  • passwordSavingEnabled

    有効になっている場合、パスワード マネージャーでパスワードを保存するかどうかを尋ねるメッセージが表示されます。この設定の値はブール値で、デフォルトは true です。

  • safeBrowsingEnabled

    有効にすると、Chrome はフィッシングやマルウェアからユーザーを保護するために最善を尽くします。この設定の値はブール値で、デフォルトは true です。

  • safeBrowsingExtendedReportingEnabled

    この設定を有効にすると、セーフ ブラウジングでページがブロックされたときに、ブロックされたページのコンテンツなどの追加情報が Google に送信されます。この設定の値はブール値で、デフォルトは false です。

  • searchSuggestEnabled

    この設定を有効にすると、アドレスバーに入力したテキストが Chrome から既定の検索エンジンに送信され、入力した内容から予測されるウェブサイトや検索候補が表示されます。この設定の値はブール値で、デフォルトは true です。

  • spellingServiceEnabled

    有効にすると、Chrome はウェブサービスを使用してスペルミスを修正します。この設定の値はブール値で、デフォルトは false です。

  • translationServiceEnabled

    この機能を有効にすると、母国語以外の言語で書かれたページが表示された場合に、翻訳ツールが表示されます。この設定の値はブール値で、デフォルトは true です。

websites

Chrome がウェブサイトに提供する情報を決定する設定。

タイプ

オブジェクト

プロパティ

  • adMeasurementEnabled
    Chrome 111 以降

    無効にすると、Attribution Reporting APIPrivate Aggregation API が無効になります。この設定の値はブール型で、デフォルト値は true です。拡張機能は、値を false に設定することによってのみ、これらの API を無効にできます。これらの API を true に設定しようとすると、エラーがスローされます。

  • doNotTrackEnabled
    Chrome 65 以降

    有効にすると、Chrome はリクエストとともに「トラッキング拒否」(DNT: 1)ヘッダーを送信します。この設定の値はブール型で、デフォルト値は false です。

  • fledgeEnabled
    Chrome 111+

    無効にすると、Fledge API が無効になります。この設定の値はブール型で、デフォルト値は true です。拡張機能は、値を false に設定することでのみ、この API を無効にできます。この API を true に設定しようとすると、エラーがスローされます。

  • hyperlinkAuditingEnabled

    有効にすると、ウェブサイトからリクエストがあった場合(<a ping>)、Chrome は監査ピングを送信します。この設定の値はブール型で、デフォルト値は true です。

  • protectedContentEnabled

    Windows と ChromeOS でのみ利用可能: 有効にすると、保護されたコンテンツを実行するために、Chrome がプラグインに固有の ID を提供します。この設定の値はブール型で、デフォルト値は true です。

  • referrersEnabled

    有効にすると、Chrome はリクエストとともに referer ヘッダーを送信します。はい。この設定の名前は、スペルミスのあるヘッダーと一致しません。いいえ、変更する予定はありません。この設定の値はブール型で、デフォルト値は true です。

  • relatedWebsiteSetsEnabled
    Chrome 121 以降

    無効にすると、関連ウェブサイト セットが無効になります。この設定の値はブール型で、デフォルト値は true です。拡張機能は、値を false に設定することでのみ、この API を無効にできます。この API を true に設定しようとすると、エラーがスローされます。

  • thirdPartyCookiesAllowed

    無効にすると、Chrome はサードパーティ サイトによる Cookie の設定をブロックします。この設定の値はブール型で、デフォルト値は true です。拡張機能は、シークレット モードでこの API を有効にすることはできません。シークレット モードでは、サードパーティ Cookie はブロックされ、サイトレベルでのみ許可できます。シークレット モードでこの API を true に設定しようとすると、エラーがスローされます。

    注: この API が false を返す場合でも、個々のサイトが有効な例外を持っているか、代わりに Storage Access API を使用している場合は、サードパーティ Cookie にアクセスできる可能性があります。

  • topicsEnabled
    Chrome 111+

    無効にすると、Topics API が無効になります。この設定の値はブール型で、デフォルト値は true です。拡張機能は、値を false に設定することでのみ、この API を無効にできます。この API を true に設定しようとすると、エラーがスローされます。