Firefox 51 landed in Developer Edition this week, so we have another update on WebExtensions for you. In this update, we’re making it easier for you to port your existing add-ons to WebExtensions. In addition to being fully compatible with multiprocess Firefox, WebExtensions are becoming the standard for add-on development.
Embedded WebExtensions
In Firefox Developer Edition, you can now embed a WebExtensions add-on inside an existing SDK or bootstrapped add-on.
This is especially useful to developers of SDK or bootstrapped add-ons who want to start migrating to WebExtensions and take advantage of new APIs like Native Messaging, but can’t fully migrate yet. It’s also useful for developers who want to complete data migration towards WebExtensions, and who want to take parts of their add-on that are not compatible with multiprocess Firefox and make them compatible.
For more documentation on this, please head over to MDN or check out some examples.
If you need help porting to WebExtensions, please start with the compatibility checker, and check out these resources.
Manifest Change
Because of confusion around the use of strict_min_version
in WebExtensions manifests, we’ve prevented the use of * in strict_min_version
, for example 48.*
is no longer valid. If you upload an add-on to addons.mozilla.org we’ll warn you of that fact.
API Changes
The clipboardWrite
permission is now enabled which removes the need to be in a user gesture. This is usable from extension tabs, popups and content scripts.
When a WebExtensions add-on is uninstalled, any local storage is now cleared. If you’d like to persist data across an uninstall then you can use the upcoming sync storage.
The management
API now supports the uninstallSelf
and getSelf
methods. The idle.queryState
API has been updated to accurately reflect the state, previously it always returned the value “idle”.
In the webRequest
API, onBeforeRequest
is now supported in Firefox Nightly and Developer Edition. There are some platform changes that are required to get that to land in a Release version of Firefox.
Developers have been testing out Native messaging and a couple of bugs were filed and fixed on that. New, more detailed, documentation has been written. One of the useful pieces of feedback involved the performance of the round-trip time, and that has now improved.
There has been a few improvements to the appearance of popup windows including the popup arrow, the corners of the popup and reducing flicker on the animation. Here’s a before and after:
Out of process extensions
Now that the majority of the work multi process Firefox has been completed, we are looking ahead to the many improvements it can bring. One of them is allowing WebExtensions to be run in a separate process. This process-sandboxing of add-ons will bring clear performance and security benefits.
But before we can do that, there is quite a bit of work that needs to be done. The main tracking bug lists some of these tasks. There is also a video of Rob Wu presenting the work he has done on this. There currently isn’t a timeline for when this will be landed, but the work is progressing.
Recognition
We’d also like to give a thank you to four new contributors to WebExtensions, who’ve helped with this release. Thanks to sj, Jorg K, fiveNinePlusR and Tomislav.
Update: link to Robs presentation fixed.
Bug Report: Broken Link: “video of Rob Wu” links to same place as “main tracking bug”
wrote on
Andy McKay
wrote on
Gerd Neumann
wrote on
Andy McKay
wrote on
Paul Morris
wrote on
Andy McKay
wrote on
Paul Morris
wrote on
James Dean
wrote on
Andy McKay
wrote on
Syed Faraz
wrote on
jagan
wrote on