谷歌Chrome扩展在Chrome浏览器中的沙箱环境中运行。这个沙箱允许属于扩展的代码(即JavaScript代码)在隔离的环境中运行。 这就意味着可能有数百个扩展安 装在 Chrome浏览器,但这些扩展不会自动意识到彼此的存在。这隐含着:
- 不同的扩展不会意外地与其他扩展相连接
- 扩展不能自动访问属于另一个扩展的代码或内存
- 不会有任何命名冲突。
- Chrome浏览器不会混淆某一个扩展的Script_A.js文件和另一个扩展的Script_A.js
- 此规则适用于此扩展的其他资源,如HTML、JSON 文件、图像等
- 扩展可以以确定性的、可控的方式与其他扩展连接(用于通信)
- 扩展框架(Extensions framework)提供了一个消息传递API来进行一次性(one-time) 的或/和长时间(long-lived)的连接。
Chrome Extensions在增强Chrome浏览器方面非常有用。它们能够通过组合不同(Chrome浏览器)的特征进而提供了一个通用功能。例如,考虑这样一个扩展,通过使用tabs和报警API(alarms API)(由Chrome提供)在预定的时间间隔内(比如一天)打开一个tab页面。
谷歌Chrome扩展框架(Extensions framework)为扩展开发提供了许多特殊用途的API,这些API可以访问提Chrome浏览器众多强大的功能。 这些API提供了对Chrome浏览器中几乎所有可用功能的访问!
虽然扩展框架(Extensions framework)提供了大量特殊用途的API, 扩展仍然可以使用所有浏览器提供给网页的标准API(也称为标准JavaScript API)。这些都是大家已经熟悉的JavaScript和Document 对象模型(DOM)API。此外,XML Http Request, HTML5(和其他新兴的)API、WebKit API(用于CSS动画、过滤器等),以及V8 API(如JSON)也是支持的! Chrome浏览器支持的HTML5和其他 新兴API包括音频(audio), 画布(canvas)、地理定位(geolocation)、本地存储(local storage)、通知(notifications)和视频(video)。想了解更多关于这些API的信息, 请访问 https://developer.chrome.com/extensions/api_other。
使用这些API,您可以在扩展中集成Chrome浏览器提供的不同功能。功能列表包括警报API(APIs for alarms),书签(bookmarks), 历史记录(history),标签(tabs),操作(actions),存储(storage),通知(notifications),搜索(search),等等。