chrome.privacy

說明

使用 chrome.privacy API 控管 Chrome 中可能影響使用者隱私權的功能。這個 API 會使用 API 類型的 ChromeSetting 原型,用於取得及設定 Chrome 的設定。

權限

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 存放區安裝隱私權 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

    如果啟用這項功能,Chrome 會在安全瀏覽功能封鎖網頁時傳送額外資訊給 Google,例如封鎖的網頁內容。這個偏好設定的值為布林值,預設為 false

  • searchSuggestEnabled

    啟用這項功能後,Chrome 會將你在網址列輸入的文字傳送至預設搜尋引擎,讓你在輸入內容時,系統能提供可能符合條件的網站和搜尋結果。這個偏好設定的值為布林值,預設為 true

  • spellingServiceEnabled

    啟用後,Chrome 會使用網路服務協助更正拼字錯誤。這個偏好設定的值為布林值,預設為 false

  • translationServiceEnabled

    啟用這項功能後,Chrome 會詢問是否要翻譯非你慣用語言的網頁。這個偏好設定的值為布林值,預設為 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

    如果啟用,Chrome 會在網站要求時傳送稽核 ping (<a ping>)。此偏好設定的值為布林值型,預設值為 true

  • protectedContentEnabled

    僅適用於 Windows 和 ChromeOS:啟用後,Chrome 會為外掛程式提供專屬 ID,以便執行受保護的內容。這個偏好設定的值為布林值類型,預設值為 true

  • referrersEnabled

    啟用後,Chrome 會在要求中傳送 referer 標頭。是的,這個偏好設定的名稱與拼錯的標頭不符。不會,我們不會變更。這個偏好設定的值為布林值類型,預設值為 true

  • relatedWebsiteSetsEnabled
    Chrome 121 以上版本

    如果停用,系統會停用相關網站集。這個偏好設定的值為布林值類型,預設值為 true。擴充功能只能將值設為 false,才能停用此 API。如果您嘗試將此 API 設為 true,系統會擲回錯誤。

  • thirdPartyCookiesAllowed

    如果停用,Chrome 會禁止第三方網站設定 Cookie。這個偏好設定的值為布林值類型,預設值為 true

    **注意:**如果個別網站有有效的豁免權,或改用 Storage Access API,則在這個 API 傳回 false 時,仍可存取第三方 Cookie。

  • topicsEnabled
    Chrome 111 以上版本

    如果停用,Topics API 就會停用。這個偏好設定的值為布林值型別,預設值為 true。擴充功能只能將值設為 false 來停用此 API。如果您嘗試將此 API 設為 true,系統會擲回錯誤。