說明
使用 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
會設為「control_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
WebRTC 的 IP 處理政策。
列舉
"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
。 -
passwordSavingEnabled
types.ChromeSetting<boolean>
啟用後,密碼管理員會詢問您是否要儲存密碼。這項偏好設定的值是布林值,預設值為
true
。 -
safeBrowsingEnabled
types.ChromeSetting<boolean>
如果啟用,Chrome 會盡可能保護你免於網路釣魚和惡意軟體的侵擾。這項偏好設定的值是布林值,預設值為
true
。 -
safeBrowsingExtendedReportingEnabled
types.ChromeSetting<boolean>
啟用後,當安全瀏覽功能封鎖網頁 (例如封鎖的網頁內容) 時,Chrome 就會將其他資訊傳送給 Google。這項偏好設定的值是布林值,預設值為
false
。 -
searchSuggestEnabled
types.ChromeSetting<boolean>
啟用後,Chrome 會將你在網址列中輸入的文字傳送至預設搜尋引擎,該引擎會提供可能找到符合你輸入內容的網站和搜尋字詞建議。這項偏好設定的值是布林值,預設值為
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
。擴充功能只能將值設為false
來停用這些 API。如果嘗試將這些 API 設為true
,就會擲回錯誤。 -
doNotTrackEnabled
types.ChromeSetting<boolean>
Chrome 65 以上版本如果啟用,Chrome 會在要求中傳送「不追蹤」(
DNT: 1
) 標頭。此偏好設定的值為布林值類型,預設值為false
。 -
fledgeEnabled
types.ChromeSetting<boolean>
Chrome 111 以上版本如果停用,Fledge API 會停用。此偏好設定的值為布林值類型,預設值為
true
。擴充功能只能將值設為false
來停用這個 API。如果將這個 API 設為true
,就會擲回錯誤。 -
hyperlinkAuditingEnabled
types.ChromeSetting<boolean>
啟用後,Chrome 會在網站 (
<a ping>
) 要求時傳送稽核連線偵測 (ping)。這項偏好設定的值為布林值類型,預設值為true
。 -
protectedContentEnabled
types.ChromeSetting<boolean>
僅適用於 Windows 和 ChromeOS:啟用後,Chrome 會為外掛程式提供專屬 ID,以執行受保護的內容。此偏好設定的值為布林值類型,預設值為
true
。 -
referrersEnabled
types.ChromeSetting<boolean>
如果啟用,Chrome 會和您的要求一併傳送
referer
標頭。是的,這項偏好設定的名稱與拼寫錯誤的標題不符。不會,不會改變。此偏好設定的值為布林值類型,預設值為true
。 -
types.ChromeSetting<boolean>
Chrome 121 以上版本如果停用,系統會停用「相關網站集」。此偏好設定的值為布林值類型,預設值為
true
。擴充功能只能將值設為false
來停用這個 API。如果將這個 API 設為true
,就會擲回錯誤。 -
thirdPartyCookiesAllowed
types.ChromeSetting<boolean>
如果停用,Chrome 會禁止第三方網站設定 Cookie。此偏好設定的值為布林值類型,預設值為
true
。 -
topicsEnabled
types.ChromeSetting<boolean>
Chrome 111 以上版本如果停用,Topics API 會停用。此偏好設定的值為布林值類型,預設值為
true
。擴充功能只能將值設為false
來停用這個 API。如果將這個 API 設為true
,就會擲回錯誤。