Switching from Firefox to Chrome
Today our company is announcing some major upcoming modifications to Firefox accessories. Our add-on ecosystem has actually evolved through progressive, natural development over time, but there are many modernizations to Firefox that require some foundational modifications to aid:
- Taking advantage of brand-new technologies like Electrolysis and Servo
- Safeguarding users from spy ware
- Shortening enough time it can take to examine accessories
To greatly help the add-on development community know how we shall allow these improvements, our company is making four associated notices these days:
- To make certain third-party extensions provide modification without having to sacrifice protection, overall performance or exposing users to malware, we'll need all extensions becoming validated and signed by Mozilla starting in Firefox 41, which is circulated on September 22nd 2015.
- We've decided on an estimated timeline the deprecation of XPCOM- and XUL-based add-ons.
For our add-on development neighborhood, these changes will bring advantages, like higher cross-browser add-on compatibility, but also require redevelopment of many existing accessories. We’re making a large investment by broadening the group of designers, add-on reviewers, and evangelists just who focus on add-ons and offer the community that develops all of them. They're going to make use of the city to improve and complete the WebExtensions API, and will assist designers of unsupported add-ons make the transition to newer APIs and multi-process assistance.
We’re announcing all modifications right now to make developers alert to our plans and offer everyone else a way to provide comments. Our company is invested in doing that which we can to create this transition as simple as possible. Along with our Mozilla neighborhood, we will produce the future of Firefox accessories.
Launching the WebExtensions API
For quite a while we’ve heard from add-on designers our APIs could be better documented and easier to make use of. Furthermore, we’ve pointed out that many Firefox add-on designers also maintain a Chrome, Safari, or Opera extension with similar functionality. We wish add-on development to be similar to internet development: the exact same signal should run-in multiple browsers in accordance with behavior ready by requirements, with comprehensive documents offered by several suppliers.
To this end, our company is applying a new, Blink-compatible API in Firefox labeled as WebExtensions. Extension code written for Chrome, Opera, or, possibly someday, Microsoft Edge will run-in Firefox with few changes as a WebExtension. This modern and JavaScript-centric API has actually a number of benefits, including supporting multi-process browsers by default and mitigating the risk of misbehaving accessories and malware.
WebExtensions will behave like other Firefox add-ons; they will be finalized by Mozilla, and discoverable through addons.mozilla.org (AMO) or through designer’s website. With this particular API, expansion designers must be able to make the exact same expansion available on Firefox and Chrome with a small number of modifications to repackage for each system.
A preview release of WebExtensions is available in Firefox 42, which is currently on Developer Edition, and information about how to begin testing WebExtensions comes in the Mozilla wiki. We now have begun discussions along with other internet browser vendors to begin an effort to standardize at the very least a few of this API, and will continue to publish additional information and much more factual statements about WebExtensions when you look at the wiki.
Multi-process Firefox and Add-ons
Phase our Electrolysis project, which utilizes an independent operating-system process to perform content, has-been going towards our launch station. Subsequent phases will bring multiple material procedures and enhanced sandboxing abilities. Making use of a separate rendering process lays the inspiration enabling united states to carry considerable overall performance and safety improvements to Firefox, but inaddition it breaks some add-ons, particularly those who modify content. But there are certain mitigations in position maintain accessories functional:
- WebExtensions are fully suitable for Electrolysis. While the API matures and Electrolysis is enabled automagically, this is the option to port or develop extensions for Firefox.
- Add-ons based on the Jetpack SDK will continue to work really as long as they don’t usage require(‘chrome’) or a few of the low-level APIs to the touch items inside material process.
- Add-ons havingn’t already been enhanced to work with Electrolysis will run-in a particular compatibility environment that resembles single-process Firefox as much as possible. If an add-on variations content, the access can happen via cross-process item wrappers (CPOWs). But CPOWs are much slow versus equivalent DOM operations in single-process Firefox, and that can impact the user experience adversely. Additionally, some accesses aren’t sustained by the compatibility layer and will put exceptions.
Starting today, add-on developers need certainly to contemplate their particular strategy to use a multi-process Firefox: