Extension Workshop

  • Extension Basics
    • Getting started
    • Mozilla Developer Network
  • Documentation Topics
    • Develop
      • Firefox Tools
      • User Experience
      • Firefox for Android
      • Port to Firefox
      • Test and debug
      Getting Started
      • Unique Firefox Capabilities
      • Firefox Workflow Overview
      • About the WebExtensions API
      Manifest V3
      • Manifest V3 migration guide
        • What is Manifest V3?
        • Manifest V3 changes
        • Migration checklist
      Cross-Browser Development
      • Browser Compatibility
        • Namespace
        • Asynchronous
        • API Coverage
        • Manifest keys
        • More information
      • Build cross-browser extensions
      Firefox Tools
      • Build an extension in 5 minutes
      • Browser Extension Development Tools
        • Boilerplating tools
        • Coding tools
        • Testing and debugging tools
        • Translation tools
        • Tools for Firefox for Android
      • Choosing a Firefox version for extension development
        • Firefox editions
        • Firefox version and their web extension development capabilities
      • Getting started with web-ext
        • Installation
        • Update
        • Using web-ext
        • Check your code
        • Test and debug
        • Package, sign, and publish
        • Use the configuration file
        • Advanced topics
        • See also
      • web-ext v8 command reference
        • What's new
        • Commands
        • web-ext build
        • web-ext docs
        • web-ext dump-config
        • web-ext lint
        • web-ext run
        • web-ext sign
        • Global options
        • Setting option environment variables
        • See also
      • web-ext v7 command reference
        • Commands
        • Global options
        • Setting option environment variables
        • See also
      • Web-ext Webpack plug-in
      • Browser API Polyfill
      • Extensions and the Add-on ID
        • Basic workflow with no add-on ID
        • When do you need an add-on ID?
      User Experience
      • Build a secure extension
      • Request the right permissions
        • Introduction
        • Advised permissions
        • Avoid unnecessary permissions
        • Request permissions at runtime
        • Add information about permissions to your extensions AMO page
      • Best practices for collecting user data consents
        • Know your privacy settings
        • Get prepared
        • Create a privacy policy
        • Prompt after install
        • Determine your consent flow
        • Your consent dialogs
      • Build an accessible extension
      • Onboard, upboard, offboard users
        • Onboarding
        • Upboarding
        • Offboarding
      • User experience best practices
        • 1. Keep it focused
        • 2. Give users what they need, where they need it
        • 3. Keep the user informed
        • 4. Be Firefoxy in look and feel
        • 5. Great onboarding experience
        • 6. Test, test, and then test again
      Mobile
      • Differences between desktop and Android extensions
        • Introduction
        • User interface
        • Native application interaction
        • Permissions
        • Storage
      • User experience guidelines for mobile extensions
        • Introduction
        • The basics
        • The extra mile
        • The last mile
      • Developing extensions for Firefox for Android
        • Set up your computer and Android emulator or device
        • Check for Firefox for Android compatibility
        • Install and run your extension in Firefox for Android
        • Debug your extension
        • Manifest V3 compatibility
      • GeckoView Extensions (Android library)
      Port Your Extension
      • Porting a Google Chrome Extension
      Debug and Test
      • Debugging
        • Developer tools toolbox
        • Debugging background scripts
        • Debugging options pages
        • Debugging popups
        • Debugging content scripts
        • Debugging sidebars
        • Debugging storage
        • Debugging developer tools pages and panels
        • Debug permission requests
        • Debugging browser restarts
      • Temporary Installation in Firefox
        • Reloading a temporary extension
        • Using the command line
        • Detecting temporary installation
        • Limitations
      • Testing persistent and restart features
        • What is an add-on ID?
        • What is a Firefox profile?
        • Extension behavior in Firefox
        • What do I do to ensure I can test my extension?
      • Test permission requests
        • Permission grant behavior during testing
        • Observe or verify install time permission requests
        • Retest runtime permission grants
      • Known issues
        • Content scripts don't appear in DevTools
        • Extension source don't update in DevTools
        • "Destroyed actor" errors when debugging Android
    • Publish
      • Get your extension signed
      • Distribute your signed extension
      • Promote your extension
      Policies
      • Add-on Policies
        • No Surprises
        • Content
        • Submission Guidelines
        • Development Practices
        • Data Disclosure, Collection and Management
        • Monetization
        • Security, Compliance and Blocking
      • Firefox Add-on Distribution Agreement
        • 1. Introduction
        • 2. Accounts
        • 3. Privacy Policy
        • 4. Distribution, certificates, & review process
        • 5. Your obligations
        • 6. Licenses; proprietary rights
        • 7. Content removal
        • 8. Disclaimer of warranties
        • 9. Limitation of liability
        • 10. Release; indemnification
        • 11. General legal terms
      • Add-ons Blocking Process
        • Security Over Choice
        • Blocking Criteria
        • Developer Outreach
        • Requesting a Block
        • Blocking Other Types of Third Party Software
      • Third Party Library Usage
        • When must links for third-party libraries be provided?
        • How to determine the third-party library link
        • Communicating third-party library links to reviewers
      • What does review rejection mean to users?
        • Review overview
        • Impact of review rejection
        • Blocklisting
      Sign
      • Signing and distribution overview
        • Signing your add-ons
        • Distributing your add-on
        • Post-submission review
        • More information about AMO
      • Package your extension
        • Windows
        • Mac OSX
        • Linux / Mac OSX Terminal
      Distribute
      • Distribute Manifest V2 and V3 extensions
      • Distribute pre-release versions
      • Submitting an add-on
        • Listing on AMO
        • Self-distribution
        • Get help
      • Source code submission
        • Provide your extension source code
        • Default reviewer build environment
        • Use of obfuscated code
        • Source code checklist
      • Firefox version compatibility
        • Version compatibility
        • The `browser_specific_settings` key
        • AMO compatibility setting
        • Recommendations
      • Add-on ownership
        • Transfer ownership
        • Code disputes
      • Developer accounts
        • Setting a display name
        • Blocked accounts
        • Issues receiving emails from AMO
      • Self-distribution
        • Self-distribution options
      • Sideloading
        • Preparing your add-on
        • Install add-on from file
        • Installation using the standard extension folders
      • For desktop apps
      Promote
      • Create an appealing listing
        • Your add-on’s name
        • Create a captivating icon
        • Create a meaningful set of keywords
        • Make sure your summary is just long enough
        • Focus on key features in your screenshots
        • The add-on description can be longer, but not too long
        • Make it local
        • Make it experimental
        • Select the right platforms and versions
        • Categorize well
        • Be prepared to provide support
        • Set up a developer profile
        • Use plain language in any privacy policy or license agreement
        • Gently ask for a review
        • Make use of Markdown
        • Some other points
      • What’s great content and design?
      • Promoting your extension
        • Promote your add-on from your website
        • Friends, family, and colleagues
        • Events and meetups
        • Current users
        • Social media
        • Engage with your users
        • Create a forum, user group, or similar
        • Engage with bloggers and news media
        • Advertising
      • Make money from browser extensions
        • Will I ever be able to sell through AMO?
        • What can't you do
        • What can you do
        • Unsolicited offers
        • How can I maximize my income?
      • Recommended extensions
        • Overview
        • Criteria for Recommended extensions
        • Developer partnership
        • Selection process
    • Manage
      • Stay informed when Firefox changes
      • Publish extension updates
      • Manage authors of your extension
      • Promote your extension
      • Removing your extension from distribution
      Resources
      • Updating your extension
        • Enabling updates to your extension
        • Manifest structure
        • Testing automatic updating
      • Best practices for updating your extension
      • Monitoring extension usage statistics
        • Accessing the statistics dashboard
        • Tracking external sources
        • Add-on listing example
      • Resources for publishers
      • Retiring your extension
        • Reasons for withdrawing your extension
        • Steps to retiring an extension
        • Suggested retirement timetable
    • Enterprise
      • Developing your enterprise extension
      • Distributing your enterprise extension
      Enterprise support
      • Manage add-ons for Firefox for Enterprise
      • Install system add-ons for Firefox for Enterprise
      Enterprise resources
      • Enterprise development
        • Data collection disclosure and consent for enterprise extensions
        • How to add policy support
        • Distributing your policy
      • Enterprise policies that impact extensions
        • Relevant policies
        • Other relevant policies
      • Enterprise distribution
        • Signed vs. unsigned extensions
        • Using an ExtensionSettings policy
        • Bundling add-ons with a custom Firefox
    • Themes
      Creating themes
      • Using the AMO theme generator
        • Getting started
        • Submitting your theme
        • Updating your theme
      • Static themes
        • Introduction
        • Create a simple static theme
        • Updating static themes
        • Single image themes
        • Multiple image themes
        • Static animated themes
      • Dynamic themes
        • Introduction
        • Creating dynamic themes
        • Publishing dynamic themes
      • Cross-browser compatibility
  • Community
    • Who is part of the community?
    • Connect with the community
    • Get involved in the community
    Get in touch
    • Community Forum
    • Add-ons Blog
    • Office Hours
    • Stack Overflow
    • Communication Calendar
    • Dev Mailing List
    Contribute
    • Contribution opportunities
    • Onboard to the WebExtensions codebase
    • Hacking guide for WebExtensions code contributions
    • WebExtensions Experiments
    • Find or create a bug
