説明
chrome.privacy
API を使用すると、ユーザーのプライバシーに影響する可能性がある Chrome の機能の使用を制御できます。この API は、Chrome の設定を取得して設定するために、API タイプの ChromeSetting プロトタイプを使用します。
権限
privacy
この API を使用するには、拡張機能のマニフェストで「プライバシー」権限を宣言する必要があります。次に例を示します。
{
"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 リポジトリから privacy API の例をインストールします。
型
IPHandlingPolicy
WebRTC の IP 取り扱いポリシー。
列挙型
"default"
"default_public_and_private_interfaces"
"default_public_interface_only"
"disable_non_proxied_udp"
プロパティ
network
Chrome によるネットワーク接続の処理全般に影響する設定。
タイプ
オブジェクト
プロパティ
-
networkPredictionEnabled
types.ChromeSetting<boolean>
この機能を有効にすると、DNS エントリの事前解決と、サーバーへの TCP 接続と SSL 接続の事前開設により、ウェブブラウジングの速度を向上させようとします。この設定は、Chrome の内部予測サービスによって実行されるアクションにのみ影響します。ウェブページで開始されたプリフェッチやプリコネクトには影響しません。この設定の値はブール値で、デフォルトは
true
です。 -
webRTCIPHandlingPolicyChrome 48 以降
ユーザーがメディアのパフォーマンスとプライバシーのトレードオフを指定できるようにします。この設定は、WebRTC トラフィックのルーティング方法とローカル アドレス情報の公開範囲に影響します。この設定の値の型は IPHandlingPolicy で、デフォルトは
default
です。
services
Google とデフォルトの検索プロバイダが提供するサードパーティ ネットワーク サービスが必要な機能を有効または無効にする設定。
タイプ
オブジェクト
プロパティ
-
alternateErrorPagesEnabled
types.ChromeSetting<boolean>
有効にすると、Chrome はウェブサービスを使用してナビゲーション エラーの解決を支援します。この設定の値はブール値で、デフォルトは
true
です。 -
autofillAddressEnabled
types.ChromeSetting<boolean>
Chrome 70 以降有効にすると、Chrome は住所などのフォームデータを自動的に入力できます。この設定の値はブール値で、デフォルトは
true
です。 -
autofillCreditCardEnabled
types.ChromeSetting<boolean>
Chrome 70 以降有効にすると、Chrome はクレジット カードのフォームを自動的に入力します。この設定の値はブール値で、デフォルトは
true
です。 -
autofillEnabled
types.ChromeSetting<boolean>
Chrome 70 で非推奨privacy.services.autofillAddressEnabled と privacy.services.autofillCreditCardEnabled を使用してください。これは、このリリースでは下位互換性のために残されていますが、今後削除される予定です。
有効にすると、Chrome はフォームの自動入力を提案します。この設定の値はブール値で、デフォルトは
true
です。 -
passwordSavingEnabled
types.ChromeSetting<boolean>
有効になっている場合、パスワード マネージャーはパスワードを保存するかどうかを尋ねます。この設定の値はブール値で、デフォルトは
true
です。 -
safeBrowsingEnabled
types.ChromeSetting<boolean>
有効にすると、Chrome はフィッシングとマルウェアからユーザーを保護するために最善を尽くします。この設定の値はブール値で、デフォルトは
true
です。 -
safeBrowsingExtendedReportingEnabled
types.ChromeSetting<boolean>
有効にすると、セーフ ブラウジングがページをブロックしたときに、ブロックされたページのコンテンツなどの追加情報が Google に送信されます。この設定の値はブール値で、デフォルトは
false
です。 -
searchSuggestEnabled
types.ChromeSetting<boolean>
有効にすると、アドレスバーに入力したテキストが既定の検索エンジンに送信され、入力した内容の予測として、ウェブサイトや検索語句が表示されます。この設定の値はブール値で、デフォルトは
true
です。 -
spellingServiceEnabled
types.ChromeSetting<boolean>
有効にすると、Chrome はスペルミスの修正にウェブサービスを使用します。この設定の値はブール値で、デフォルトは
false
です。 -
translationServiceEnabled
types.ChromeSetting<boolean>
この機能が有効になっていると、母国語以外のページで翻訳ツールが表示されます。この設定の値はブール値で、デフォルトは
true
です。
websites
Chrome がウェブサイトに提供する情報を決定する設定。
タイプ
オブジェクト
プロパティ
-
adMeasurementEnabled
types.ChromeSetting<boolean>
Chrome 111 以降無効にすると、Attribution Reporting API と Private Aggregation API が無効になります。この設定の値の型はブール値で、デフォルト値は
true
です。拡張機能でこれらの API を無効にできるのは、値をfalse
に設定した場合のみです。これらの API をtrue
に設定しようとすると、エラーがスローされます。 -
doNotTrackEnabled
types.ChromeSetting<boolean>
Chrome 65 以降有効にすると、Chrome はリクエストに「Do Not Track」(
DNT: 1
)ヘッダーを送信します。この設定の値の型はブール値で、デフォルト値はfalse
です。 -
fledgeEnabled
types.ChromeSetting<boolean>
Chrome 111 以降無効にすると、Fledge API が無効になります。この設定の値の型はブール値で、デフォルト値は
true
です。拡張機能でこの API を無効にできるのは、値をfalse
に設定した場合のみです。この API をtrue
に設定しようとすると、エラーがスローされます。 -
hyperlinkAuditingEnabled
types.ChromeSetting<boolean>
有効にすると、ウェブサイトからリクエストされたときに Chrome が監査ピングを送信します(
<a ping>
)。この設定の値はブール値で、デフォルト値はtrue
です。 -
protectedContentEnabled
types.ChromeSetting<boolean>
Windows と ChromeOS でのみ利用可能: 有効にすると、Chrome は保護されたコンテンツを実行するためにプラグインに固有の ID を提供します。この設定の値の型はブール値で、デフォルト値は
true
です。 -
referrersEnabled
types.ChromeSetting<boolean>
有効にすると、Chrome はリクエストに
referer
ヘッダーを送信します。はい。この設定の名前は、スペルミスのあるヘッダーと一致しません。いいえ、変更する予定はありません。この設定の値の型はブール値で、デフォルト値はtrue
です。 -
types.ChromeSetting<boolean>
Chrome 121 以降無効にすると、関連ウェブサイト セットが無効になります。この設定の値の型はブール値で、デフォルト値は
true
です。拡張機能でこの API を無効にできるのは、値をfalse
に設定した場合のみです。この API をtrue
に設定しようとすると、エラーがスローされます。 -
thirdPartyCookiesAllowed
types.ChromeSetting<boolean>
無効にすると、サードパーティのサイトによる Cookie の設定がブロックされます。この設定の値の型はブール値で、デフォルト値は
true
です。**注:**有効な除外が適用されている場合や、代わりに Storage Access API を使用している場合、この API が
false
を返しても、個々のサイトはサードパーティ Cookie にアクセスできる場合があります。 -
topicsEnabled
types.ChromeSetting<boolean>
Chrome 111 以降無効にすると、Topics API が無効になります。この設定の値の型はブール値で、デフォルト値は
true
です。拡張機能でこの API を無効にできるのは、値をfalse
に設定した場合のみです。この API をtrue
に設定しようとすると、エラーがスローされます。