
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
: