說明
使用 chrome.privacy API 控管 Chrome 中可能影響使用者隱私權的功能。這個 API 依賴 ChromeSetting 原型 (屬於 type API) 來取得及設定 Chrome 的設定。
權限
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 存放區安裝 Privacy API 範例。
類型
IPHandlingPolicy
WebRTC 的 IP 處理政策。
列舉
「default」 
 
「default_public_and_private_interfaces」"default_public_and_private_interfaces"
「default_public_interface_only」"default_public_interface_only"
「disable_non_proxied_udp」"disable_non_proxied_udp"
屬性
network
影響 Chrome 一般網路連線處理方式的設定。
類型
物件
屬性
- 
    networkPredictionEnabledtypes.ChromeSetting<boolean> 啟用這項設定後,Chrome 會嘗試預先解析 DNS 項目,並預先開啟與伺服器的 TCP 和 SSL 連線,藉此加快網頁瀏覽速度。這項偏好設定只會影響 Chrome 內部預測服務採取的動作。網頁啟動的預先擷取或預先連線作業不受影響。這項偏好的值為布林值,預設為 true。
- 
    webRTCIPHandlingPolicyChrome 48 以上版本允許使用者指定媒體效能/隱私權取捨,這會影響 WebRTC 流量的路由方式,以及公開的本機位址資訊量。這項偏好的值為 IPHandlingPolicy 類型,預設為 default。
services
啟用或停用需要 Google 和預設搜尋引擎提供的第三方網路服務的功能。
類型
物件
屬性
- 
    alternateErrorPagesEnabledtypes.ChromeSetting<boolean> 如果啟用這項設定,Chrome 會使用網路服務來協助解決瀏覽錯誤。這項偏好的值為布林值,預設為 true。
- 
    autofillAddressEnabledtypes.ChromeSetting<boolean> Chrome 70 以上版本啟用後,Chrome 會自動填入地址和其他表單資料。這項偏好的值為布林值,預設為 true。
- 
    autofillCreditCardEnabledtypes.ChromeSetting<boolean> Chrome 70 以上版本啟用後,Chrome 會自動填入信用卡表單。這項偏好的值為布林值,預設為 true。
- 
    autofillEnabledtypes.ChromeSetting<boolean> Chrome 70 版起已淘汰請使用 privacy.services.autofillAddressEnabled 和 privacy.services.autofillCreditCardEnabled。為了確保回溯相容性,這個項目仍會保留在本次發布版本中,但日後將會移除。 啟用後,Chrome 會自動填入表單。這項偏好的值為布林值,預設為 true。
- 
    passwordSavingEnabledtypes.ChromeSetting<boolean> 啟用這項設定後,密碼管理工具會詢問是否要儲存密碼。這項偏好的值為布林值,預設為 true。
- 
    safeBrowsingEnabledtypes.ChromeSetting<boolean> 啟用這項設定後,Chrome 會盡力保護您免於網路釣魚和惡意軟體的侵害。這項偏好的值為布林值,預設為 true。
- 
    safeBrowsingExtendedReportingEnabledtypes.ChromeSetting<boolean> 如果啟用這項設定,當安全瀏覽功能封鎖網頁時,Chrome 會將額外資訊 (例如遭封鎖網頁的內容) 傳送給 Google。這項偏好的值為布林值,預設為 false。
- 
    searchSuggestEnabledtypes.ChromeSetting<boolean> 啟用後,Chrome 會將您在網址列中輸入的文字傳送至預設搜尋引擎,預測您可能想搜尋的內容或造訪的網站。這項偏好的值為布林值,預設為 true。
- 
    spellingServiceEnabledtypes.ChromeSetting<boolean> 啟用後,Chrome 會使用網路服務協助修正拼字錯誤。這項偏好的值為布林值,預設為 false。
- 
    translationServiceEnabledtypes.ChromeSetting<boolean> 啟用後,Chrome 會詢問您是否要翻譯外文網站的內容。這項偏好的值為布林值,預設為 true。
websites
決定 Chrome 要向網站提供哪些資訊的設定。
類型
物件
屬性
- 
    adMeasurementEnabledtypes.ChromeSetting<boolean> Chrome 111 以上版本如果停用,系統會停用 Attribution Reporting API 和 Private Aggregation API。這項偏好的值為布林值,預設值為 true。擴充功能只能將值設為false,藉此停用這些 API。如果您嘗試將這些 API 設為true,系統會擲回錯誤。
- 
    doNotTrackEnabledtypes.ChromeSetting<boolean> Chrome 65 以上版本啟用後,Chrome 會在要求中傳送「請勿追蹤」( DNT: 1) 標題。這項偏好的值為布林值,預設值為false。
- 
    fledgeEnabledtypes.ChromeSetting<boolean> Chrome 111 以上版本如果停用,系統會停用 Fledge API。這項偏好的值為布林值,預設值為 true。擴充功能只能將值設為false,藉此停用這項 API。如果嘗試將這個 API 設為true,系統會擲回錯誤。
- 
    hyperlinkAuditingEnabledtypes.ChromeSetting<boolean> 如果啟用這項偏好設定,Chrome 會在網站要求時傳送稽核 Ping ( <a ping>)。這項偏好設定的值為布林值,預設值為true。
- 
    protectedContentEnabledtypes.ChromeSetting<boolean> 僅適用於 Windows 和 ChromeOS:啟用後,Chrome 會提供專屬 ID 給外掛程式,以便執行受保護的內容。這項偏好的值為布林值,預設值為 true。
- 
    referrersEnabledtypes.ChromeSetting<boolean> 啟用後,Chrome 會在要求中傳送 referer標頭。是,這項偏好設定的名稱與拼字錯誤的標頭不符。不會,我們不會變更。這項偏好的值為布林值,預設值為true。
- 
    types.ChromeSetting<boolean> Chrome 121 以上版本如果停用,系統會停用「相關網站集」。這項偏好的值為布林值,預設值為 true。擴充功能只能將值設為false來停用這個 API。如果嘗試將這個 API 設為true,系統會擲回錯誤。
- 
    thirdPartyCookiesAllowedtypes.ChromeSetting<boolean> 如果停用這項設定,Chrome 會禁止第三方網站設定 Cookie。這項偏好的值為布林值,預設值為 true。擴充功能可能無法在無痕模式下啟用這項 API,因為在無痕模式下,系統會封鎖第三方 Cookie,且只能在網站層級允許使用。如果您嘗試在無痕模式中將這個 API 設為 true,系統會擲回錯誤。注意:如果個別網站有有效的豁免,或改用 Storage Access API,即使這個 API 傳回 false,網站仍可存取第三方 Cookie。
- 
    topicsEnabledtypes.ChromeSetting<boolean> Chrome 111 以上版本如果停用,Topics API 就會停用。這項偏好的值為布林值,預設值為 true。擴充功能只能將值設為false來停用這個 API。如果嘗試將這個 API 設為true,系統會擲回錯誤。