説明
chrome.privacy API を使用すると、ユーザーのプライバシーに影響する可能性のある Chrome の機能の使用を制御できます。この API は、Chrome の構成を取得して設定するために、API 型の ChromeSetting プロトタイプに依存しています。
権限
privacyマニフェスト
API を使用するには、拡張機能の マニフェストで「privacy」権限を宣言する必要があります。次に例を示します。
{
"name": "My extension",
...
"permissions": [
"privacy"
],
...
}
用途
Chrome 設定の現在の値の読み取りは簡単です。まず、目的の
プロパティを見つけてから、そのオブジェクトで get() を呼び出して、現在の
値と拡張機能の制御レベルを取得します。たとえば、Chrome の自動入力
機能が有効になっているかどうかを確認するには、次のように記述します。
chrome.privacy.services.autofillEnabled.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.autofillEnabled.get({}, function(details) {
if (details.levelOfControl === 'controllable_by_this_extension') {
chrome.privacy.services.autofillEnabled.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.autofillEnabled.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 を試すには、プライバシー API のサンプルを chrome-extension-samples リポジトリからインストールします。
型
IPHandlingPolicy
WebRTC の IP 取り扱いポリシー。
列挙型
"default"
"default_public_and_private_interfaces"
"default_public_interface_only"
"disable_non_proxied_udp"
プロパティ
network
Chrome のネットワーク接続の処理全般に影響する設定。
タイプ
オブジェクト
プロパティ
-
networkPredictionEnabled
types.ChromeSetting<boolean>
有効にすると、Chrome は 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です。 -
autofillOtherDatatypesEnabled
types.ChromeSetting<boolean>
保留中有効にすると、Chrome は他のデータ型の自動入力を提案します。これには、旅行書類や身分証明書が含まれます。この設定の値はブール値で、デフォルトは
trueです。 -
passwordSavingEnabled
types.ChromeSetting<boolean>
有効にすると、パスワード マネージャーでパスワードを保存するかどうかを確認するメッセージが表示されます。この設定の値はブール値で、デフォルトは
trueです。 -
safeBrowsingEnabled
types.ChromeSetting<boolean>
有効にすると、Chrome はフィッシングとマルウェアからユーザーを保護するために最善を尽くします。この設定の値はブール値で、デフォルトは
trueです。 -
safeBrowsingExtendedReportingEnabled
types.ChromeSetting<boolean>
有効にすると、SafeBrowsing がページをブロックしたときに、ブロックされたページの内容など、追加情報が Google に送信されます。この設定の値はブール値で、デフォルトは
falseです。 -
searchSuggestEnabled
types.ChromeSetting<boolean>
有効にすると、アドレスバーに入力したテキストがデフォルトの検索エンジンに送信されます。検索エンジンは、入力した内容を補完する可能性の高いウェブサイトや検索の予測を提供します。この設定の値はブール値で、デフォルトは
trueです。 -
spellingServiceEnabled
types.ChromeSetting<boolean>
有効にすると、Chrome はウェブ サービスを使用してスペルミスを修正します。この設定の値はブール値で、デフォルトは
falseです。 -
translationServiceEnabled
types.ChromeSetting<boolean>
有効にすると、Chrome は読めない言語のページを翻訳することを提案します。この設定の値はブール値で、デフォルトは
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 はリクエストとともに [トラッキング拒否] (
DNT: 1) ヘッダーを送信します。この設定の値はブール値で、デフォルト値はfalseです。 -
fledgeEnabled
types.ChromeSetting<boolean>
Chrome 111 以降無効にすると、Fledge API が無効になります。この設定の値はブール値で、デフォルト値は
trueです。拡張機能でこの API を無効にするには、値をfalseに設定します。この API をtrueに設定しようとすると、エラーがスローされます。 -
hyperlinkAuditingEnabled
types.ChromeSetting<boolean>
有効にすると、ウェブサイト(
<a ping>)からリクエストされたときに、Chrome は監査 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>
無効にすると、Chrome はサードパーティ サイトによる Cookie の設定をブロックします。この設定の値はブール値で、デフォルト値は
trueです。拡張機能では、シークレット モードでこの API を有効にすることはできません。シークレット モードでは、サードパーティ Cookie はブロックされ、サイトレベルでのみ許可できます。シークレット モードでこの API を true に設定しようとすると、エラーがスローされます。注: この API が
falseを返した場合でも、個々のサイトは有効な 例外 がある場合や、Storage Access API を使用している場合は、サードパーティ Cookie にアクセスできる可能性があります。 -
topicsEnabled
types.ChromeSetting<boolean>
Chrome 111 以降無効にすると、Topics API が無効になります。この設定の値はブール値で、デフォルト値は
trueです。拡張機能でこの API を無効にするには、値をfalseに設定します。この API をtrueに設定しようとすると、エラーがスローされます。