Google Chrome 自去年9月发布以来,差不过就快一年了。Chrome 确实带来了一些新的变化,但这些变化仍不足使我抛弃目前的首选浏览器 FireFox。主要原因是 Google Chrome 没有我想要的两个功能(或扩展):SearchStatus (在不安装 Google Toolbar 和 Alexa Toolbar 的情况下,显示 Google PageRank 及 Alexa Rank 的信息)和 QuickJava (快速屏蔽 JavaScript 功能,—— 为了安全,除了访问 Google 帐户,我访问其他任何网站从来都是关闭 JavaScript 功能)。好在 Google 最近发布了 Chrome 的扩展开发文档以及准备了一些示例。我昨天试着做了一个 Chrome Extension,一切顺利。在这里稍总结一下。
一、Google Chrome 扩展 (Chrome Extensions) 开发的环境设置
- 安装Google Chrome 开发者版本(Chrome Developer Version)
目前 Chrome 的正式版本还不支持扩展功能,需要下载安装 Developer version.
启用 Chrome 的扩展特性(enable extensions for Chrome)。在 Google Chrome 的图标上点右键,选择属性 (Properties),然后点 快捷方式 (Shortcut) 选项卡,在目标 (Target)字段 的最后面,加入参数 -enable-extensions parameter。如图所示:
http://www.xiaohui.com/dev/server/google-chrome-extension-development
安装 Python 2.6+Google 的开发文档说,Python 3.0+ 不适合扩展开发。根据我的实验,推荐 Python 2.6.2,选择其中的 Windows x86 MSI Installer (2.6.2) 下载安装即可。安装结束后,建议手动更改 Windows 的系统环境变量设置,将 Python 的安装目录加入到 PATH 变量中,这样方便在命令行下使用。
安装 Chrome 扩展的打包工具: chromium_extension.pyGoogle Chrome 扩展文件分发使用 .crx 后缀。它基于 ZIP 格式,但添加了一些特殊的 HEADER 设置。chromium_extension.py 这个小工具能将 Chrome 扩展打包成 .crx 文件以供下载分发。
2009-07-12 更新: Google 最新发布了 dev version 3.0.189.0, 这个版本有一个重要的改变,就是不再依赖 Python 脚本 chromium_extension.py 来打包了。所以上面的第3点、第4点的步骤不再适用。二、Google Chrome 扩展 (Chrome Extensions) 开发
Chrome 扩展是基于 JavaScript。在 Chrome 的开发网站上,有一个简单的入门示例,很清晰明了:Chrome Extension HOWTO: Getting Started。
另外,Chromium Team 也给出了几个完整的扩展代码。例如这个 Gmail Checker,能够在状态栏显示当前的 Gmail 未读邮件数量。这个扩展的源代码点这里下载。
扩展的主程序文件一般名为 manifest.json,这是文件中有一个参数字段名为 "ID",新建的项目,这个值可以为空。在使用chromium_extension.py 打包时,如果没有设置这个参数,会自动生成一个唯一的随机ID。
使用 chromium_extension.py 的命令如下:
chromium_extension.py --indir=path\to\extension --outfile=myextension.crx
自 ver 3.0.189.0 以后,新的扩展直接使用 Chrome 的执行程序完成打包,方法如下:
- 关闭你的所有 Chrome 窗口
- 进入 Dos 命令行方式
- 键入命令:<path-to-chrome>/chrome.exe --pack-extension=<extension-folder>
具体的说明,可参阅 Google 的文档 Packaging an extension.
三、Google Chrome 扩展 (Chrome Extensions) 集合
自 Google 发布了扩展文档以来,有许多程序员开发了各种各样的扩展以增强 Chrome 的性能。下面这些扩展集合翻译自ChromeFans 的Google Chrome Extensions Compilation:
- PageRank Status Checker, 由 Andrew (http://www.ChromeFans.org) 开发
这个扩展在浏览器底部的状态栏内,显示当前网页的 Google PageRank 值。这个扩展对于个人站长进行 SEO 工作很有帮助。
AdSweep, 由 Charles L. (http://www.AdSweep.org) 开发AdSweep 是一个非常用名的屏蔽广告的扩展,支持 Opera, Google Chrome, Chromium, Iron, Mozilla Firefox 3.1+ or Apple Safari. 现在也支持 Google Chrome 了。
Digg This, 由 Hyder Alamgir (AlamgirDesigns.com) 开发顾名思议,将当前网页 Digg 一下。
Flashblock, 由 Lex1 (ruzanow.ru) 开发使用快捷键 ALT+F 屏蔽 Flash。
Gmail as default webmail client, 由 Charles (adsweep.org) 开发当于点击了网页中的 mailto 链接时,使用 Gmail 作为默认的邮件客户端。这里有一个测试页面.
Google Reader Notifier for Chrome, 由 Vasanth, (vasanth.in) 开发这个扩展显示你的 Google Reader 帐户中未读的文章数量。
Cleeki, 由 cleeki.com 开发该扩展实现了类似IE8中的Accelerators加速器功能,当高亮选中文本后会出现提示选项,用户可执行查找、翻译、搜索等相关操作,此外Cleeki可以将IE8加速器内容加载到Chrome。
Gmail Checker, 由 Chromium Team 开发显示 Gmail 帐户中未读的邮件数量。
Subscribe in Google Reader, 由 Chromium Team 开发快速订阅当前页面的 RSS FEED 至 Google Reader.
BuildBot Monitor, 由 Chromium Team 开发开发者工具,显示 Chromium Build Bot 的 状态。
从目前 Chrome 的开发进展以及提供的扩展质量来看,还不足以动心使我更换浏览器。只能偶尔作为测试网页使用。
四、删除 Chrome 扩展 (Uninstall Chrome Extension)
在 Chrome 的地址栏内敲入 chrome://extensions,选中特定的扩展然后就点删除即可。
五、与 Google Chrome 扩展相关的其他资源
- 站内文章:Google Chrome 的内核引擎 WebKit 介绍 - WebKit 引擎比 Gecko 引擎更受程序员欢迎的原因,除了其引擎的高效稳定,兼容性好外,其源码结构清晰,易于维护,是一个重要的原因。
- 站内文章:Google 浏览器 Google Chrome 最新试用手记 - Chrome 的第一映象
- 站内文章:Google Chrome Source Code 源码下载 - Google Chrome、JavaScript V8 源码 SVN Checkout 地址
- 站内文章:推荐两个Firefox插件: SearchStatus + Session Manager - 简洁显示 Google PageRank 和 Alex Rank 的一个小工具
- 外部链接:Chromium Extensions Documentation - Chrome 扩展开发的参考文档、示例
- 外部链接:Google Chrome Extensions & Plugins - Chrome 的 Extensions, Bookmark, Plugins 下载