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