Submit or Manage Extensions
Submit or Manage Extensions

3 results for tag “mobile”

  1. Developing extensions for Firefox for Android

    Developing extensions for Firefox for Android Learn more about developing extensions for Firefox for Android Contents Set up your computer and Android emulator or deviceCheck for Firefox for Android compatibilityInstall and run your extension in Firefox for AndroidDebug your extensionManifest V3 compatibility You approach...

    /documentation/develop/developing-extensions-for-firefox-for-android/

  2. User experience guidelines for mobile extensions

    User Experience Guidelines for Mobile Extensions Make your extension seamlessly integrate with Firefox for Android. Contents IntroductionThe basicsThe extra mileThe last mile Introduction To make sure your users have a great experience with your extension on Firefox for Android, you want to ensure your...

    /documentation/develop/user-experience-guidelines-for-mobile-extensions/

  3. Differences between desktop and Android extensions

    Differences between desktop and Android extensions There are some important distinctions to be aware of when developing an extension for Android. Contents IntroductionUser interfaceNative application interactionPermissionsStorage Firefox for Android offers a subset of the WebExtensions APIs available to the desktop version of Firefox. Some...

    /documentation/develop/differences-between-desktop-and-android-extensions/

Connect With Us

Twitter

For developers:
@mozamo

For end users:
@rockyourfirefox

More

Matrix

Community forum

Extensions Developer Newsletter

Stay up-to-date on news and events for Firefox extension developers.

Thanks! Please check your inbox to confirm your subscription.

If you haven’t previously confirmed a subscription to a Mozilla-related newsletter you may have to do so. Please check your inbox or your spam filter for an email from us.

Mozilla

Add-ons

  • About
  • Blog
  • Developer Hub
  • Developer Policies
  • Forum

Firefox

  • Download Firefox
  • Desktop
  • Mobile
  • Features
  • Beta, Nightly, Developer Edition
    • Twitter (@firefox)
    • YouTube (firefoxchannel)
    • Github (mozilla)
  • Website Privacy Notice
  • Cookies
  • Legal
  • Edit this page on GitHub

Portions of this content are ©1998–2025 by individual mozilla.org contributors. Content available under a Creative Commons license.