{"id":9099,"date":"2023-08-10T16:56:32","date_gmt":"2023-08-10T23:56:32","guid":{"rendered":"https:\/\/blog.mozilla.org\/addons\/?p=9099"},"modified":"2023-08-17T13:56:43","modified_gmt":"2023-08-17T20:56:43","slug":"prepare-your-firefox-desktop-extension-for-the-upcoming-android-release","status":"publish","type":"post","link":"https:\/\/blog.mozilla.org\/addons\/2023\/08\/10\/prepare-your-firefox-desktop-extension-for-the-upcoming-android-release\/","title":{"rendered":"Prepare your Firefox desktop extension for the upcoming Android release"},"content":{"rendered":"<p>In the coming months Mozilla will launch support for an open ecosystem of extensions on Firefox for Android on <i>addons.mozilla.org<\/i> (AMO). We\u2019ll announce a definite launch date in early September, but it\u2019s safe to expect a roll-out before the year\u2019s end. Here\u2019s everything developers need to know to get their Firefox desktop extensions ready for Android usage and discoverability on AMO\u2026<\/p>\n<h2>Firefox will become the only major Android browser to support an open extension ecosystem<\/h2>\n<p>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?<\/p>\n<blockquote><p><b>&#8220;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\u2019re equipped and empowered to build modern mobile WebExtensions.&#8221;<i> \u2014 Giorgio Natili, Firefox Director of Engineering<br \/>\n<\/i><\/b><\/p><\/blockquote>\n<p>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.<\/p>\n<h2>Transition background scripts to non-persistent event pages<\/h2>\n<p>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\u2019s 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\u2019ve introduced event page architecture to be non-persistent and more resilient to process termination. Thus we strongly encourage developers to <a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Mozilla\/Add-ons\/WebExtensions\/Background_scripts#convert_to_non-persistent\">transition from persistent backgrounds to non-persistent Event pages<\/a> to improve their extension\u2019s stability. In summary, this means:<\/p>\n<ul>\n<li>Update your manifest.json background key and add \u201cpersistent\u201d: false.<\/li>\n<li aria-level=\"1\">Ensure listeners are registered synchronously at the top-level.<\/li>\n<li aria-level=\"1\">Record global state in the storage API, for example storage.session.<\/li>\n<li aria-level=\"1\">Change timers to alarms.<\/li>\n<li aria-level=\"1\">Switch from using<a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Mozilla\/Add-ons\/WebExtensions\/API\/extension\/getBackgroundPage\"> extension.getBackgroundPage<\/a> for calling a function from the background page, to extension messaging or<a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Mozilla\/Add-ons\/WebExtensions\/API\/runtime\/getBackgroundPage\"> runtime.getBackgroundPage<\/a>.<\/li>\n<\/ul>\n<p>Once you\u2019re ready to test the mobile version of your extension, <a href=\"https:\/\/support.mozilla.org\/en-US\/kb\/how-use-collections-addonsmozillaorg?utm_source=blog.mozilla.org&amp;utm_medium=post&amp;utm_content=expanded-extension-support-in-firefox-for-android-nightly#\">create a collection<\/a> on AMO and test it on <a href=\"https:\/\/play.google.com\/store\/apps\/details?id=org.mozilla.fenix\">Firefox for Android Nightly<\/a> (note you&#8217;ll need to make a one-time change to Nightly&#8217;s advanced settings; please see the <a href=\"https:\/\/blog.mozilla.org\/addons\/2020\/09\/29\/expanded-extension-support-in-firefox-for-android-nightly\/\">&#8220;Enable general extension support setting in Nightly&#8221; section of this post<\/a> for details). If you&#8217;d prefer to polish your extension before publishing it on AMO, you can also <a href=\"https:\/\/extensionworkshop.com\/documentation\/develop\/developing-extensions-for-firefox-for-android\/#install-and-run-your-extension-in-firefox-for-android\">debug and run the extension with web-ext<\/a>.<\/p>\n<p>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\u2019re welcome to join the conversation on <a href=\"https:\/\/discourse.mozilla.org\/c\/add-ons\/35\">Firefox Add-ons Discourse<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the coming months Mozilla will launch support for an open ecosystem of extensions on Firefox for Android on addons.mozilla.org (AMO). We\u2019ll announce a definite launch date in early September, &hellip; <a class=\"go\" href=\"https:\/\/blog.mozilla.org\/addons\/2023\/08\/10\/prepare-your-firefox-desktop-extension-for-the-upcoming-android-release\/\">Read more<\/a><\/p>\n","protected":false},"author":648,"featured_media":8750,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[44,124],"tags":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v22.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Prepare your Firefox desktop extension for the upcoming Android release - Mozilla Add-ons Community Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blog.mozilla.org\/addons\/2023\/08\/10\/prepare-your-firefox-desktop-extension-for-the-upcoming-android-release\/\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Scott DeVaney\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/blog.mozilla.org\/addons\/2023\/08\/10\/prepare-your-firefox-desktop-extension-for-the-upcoming-android-release\/\",\"url\":\"https:\/\/blog.mozilla.org\/addons\/2023\/08\/10\/prepare-your-firefox-desktop-extension-for-the-upcoming-android-release\/\",\"name\":\"Prepare your Firefox desktop extension for the upcoming Android release - Mozilla Add-ons Community Blog\",\"isPartOf\":{\"@id\":\"https:\/\/blog.mozilla.org\/addons\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/blog.mozilla.org\/addons\/2023\/08\/10\/prepare-your-firefox-desktop-extension-for-the-upcoming-android-release\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/blog.mozilla.org\/addons\/2023\/08\/10\/prepare-your-firefox-desktop-extension-for-the-upcoming-android-release\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/blog.mozilla.org\/addons\/files\/2019\/10\/Fx-Browser-icon-fullColor.png\",\"datePublished\":\"2023-08-10T23:56:32+00:00\",\"dateModified\":\"2023-08-17T20:56:43+00:00\",\"author\":{\"@id\":\"https:\/\/blog.mozilla.org\/addons\/#\/schema\/person\/4c2e23c8fee2460a91031d2825ff7d35\"},\"breadcrumb\":{\"@id\":\"https:\/\/blog.mozilla.org\/addons\/2023\/08\/10\/prepare-your-firefox-desktop-extension-for-the-upcoming-android-release\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/blog.mozilla.org\/addons\/2023\/08\/10\/prepare-your-firefox-desktop-extension-for-the-upcoming-android-release\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/blog.mozilla.org\/addons\/2023\/08\/10\/prepare-your-firefox-desktop-extension-for-the-upcoming-android-release\/#primaryimage\",\"url\":\"https:\/\/blog.mozilla.org\/addons\/files\/2019\/10\/Fx-Browser-icon-fullColor.png\",\"contentUrl\":\"https:\/\/blog.mozilla.org\/addons\/files\/2019\/10\/Fx-Browser-icon-fullColor.png\",\"width\":2048,\"height\":2048,\"caption\":\"Firefox logo\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/blog.mozilla.org\/addons\/2023\/08\/10\/prepare-your-firefox-desktop-extension-for-the-upcoming-android-release\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/blog.mozilla.org\/addons\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Prepare your Firefox desktop extension for the upcoming Android release\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/blog.mozilla.org\/addons\/#website\",\"url\":\"https:\/\/blog.mozilla.org\/addons\/\",\"name\":\"Mozilla Add-ons Community Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/blog.mozilla.org\/addons\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/blog.mozilla.org\/addons\/#\/schema\/person\/4c2e23c8fee2460a91031d2825ff7d35\",\"name\":\"Scott DeVaney\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/blog.mozilla.org\/addons\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/dc38a62432c7d12585390805c2bc58e2?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/dc38a62432c7d12585390805c2bc58e2?s=96&d=mm&r=g\",\"caption\":\"Scott DeVaney\"},\"url\":\"https:\/\/blog.mozilla.org\/addons\/author\/sdevaneymozilla-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Prepare your Firefox desktop extension for the upcoming Android release - Mozilla Add-ons Community Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/blog.mozilla.org\/addons\/2023\/08\/10\/prepare-your-firefox-desktop-extension-for-the-upcoming-android-release\/","twitter_misc":{"Written by":"Scott DeVaney","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/blog.mozilla.org\/addons\/2023\/08\/10\/prepare-your-firefox-desktop-extension-for-the-upcoming-android-release\/","url":"https:\/\/blog.mozilla.org\/addons\/2023\/08\/10\/prepare-your-firefox-desktop-extension-for-the-upcoming-android-release\/","name":"Prepare your Firefox desktop extension for the upcoming Android release - Mozilla Add-ons Community Blog","isPartOf":{"@id":"https:\/\/blog.mozilla.org\/addons\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blog.mozilla.org\/addons\/2023\/08\/10\/prepare-your-firefox-desktop-extension-for-the-upcoming-android-release\/#primaryimage"},"image":{"@id":"https:\/\/blog.mozilla.org\/addons\/2023\/08\/10\/prepare-your-firefox-desktop-extension-for-the-upcoming-android-release\/#primaryimage"},"thumbnailUrl":"https:\/\/blog.mozilla.org\/addons\/files\/2019\/10\/Fx-Browser-icon-fullColor.png","datePublished":"2023-08-10T23:56:32+00:00","dateModified":"2023-08-17T20:56:43+00:00","author":{"@id":"https:\/\/blog.mozilla.org\/addons\/#\/schema\/person\/4c2e23c8fee2460a91031d2825ff7d35"},"breadcrumb":{"@id":"https:\/\/blog.mozilla.org\/addons\/2023\/08\/10\/prepare-your-firefox-desktop-extension-for-the-upcoming-android-release\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blog.mozilla.org\/addons\/2023\/08\/10\/prepare-your-firefox-desktop-extension-for-the-upcoming-android-release\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/blog.mozilla.org\/addons\/2023\/08\/10\/prepare-your-firefox-desktop-extension-for-the-upcoming-android-release\/#primaryimage","url":"https:\/\/blog.mozilla.org\/addons\/files\/2019\/10\/Fx-Browser-icon-fullColor.png","contentUrl":"https:\/\/blog.mozilla.org\/addons\/files\/2019\/10\/Fx-Browser-icon-fullColor.png","width":2048,"height":2048,"caption":"Firefox logo"},{"@type":"BreadcrumbList","@id":"https:\/\/blog.mozilla.org\/addons\/2023\/08\/10\/prepare-your-firefox-desktop-extension-for-the-upcoming-android-release\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/blog.mozilla.org\/addons\/"},{"@type":"ListItem","position":2,"name":"Prepare your Firefox desktop extension for the upcoming Android release"}]},{"@type":"WebSite","@id":"https:\/\/blog.mozilla.org\/addons\/#website","url":"https:\/\/blog.mozilla.org\/addons\/","name":"Mozilla Add-ons Community Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blog.mozilla.org\/addons\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/blog.mozilla.org\/addons\/#\/schema\/person\/4c2e23c8fee2460a91031d2825ff7d35","name":"Scott DeVaney","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/blog.mozilla.org\/addons\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/dc38a62432c7d12585390805c2bc58e2?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/dc38a62432c7d12585390805c2bc58e2?s=96&d=mm&r=g","caption":"Scott DeVaney"},"url":"https:\/\/blog.mozilla.org\/addons\/author\/sdevaneymozilla-com\/"}]}},"_links":{"self":[{"href":"https:\/\/blog.mozilla.org\/addons\/wp-json\/wp\/v2\/posts\/9099"}],"collection":[{"href":"https:\/\/blog.mozilla.org\/addons\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.mozilla.org\/addons\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.mozilla.org\/addons\/wp-json\/wp\/v2\/users\/648"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.mozilla.org\/addons\/wp-json\/wp\/v2\/comments?post=9099"}],"version-history":[{"count":0,"href":"https:\/\/blog.mozilla.org\/addons\/wp-json\/wp\/v2\/posts\/9099\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.mozilla.org\/addons\/wp-json\/wp\/v2\/media\/8750"}],"wp:attachment":[{"href":"https:\/\/blog.mozilla.org\/addons\/wp-json\/wp\/v2\/media?parent=9099"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.mozilla.org\/addons\/wp-json\/wp\/v2\/categories?post=9099"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.mozilla.org\/addons\/wp-json\/wp\/v2\/tags?post=9099"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}