Add-ons/developer/communication: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
(https://trello.com/b/ZpIDuMAW/addon-planning is no longer private.)
(→‎Get in Touch: updated IRC links to matrix)
 
(29 intermediate revisions by 2 users not shown)
Line 1: Line 1:
=A Web-based API for Developing Extensions in Firefox=
=A Web-based API for Developing Extensions in Firefox=
The [https://developer.mozilla.org/en-US/Add-ons/WebExtensions WebExtensions API] is the new technology for developing extensions in Firefox. These APIs are based on Web standards and let you create and maintain one codebase that works across multiple browsers, without having to update it for every Firefox release.


With the release of [https://wiki.mozilla.org/RapidRelease/Calendar Firefox 57] in November, only add-ons built with WebExtensions APIs will be supported.
The [https://developer.mozilla.org/en-US/Add-ons/WebExtensions WebExtensions API] was introduced in 2016 as a stable, cross-browser platform that allows extension and theme authors to enhance the default Firefox browser. In November of 2017 it became the only officially supported extension API with the release of Firefox Quantum. The secure, sandboxed nature of the WebExtensions API means that not every legacy API can or will be available. Nevertheless, since its introduction, the WebExtensions API has grown with new features such as tab hiding and additional theme elements, all while maintaining near-complete compatibility with the Chrome extension API. Going forward, you can expect to see improvements in performance as well as additional features for user scripting, context menus, keyboard shortcuts and private browsing.


This page contains timelines, tutorials, and other resources to help you port your legacy add-on to use WebExtensions APIs. If you're looking for resources on creating a new add-on, please head over to [https://developer.mozilla.org/en-US/Add-ons/WebExtensions MDN].
Keep an eye on the [https://blog.mozilla.org/addons/ Add-ons Blog] for more information on enhancements to the WebExtensions API in upcoming releases of Firefox or, if you want real-time detailed information on upcoming changes, follow the [https://mzl.la/2MttuGN WebExtensions product in Bugzilla].


=====What's New=====
This page contains resources to help you port your legacy extension to use WebExtensions APIs. If you're looking for resources on creating a new extension, please head over to [https://developer.mozilla.org/en-US/Add-ons/WebExtensions MDN].
*[https://blog.mozilla.org/addons/2017/03/09/office-hours-support-transitioning-porting-webextensions/ Office Hours support available for transitioning developers] - Check the [https://atsay.github.io/WebExtensions_office_hours/ schedule] to see who can help in your time zone.
*Use [https://blog.mozilla.org/addons/2017/01/20/migrating-to-webextensions-port-your-stored-data/ Embbeded WebExtensions] to port your stored data
*[http://webextensions-experiments.readthedocs.io/ WebExtensions Experiments]: prototype WebExtension APIs without having to build Firefox
*Help plan and prioritize (or vouch for) WebExtensions APIs by joining the bi-weekly [[Add-ons/Contribute/Triage|public triage]].


=Timelines and roadmaps=
=About the WebExtensions API=  
*[https://trello.com/b/ZpIDuMAW/addon-planning Add-on planning]: see what the add-on team is working on
 
*[https://blog.mozilla.org/addons/2017/02/16/the-road-to-firefox-57-compatibility-milestones/ Add-on impacting changes] and [https://wiki.mozilla.org/Firefox/AddOns/Status/current#Schedule visual schedule]: see upcoming changes that will impact compatibility
* [[WebExtensions/Vision|WebExtensions Vision]]: see the high-level vision for the WebExtensions API.
*[https://trello.com/b/PC9kB14s/webextensions-roadmap WebExtensions roadmap]: see upcoming APIs.
* [[WebExtensions/policy|WebExtensions Policy]]: guidelines for what should be included in the WebExtensions API
* [[WebExtensions/FAQ|WebExtensions APIs FAQs]]: Have questions about the WebExtensions API? Check out these frequently asked questions.


=Migration paths for developers of legacy add-ons=
=Migration paths for developers of legacy add-ons=
Line 31: Line 27:


*If you want to request a new WebExtensions API, please read [https://wiki.mozilla.org/WebExtensions/NewAPIs this page].
*If you want to request a new WebExtensions API, please read [https://wiki.mozilla.org/WebExtensions/NewAPIs this page].
[https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Embedded_WebExtensions Embedded WebExtensions] - Up until Firefox 57 you can embed a WebExtensions add-on inside an existing SDK or bootstrapped add-on. This is especially useful to developers of SDK or bootstrapped add-ons who want to start migrating to WebExtensions and take advantage of new APIs like Native Messaging, but can’t fully migrate yet. It’s also useful for developers who want to complete data migration towards WebExtensions, and who want to take parts of their add-on that are not compatible with [https://developer.mozilla.org/en-US/Firefox/Multiprocess_Firefox multiprocess Firefox] and make them compatible.


Not all add-ons will be able to migrate to WebExtensions without having to drop any features. But we want to work with you to get as many add-ons migrated as possible with the functionality you created intact. We invite you to contribute to its evolution, and we look forward to [[Add-ons/developer/communication#Get_in_Touch|working with you]].
Not all add-ons will be able to migrate to WebExtensions without having to drop any features. But we want to work with you to get as many add-ons migrated as possible with the functionality you created intact. We invite you to contribute to its evolution, and we look forward to [[Add-ons/developer/communication#Get_in_Touch|working with you]].
Line 38: Line 32:
=Tools=
=Tools=
*[https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Getting_started_with_web-ext web-ext] is a command line tool designed to speed up various parts of the WebExtension development process, making development faster and easier.
*[https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Getting_started_with_web-ext web-ext] is a command line tool designed to speed up various parts of the WebExtension development process, making development faster and easier.
*[https://compatibility-lookup.services.mozilla.com/ Lookup tool] to check your add-on type and get porting resource recommendations
* [https://www.extensiontest.com/ The Extension Compatibility Test] is a utility that can test your Chrome extension's compatibility with Firefox. All you need to do is upload your .crx file.  
*[https://blog.mozilla.org/addons/2017/01/20/migrating-to-webextensions-port-your-stored-data/ Embbeded WebExtensions] are available to port your stored data
*[https://github.com/mi-g/weh WebExtensions Helper] speeds up browser add-ons development by providing  facilities for WebExtensions-based (Firefox, Chrome, Opera and Edge) extensions
*[https://github.com/mi-g/weh WebExtensions Helper] speeds up browser add-ons development by providing  facilities for WebExtensions-based (Firefox, Chrome, Opera and Edge) extensions
* [https://webextensions.tech/ webextensions.tech] is a scaffolding UI tool for browser extensions. It lets you to input and select few parameters and outputs a complete boilerplate browser extension project.
*[https://github.com/yeoman/generator-chrome-extension Chrome Extension generator] creates everything you need to get started with extension development. You can choose Browser UI(Browser,Page Action, Omnibox) type and select permissions you need.
*[https://github.com/yeoman/generator-chrome-extension Chrome Extension generator] creates everything you need to get started with extension development. You can choose Browser UI(Browser,Page Action, Omnibox) type and select permissions you need.
*[http://extensionizr.com/ Extensionizr] is a wizard that helps you create a basic extension
*[http://extensionizr.com/ Extensionizr] is a wizard that helps you create a basic extension
Line 48: Line 42:
=Documentation & Tutorials=
=Documentation & Tutorials=
*[https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Porting_a_legacy_Firefox_add-on Porting guides that map SDK and XUL APIs to available WebExtensions APIs]
*[https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Porting_a_legacy_Firefox_add-on Porting guides that map SDK and XUL APIs to available WebExtensions APIs]
* [https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Porting_a_Google_Chrome_extension How to port a Chrome extension to Firefox]
*[https://developer.mozilla.org/en-US/Add-ons/WebExtensions How-to guides] covering common add-on developer cases, like [https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Intercept_HTTP_requests intercepting web requests] and [https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Add_a_button_to_the_toolbar adding a button to the toolbar]
*[https://developer.mozilla.org/en-US/Add-ons/WebExtensions How-to guides] covering common add-on developer cases, like [https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Intercept_HTTP_requests intercepting web requests] and [https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Add_a_button_to_the_toolbar adding a button to the toolbar]
*[https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Comparison_with_the_Add-on_SDK Comparison with the Add-on SDK]
*[https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Comparison_with_the_Add-on_SDK Comparison with the Add-on SDK]
Line 53: Line 48:
*[https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Browser_support_for_JavaScript_APIs Browser compatibility table] for all WebExtensions APIs
*[https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Browser_support_for_JavaScript_APIs Browser compatibility table] for all WebExtensions APIs
*[https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Examples Examples of WebExtensions on MDN Web Docs]
*[https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Examples Examples of WebExtensions on MDN Web Docs]
* [https://github.com/iamVP7/MyExtensions/blob/master/README.md @iamvp7's Tutorials & examples of WebExtensions]


=Blog Posts=
=Blog Posts=
All WebExtensions blog posts are [https://blog.mozilla.org/addons/category/web-extensions/ here].
All WebExtensions blog posts are [https://blog.mozilla.org/addons/category/web-extensions/ here].
* December 20, 2018: [https://blog.mozilla.org/addons/2018/12/20/extensions-in-firefox-65/ Extensions in Firefox 65]
* November 8, 2018: [https://blog.mozilla.org/addons/2018/11/08/extensions-in-firefox-64/ Extensions in Firefox 64]
* August 31, 2018: [https://blog.mozilla.org/addons/2018/08/31/extensions-in-firefox-63/ Extensions in Firefox 63]
* July 5, 2018: [https://blog.mozilla.org/addons/2018/07/05/extensions-in-firefox-62/ Extensions in Firefox 62]
* May 17, 2018: [https://blog.mozilla.org/addons/2018/05/17/extensions-in-firefox-61/ Extensions in Firefox 61]
* April 2, 2018: [https://blog.mozilla.org/addons/2018/04/02/extensions-firefox-60/ Extensions in Firefox 60]
* January 26, 2018: [https://blog.mozilla.org/addons/2018/01/26/extensions-firefox-59/ Extensions in Firefox 59]
* November 20, 2017: [https://blog.mozilla.org/addons/2017/11/20/extensions-in-firefox-58/ Extensions in Firefox 58]
* November 3, 2017: [https://blog.mozilla.org/addons/2017/11/03/keeping-tabs-tab-api/ Keeping Tabs on the Tab API]
* October 3, 2017: [https://blog.mozilla.org/addons/ Legacy Support on Firefox ESR]
* September 28, 2017: [https://blog.mozilla.org/addons/2017/09/28/webextensions-in-firefox-57/ WebExtensions in Firefox 57]
* September 8, 2017: [https://blog.mozilla.org/addons/2017/09/08/last-chance-migrate-user-data/ Last Chance to Migrate Your Legacy Data]
* September 7, 2017: [https://blog.mozilla.org/addons/2017/09/07/tell-users-expect-webextensions-version/ Tell Your Users What To Expect in Your WebExtensions Version]
* August 11, 2017: [https://blog.mozilla.org/addons/2017/08/10/webextensions-firefox-56/ WebExtensions in Firefox 56]
* August 11, 2017: [https://blog.mozilla.org/addons/2017/08/10/webextensions-firefox-56/ WebExtensions in Firefox 56]
* August 3, 2017: [https://blog.mozilla.org/addons/2017/08/03/extension-examples-see-apis-action/ Extension Examples: See the APIs in Action]
* August 3, 2017: [https://blog.mozilla.org/addons/2017/08/03/extension-examples-see-apis-action/ Extension Examples: See the APIs in Action]
Line 105: Line 112:


=Get in Touch=
=Get in Touch=
* [[IRC|IRC]]:
* [[Matrix]]:  
** #teamaddons: team chat
** Add-ons:  support for extensions, themes, and API development
** #addons:  support for extensions, themes, plugins and addons.mozilla.org
** Add-on Reviewers: add-on reviews and policy
** #addon-reviewers: add-on reviews and policy
** AMO: addons.mozilla.org bugs and development
** #amo: addons.mozilla.org bugs and development
** #extdev: extension development
** #themedev: theme development
** #webextensions: web extensions


* Mailing Lists:  
* Mailing List:  
**[https://mail.mozilla.org/listinfo/dev-addons dev-addons] for general discussion
**[https://mail.mozilla.org/listinfo/dev-addons dev-addons] for general discussion
**[https://mail.mozilla.org/listinfo/webextensions-support webextensions-support] for help on migrating to WebExtensions


* More ways to get in touch:
* More ways to get in touch:
** Office Hours for migration support: https://atsay.github.io/WebExtensions_office_hours/
** Blog: https://blog.mozilla.org/addons/
** Blog: https://blog.mozilla.org/addons/
** Forum: https://discourse.mozilla-community.org/c/add-ons
** Forum: https://discourse.mozilla-community.org/c/add-ons
== Meetings ==
Please see the add-ons main page [https://wiki.mozilla.org/Add-ons#Meetings Meetings section]

Latest revision as of 20:42, 20 February 2020

A Web-based API for Developing Extensions in Firefox

The WebExtensions API was introduced in 2016 as a stable, cross-browser platform that allows extension and theme authors to enhance the default Firefox browser. In November of 2017 it became the only officially supported extension API with the release of Firefox Quantum. The secure, sandboxed nature of the WebExtensions API means that not every legacy API can or will be available. Nevertheless, since its introduction, the WebExtensions API has grown with new features such as tab hiding and additional theme elements, all while maintaining near-complete compatibility with the Chrome extension API. Going forward, you can expect to see improvements in performance as well as additional features for user scripting, context menus, keyboard shortcuts and private browsing.

Keep an eye on the Add-ons Blog for more information on enhancements to the WebExtensions API in upcoming releases of Firefox or, if you want real-time detailed information on upcoming changes, follow the WebExtensions product in Bugzilla.

This page contains resources to help you port your legacy extension to use WebExtensions APIs. If you're looking for resources on creating a new extension, please head over to MDN.

About the WebExtensions API

Migration paths for developers of legacy add-ons

1) SDK add-on

Here is the comparison chart showing SDK APIs and their WebExtensions counterparts. If you don't see the APIs you need to port to WebExtensions, please take a look at some more options below.

2) XUL or XPCOM add-on

Here is the comparison chart showing XUL/XPCOM APIs and their WebExtensions counterparts. If you don't see the APIs you need to port to WebExtensions, please take a look at some more options below.

Don't See the WebExtensions APIs You Need?

  • If you're experienced with Mozilla infrastructure and would like to develop WebExtensions APIs directly for Firefox, here is a list of approved APIs that you can start contributing to.
  • If you want to prototype and tinker with WebExtensions APIs without having to build Firefox, WebExtensions Experiments is for you!
  • If you want to request a new WebExtensions API, please read this page.

Not all add-ons will be able to migrate to WebExtensions without having to drop any features. But we want to work with you to get as many add-ons migrated as possible with the functionality you created intact. We invite you to contribute to its evolution, and we look forward to working with you.

Tools

  • web-ext is a command line tool designed to speed up various parts of the WebExtension development process, making development faster and easier.
  • The Extension Compatibility Test is a utility that can test your Chrome extension's compatibility with Firefox. All you need to do is upload your .crx file.
  • WebExtensions Helper speeds up browser add-ons development by providing facilities for WebExtensions-based (Firefox, Chrome, Opera and Edge) extensions
  • webextensions.tech is a scaffolding UI tool for browser extensions. It lets you to input and select few parameters and outputs a complete boilerplate browser extension project.
  • Chrome Extension generator creates everything you need to get started with extension development. You can choose Browser UI(Browser,Page Action, Omnibox) type and select permissions you need.
  • Extensionizr is a wizard that helps you create a basic extension
  • Chrome Boilerplate
  • Skeleton Chrome Extension is an extension bootstrap and template

Documentation & Tutorials

Blog Posts

All WebExtensions blog posts are here.

Add-on Developer Communication Calendar

This calendar includes public meetings, scheduled blog posts, office hours, release milestones that affect add-on developers, and more. Links to add it to your own calendar: iCal | HTML

Error in widget Widget:Google Calendar: Unable to load template 'wiki:Widget:Google Calendar'

Get in Touch

  • Matrix:
    • Add-ons: support for extensions, themes, and API development
    • Add-on Reviewers: add-on reviews and policy
    • AMO: addons.mozilla.org bugs and development

Meetings

Please see the add-ons main page Meetings section