当前位置:首页 期刊杂志

新的Firefox扩展技术

时间:2024-05-04

Firefox引入了一套新的扩展技术,名为WebExtensions。通过这种新的扩展技术,浏览器可以拥有一个更现代的界面,兼容性、性能和安全性也更强。

浏览器Firefox是不断变化的,但新功能并不总是受欢迎的。当Mozilla宣布新一代的扩展API时,即刻引发了一股愤怒的浪潮。Firefox用户担心他们最喜欢的扩展程序可能从此消失,扩展程序开发商担心他们多年付出的努力从此付之东流。那么,这究竟是怎么一回事呢?

被取而代之的是过时的而又繁琐的跨平台组件对象模型(Cross Platform Component Object Model,简称XPCOM)、XML绑定语言(XML Binding Language,简称XBL)和XML用户界面语言(XML User Interface Language,简称XUL),按目前的情况来看,Firefox的扩展程序未来将使用WebExtensions技术实现。这个新的接口(https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API)是一项兼容GoogleChrome Blink API的技术。

这一新的扩展技术有两个优点、一个缺点:首先,WebExtensions是一个历经15年的成熟的扩展技术,使用它远比Firefox自己另外开发更方便。其次,GoogleChrome和Opera的扩展程序都基于类似的技术,因而,开发人员可以更容易地让自己的扩展程序适用于更多的浏览器。但随之而来的问题是:旧的扩展技术将不被支持,旧的扩展程序不重新编程就无法继续用于Firefox。

像一个简单的网站

新的WebExtensions技术背后的想法很简单:开发扩展程序应该是很容易的,应该像开发网站一样,开发人员只需编写一次代码,扩展程序即可在各种浏览器上应用,不需要做太多的修改,扩展程序即可工作在Firefox及Chrome、Opera、Safari等浏览器上,甚至包括微软最新的浏览器Edge,只要未来Windows 10的浏览器支持扩展程序,那么这自然也不在话下。

因此,在这个新的扩展技术下,将可以看到大量JavaScript、HTML和CSS等Web开发的元素,因为新的WebExtensions扩展程序基本上就是一个简单的网站。不过,我们并不会看到这些,因为它们只在后台工作,或者只是显示为按钮、弹出窗口或侧边栏。而Firefox目前使用的扩展名为XPI的文件(跨平台安装程序)的压缩格式,也正在考虑切换到热门的ZIP格式。该XPI文件实际上只是一个压缩容器,它以一种节省空间的方式捆绑了扩展程序的实际组件以及相关的管理模块,其中的清单文件(manifest.json)是唯一绝对必要的组成部分。此文件包含WebExtension其余部件的元数据和链接,可以通过本文的图示了解WebExtensions扩展程序的结构。

WebExtensions的核心部分是其中的脚本,通过它新的扩展程序可以与被调用的网站和服务器进行交互。同样重要的是,WebExtensions将可以访问浏览器的组件,例如标签页、书签或历史。在XPI文件的其他模块确定扩展程序在Firefox的可见元素,例如按钮或侧边栏,并且可以访问网络资源,可以简单地从网上下载图片或其他数据。结合几个巧妙的附加功能,开发人员可以很轻松地开发扩展程序。

目前,WebExtensions在alpha阶段,在已完成的版本中,Firefox将可能比其他浏览器支持更多的功能。此外,将有一个Meta API,如果需要,它可以与实验性功能一起使用。

每一个扩展程序作为一个单独的进程

Mozilla重建其扩展技术实际上是有原因的,首先Firefox本身正在重建,名为Electrolysis的新项目将是一个多进程的Firefox,将分两个阶段推出。第一阶段:浏览器本身在单独的进程(用户接口进程)运行时,与内容(内容处理)分离。第二阶段:每个标签页打开将在其自己的进程中运行。这将为其带来优势,有效提高浏览器的安全性和稳定性。WebExtensions已经确定将在Electrolysis中使用,但是传统的插件程序将不获支持,所以如果Firefox未来没有新的改变,那么现有的扩展程序应该尽快进行修改。

更好的防御恶意程序

使用新的WebExtensions扩展程序可以更好地处理好浏览器的安全问题,由于Firefox的扩展程序几乎可以访问一切,甚至是访问网站和浏览器的设置。为此,许多激进工具栏利用此漏洞,导致Firefox出现许多并不需要的扩展程序,甚至是恶意程序。因此,最近Mozilla要求扩展必须经过验证和添加数字签名,否则将不能够用于Firefox 45之上。而通过WebExtensions技术,Mozilla将可以更好地控制扩展程序。

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!