Firefox Extension Workshop | Get help creating & publishing Firefox extensions.
Firefox Extension Workshop | Get help creating & publishing Firefox extensions. 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 Firefox built-in consent for data collection and transmission Taxonomy Specifying data types Accessing the data collection permissions programmatically Updates Best practices for collecting user data consents Know your privacy settings Get prepared 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 Testing localizations 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 User Scripts Data Collection and Transmission Disclosure and Control Monetization Security, Compliance and Blocking Add-on Policies FAQ No Surprises Content Submission Guidelines Data Collection and Transmission Disclosure and Control 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 m...