chrome.privacy
描述: |
使用 chrome.privacy API 控制 Chrome 浏览器中可能会影响用户隐私的特性。这一模块依赖于类型 API 中的 ChromeSettings 原型,用于获取和设置 Chrome 浏览器的配置。
|
可用版本: |
从 Chrome 18 开始支持。
|
权限: |
"privacy"
|
Google Chrome 浏览器隐私权白皮书提供了与这一 API 可以控制的特性有关的背景资料。
清单文件
您必须在扩展程序的清单文件中声明 "privacy" 权限才能使用这一 API。例如:
{ "name": "我的扩展程序", ... "permissions": [ "privacy" ], ... }
用法
读取某个 Chrome 浏览器设置的当前值是很直接的。您首先需要找到您感兴趣的属性,然后调用那个对象的
get()
方法,获得它当前的值以及您的扩展程序对它的控制级别。例如,要确定 Chrome
浏览器的自动填充功能是否已启用,您可以编写如下代码:
chrome.privacy.services.autofillEnabled.get({}, function(details) { if (details.value) console.log('自动填充已启用!'); else console.log('自动填充已禁用!'); });
更改设置的值稍微有点复杂,因为您必须首先确认您的扩展程序可以控制某一项设置。如果扩展程序调整了通过企业策略(levelOfControl
将设置为 "not_controllable")限制为特定值的设置,或者另外一个扩展程序正在控制设置值(levelOfControl
将设置为 "controlled_by_other_extensions"),用户将不能看见任何设置的更改。set()
调用将会成功,但是设置会立即被覆盖。这可能令人疑惑,如果用户选择的设置实际上无法应用,建议警告用户。
有关扩展程序控制 ChromeSetting
的能力的完整详情可以在
chrome.types.ChromeSetting
中找到。
这意味着您应该先使用 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("哈哈,成功了!"); else console.log("喔唷!", chrome.runtime.lastError); }); } });
如果您对设置值的更改有兴趣,请向 onChange
事件添加监听器。除了其他用途外,如果最近安装的扩展程序拥有了某一项设置的控制权,或者企业策略覆盖了您的控制,这将允许您警告用户。例如,要监听自动填充状态的更改,如下所示代码就可以了:
chrome.privacy.services.autofillEnabled.onChange.addListener( function (details) { // 新的值存储在 `details.value` 中,新的控制级别在 // `details.levelOfControl` 中。另外,如果设置值仅用于 // 隐身模式,则 `details.incognitoSpecific` 将为 `true`。 });
例子
有关示例代码,请参见隐私权 API 示例。
摘要
属性 | |
---|---|
network | |
services | |
websites |
属性
object | chrome.privacy.network |
总体上影响 Chrome 浏览器对网络连接的处理的设置。
|
||||||||||||||||||||||||
object | chrome.privacy.services |
启用或禁用需要由 Google 以及您的默认搜索引擎提供的第三方网络服务。
|
||||||||||||||||||||||||
object | chrome.privacy.websites |
决定 Chrome 浏览器使哪些信息对网站可用。
|