In the coming months Mozilla will launch support for an open ecosystem of extensions on Firefox for Android on addons.mozilla.org (AMO). We’ll announce a definite launch date in early September, but it’s safe to expect a roll-out before the year’s end. Here’s everything developers need to know to get their Firefox desktop extensions ready for Android usage and discoverability on AMO…
Firefox will become the only major Android browser to support an open extension ecosystem
For the past few years Firefox for Android officially supported a small subset of extensions while we focused our efforts on strengthening core Firefox for Android functionality and understanding the unique needs of mobile browser users. Today, Mozilla has built the infrastructure necessary to support an open extension ecosystem on Firefox for Android. We anticipate considerable user demand for more extensions on Firefox for Android, so why not start optimizing your desktop extension for mobile-use right away?
“There is so much creative potential to unlock within the mobile browser space. Mozilla wants to provide developers with the best support we can so they’re equipped and empowered to build modern mobile WebExtensions.” — Giorgio Natili, Firefox Director of Engineering
To support our ecosystem of extension developers, we will create additional guides, resources and host community events to support your transition to a managed multi-process environment like Android.
Transition background scripts to non-persistent event pages
We recently introduced support for multi-process in Firefox for Android Nightly. This means extensions are no longer hosted in the main process as Firefox’s user interface. This is a key consideration since Android is prone to shutting down resource-intensive processes, such as extensions. To mitigate the risk of unexpected extension termination, we’ve introduced event page architecture to be non-persistent and more resilient to process termination. Thus we strongly encourage developers to transition from persistent backgrounds to non-persistent Event pages to improve their extension’s stability. In summary, this means:
- Update your manifest.json background key and add “persistent”: false.
- Ensure listeners are registered synchronously at the top-level.
- Record global state in the storage API, for example storage.session.
- Change timers to alarms.
- Switch from using extension.getBackgroundPage for calling a function from the background page, to extension messaging or runtime.getBackgroundPage.
Once you’re ready to test the mobile version of your extension, create a collection on AMO and test it on Firefox for Android Nightly (note you’ll need to make a one-time change to Nightly’s advanced settings; please see the “Enable general extension support setting in Nightly” section of this post for details). If you’d prefer to polish your extension before publishing it on AMO, you can also debug and run the extension with web-ext.
This is an exciting time for developers seeking to expand the reach of their desktop extensions into the mobile Android space. For community support and input, you’re welcome to join the conversation on Firefox Add-ons Discourse.
Steven wrote on
Scott wrote on
Stefano wrote on
Maher wrote on
Orion wrote on
Ed Sullivan wrote on
Harisankar P S wrote on
Akash wrote on
Kevin wrote on
David wrote on
suman wrote on
Jeff wrote on
Ed Sullivan wrote on
someone wrote on
Bill Gates wrote on
Fennec wrote on
Now wrote on
Lneb wrote on
jesus2099 wrote on
jedward wrote on
S.L. wrote on
Admit your mistake wrote on
kiwilol wrote on
Simon Müller wrote on
ScottyKilmer wrote on
Kurt wrote on
Pandora wrote on
gerard wrote on
Simon Müller wrote on
SleeepyKat wrote on
George Machen wrote on
Rich I am not wrote on
Simon Müller wrote on
Ribosome wrote on
grow online wrote on
Zevel wrote on
Scott wrote on
Faizal R wrote on
Fire John wrote on
I_afraid_Mozilla wrote on
firetheworld wrote on
Kim wrote on
carlos884 wrote on
Shiba wrote on
Ed Sullivan wrote on
Bryan wrote on
remisc wrote on
Bryan wrote on
Robert Lee wrote on
Trade Vision wrote on
Dave Royal wrote on
Claudiu wrote on