~ (外部扩展程序)
通常,用户自己安装扩展程序。然而有时候可能希望自动安装扩展程序,如下是两个典型案例:
自动安装的扩展程序称为 外部扩展程序 。 Google Chrome 浏览器支持两种安装外部扩展程序的方式:
这两种方式都支持在用户的计算机上安装来自 .crx 文件的扩展程序, 首选项JSON文件还支持安装已托管在 更新URL 的扩展程序。
有关托管扩展程序的详情,请参见 托管 。
首先,将扩展程序 打包 为 .crx 文件并确保它能够成功安装。 如果想从 更新URL 安装, 确保扩展程序已正确 托管 。 然后,在编辑首选项文件或者注册表前,注意以下几个问题:
扩展程序的 `标识符`(当载入已打包的扩展程序后可以从chrome://extensions页面获得)
如下例子假定版本为 1.0 ,标识符为 aaaaaaaaaabbbbbbbbbbcccccccccc
Note
注意:
(将它复制到本地目录或者网络共享,例如 \servershareextension.crx 或 /home/share/extension.crx )
,其中文件名(不包括扩展名)对应于我们的扩展程序标志符。位置取决与操作系统。
Windows :
chrome_root\Application\chrome_version\Extensions\
- 例子:
c:\Users\Me\AppData\Local\Google\Chrome\Application\6.0.422.0\Extensions\
Mac OS X :
用于某个特定用户: ~USERNAME/Library/Application Support/Google/Chrome/External Extensions/
用于所有用户: /Library/Application Support/Google/Chrome/External Extensions/
只有路径中每一个目录的所有者都是root或者属于wheel或管理员组,并且不是所有人都具有写入权限,才会读取用于所有用户的外部扩展程序文件。
- 另外,路径还不能包含符号链接。这些限制确保未授权的用户不能使扩展程序为所有用户安装。
有关详情请参见 疑难解答 。
Note
注意
- 以上用于所有用户的路径是在Chrome 16中追加的,之前的版本使用另一个路径
- /Applications/Google Chrome.app/Contents/Extensions/
- 该路径在版本17中弃用,在版本20中不再支持。
- 请使用以上列出的路径形式
Linux :
- /opt/google/chrome/extensions/
- /usr/share/google-chrome/extensions/
Note
注意
- 如果必要的话, 用 chmod 改变权限组,确保所有人都能访问
- extensions/aaaaaaaaaabbbbbbbbbbcccccccccc.json
果从文件安装的话,通过”external_crx“与”external_version“字段在以上创建的文件中指定扩展程序的位置与版本
例如
{ "external_crx": "/home/share/extension.crx", "external_version": "1.0" }Note
注意
- 在位置中必须为所有
\
字符转义。- 例如,
\\server\share\extension.crx
- 表示为”
\\\\server\\share\\extension.crx
“
如果从更新URL安装,在名为”external_update_url”的字段中指定扩展程序的更新URL。
例如
{ "external_update_url": "http://myhost.com/mytestextension/updates.xml" }如果只是为某些浏览器语言安装扩展程序,可以在名为”supported_locales“的字段中列出支持的语言。可以指定诸如”en“之类的语言,这样扩展程序将为所有像”en-US“、”en-GB“等这样的英语语言安装。
选择了扩展程序不支持的另一种语言,外部扩展程序将会被卸载。
如果没有”supported_locales“列表,扩展程序将为所有语言安装。
例如
{ "external_update_url": "http://myhost.com/mytestextension/updates.xml", "supported_locales": [ "en", "fr", "de" ] }
保存 JSON 文件
Mac OS中,只有系统权限阻止未授权的用户更改它时,才会读取外部扩展程序文件。 如果 Chrome 浏览器运行后没有看见已安装的外部扩展程序文件,那么可能外部扩展程序首选项文件有权限问题。 要确定是否是这一问题,请遵循如下步骤:
运行控制台程序。可在应用程序/实用工具/控制台找到它。
如果控制台最左边的图标为“显示日志列表”,单击该图标,将会在左边出现新的一列。
单击左侧窗格中的“控制台消息”。
搜索 无法读取外部扩展程序(Can not read external extensions) 这一字符串。
- 如果读取外部扩展程序文件过程中发生问题,就将记录成错误消息。
- 查阅其上方的另一个错误消息,应该包含问题的描述。
- 例如,如果看到了如下错误:“路径 /Library/Application Support/Google/Chrome 的所有者不正确”,就需要使用 chgrp 或 Finder 的信息对话框更改目录的所有者为管理员组。
修复这一问题后,重启 Chrome 浏览器,看看外部扩展程序现在是否己安装。
- 有可能前一权限错误使 Chrome 浏览器不能检测到第二个错误。
- 所以,如果外部扩展程序还没有安装,要重复以上步骤,直到在控制台应用程序中看不到错误。
(将它复制到本地目录或者网络共享,例如 \servershareextension.crx )
在注册表中寻找或创建如下键:
- 32位Windows: HKEY_LOCAL_MACHINESoftwareGoogleChromeExtensions
- 64位Windows: HKEY_LOCAL_MACHINESoftwareWow6432NodeGoogleChromeExtensions
(例如, aaaaaaaaaabbbbbbbbbbcccccccccc )。
创建两个字符串值( REG_SZ ),分别名为 path 和 version ,并分别设置为扩展程序的位置和版本。例如:
- path: \servershareextension.crx
- version: 1.0
运行浏览器,进入 chrome://extensions 应该看到列出的扩展程序。
Google Chrome 浏览器在 每一次启动时扫描首选项文件中的元数据项以及注册表,对已安装的外部扩展程序做出必要的更改。
要将我们的扩展程序更新到新的版本,需要更新相应的文件,并更新首选项文件或注册表中的版本。
要卸载我们的扩展程序(例如,如果依赖的软件卸载了),
- 请删除首选项文件( aaaaaaaaaabbbbbbbbbbcccccccccc.json
- 或从旧版本 Chrome 浏览器中的 external_extensions.json 文件中删除元数据)
- 或者从注册表中删除元数据。
回答部分有关外部扩展程序的常见问题。