Changes

Jump to: navigation, search

Add-ons/developer/communication

5,757 bytes removed, 22:11, 21 November 2016
m
update migration paths
=Evolution in Add-on Development=
[https://wiki.mozilla.org/[WebExtensions |WebExtensions]] are becoming the standard for add-on development in Firefox. At It will be the same time, [https://developer.mozilla.org/Add-ons/Working_with_multiprocess_Firefox multiprocess Firefox] (aka Electrolysis, or e10s) is also rolling out. These changes impact developers only type of XUL/XPCOM and SDK add-ons (some more than others), so we've created resources here to help ease on supported in Firefox by the transitionsend of 2017.
This page contains timelines, migration paths, tutorials, and moreother resources to help you port your add-on to WebExtensions. If you're looking for resources on creating a new developer and would like create an add-on, please head over to [https://developer.mozilla.org/en-US/Add-ons/WebExtensions MDN]. =====Find out if you are affected=====*Look up your add-on with the [https://compatibility-lookup.services.mozilla.com/ compatibility checker] to see if it's impacted.*Use this [https://docs.google.com/drawings/d/1WVUSlU6UDJhr0xsgONS2kM1PohlHIJcrn_6qEE-_dTU/edit diagram] to see which migration group applies to you.*Read through the [https://wiki.mozilla.org/Add-ons/developer/communication#Developers_who_are_affected_by_the_changes migration descriptions] below.
=====What's New=====
*[http://webextensions-experiments.readthedocs.io/ WebExtension WebExtensions Experiments]: prototype WebExtension APIs without having to build Firefox*[https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Embedded_WebExtensions Embedded WebExtensions]: we're making it easier to port to WebExtensions in Firefox 51*Help plan and prioritize WebExtensions APIs by joining the new bi-weekly [https://wiki.mozilla.org/[Add-ons/Contribute/Triage |public triage]*[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 How-Thanks to guides] covering common add-on developer cases, like [https://developer.mozillagithub.orgcom/enaterranova-US/docs/Mozilla/Addbv aterranova-ons/WebExtensions/Intercept_HTTP_requests intercepting web requestsbv] and for the new [https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Add_a_button_to_the_toolbar adding a button to the toolbarExamples#Emoji_Substitution Emoji Substitution WebExtension Example]!
=Timelines & RoadmapRoadmaps=*See a [https://docs.google.com/spreadsheets/d/1OFYrrvAFg8y1mZOEbuIR1axxtV8eul_be6ad9fe8JB0/edit#gid=1952061950 graph of upcoming multiprocess Firefox (e10s) changes], organized by Firefox release dates.*Public Trello boards:**[https://trello.com/b/ZpIDuMAW/addon-planning Add-on planning]: see what the add-ons on team is working on**[https://trello.com/b/MwClom9J/addon-impacting-changes Impacting changes]: see what changes are coming up that impact compatibility**[https://trello.com/b/PC9kB14s/webextensions-roadmap WebExtensions Roadmap]: see which APIs are coming up
=Migration paths for developers affected by the changesof legacy add-ons======1) Has SDK add-on using low level APIs==Developers who created an SDK add-on using [https://developer.mozilla.org/Add-ons/SDK/Low-Level_APIs low-level APIs], which break with multiprocess Firefox (aka Electrolysis or e10s). =====Migration Path=====If your add-on code accesses web content using a Here is the comparison chart showing [https://developer.mozilla.org/en-US/Add-ons/SDKWebExtensions/Low-Level_APIs lowComparison_with_the_Add-level on_SDK SDK APIsand their WebExtensions counterparts] like window/utils or tabs/utils, then . If you will likely be affected.<br />don'''''Multiprocess Firefox is currently going through a phased roll-out through early 2017, so we urge t see the APIs you need to port to WebExtensions, please take a look at [https://developerwiki.mozilla.org/index.php?title=Add-ons/SDKdeveloper/Guidescommunication/Multiprocess_Firefox_and_the_SDK test your add-onsnov2016_update&action=edit#Don.27t_See_the_WebExtensions_APIs_You_Need.3F some more] for compatibilityoptions below.'''''<br />
*'''If it breaks''' in multiprocess Firefox, your users will be impacted, and you will need to update your =====2) XUL or XPCOM add-on. You can find documentation on how to make them compatible =====Here is the comparison chart showing [https://developer.mozilla.org/en-US/Add-ons/Working_with_multiprocess_Firefox hereWebExtensions/Comparison_with_XUL_XPCOM_extensions XUL/XPCOM APIs and their WebExtensions counterparts].<br />*'''If it does not breakyou don''' in multiprocess Firefoxt see the APIs you need to port to WebExtensions, you should add the please take a look at some [https://developerwiki.mozilla.org/index.php?title=Add-ons/SDKdeveloper/Toolscommunication/package_jsonnov2016_update&action=edit#Key_reference <code>multiprocess</code> permissionDon.27t_See_the_WebExtensions_APIs_You_Need.3F more options] in package.jsonbelow.
For assistance, please join =Don't See the [https://mail.mozilla.org/listinfo/dev-addons dev-addons@mozilla.org] mailing list and ask for help!WebExtensions APIs You Need?=
==2) Has SDK add-on using legacy *If you're experienced with Mozilla infrastructure and would like to develop WebExtensions APIs==Developers who created an SDK add-ondirectly for Firefox, but uses either XPCOM or other legacy here is a list of [https://mzl.la/2dVs5Ys approved APIs] that you can start contributing to.
=====Migration Path=====Developers in this group potentially have *If you want to update their add-on twice--once for e10s compatibility (if using prototype and tinker with WebExtensions APIs without having to build Firefox, [httpshttp://developerwebextensions-experiments.mozillareadthedocs.orgio/Add-onsen/SDKlatest/Low-Level_APIs low-level APIsindex.html WebExtensions Experiments]), and again is for WebExtensions compatibility (because it uses legacy APIs).you!
#'''Use only [https://developer.mozilla.org/Add-ons/SDK/High-Level_APIs high-level APIs]''' - High-level APIs are [https://wiki.mozilla.org/Add-ons/developer/communication#1.29_Has_SDK_add-on_using_low_level_APIs e10s compatible] and are more likely *If you just want to have an equivalent request a WebExtensions API. You will have to migrate again once WebExtensions are fully ready, but it should be pretty easy to do in this case.#'''Move to please [https://developerbugzilla.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions enter_bug.cgi?product=Toolkit&component=WebExtensions:%20Untriaged file a bug]''' - Check the [https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Comparison_with_the_Add-on_SDK SDK/WebExtensions comparison chart] to see if the APIs you need are available, These will be triaged and see what else we're doing to processed in a [[Add-ons/developerContribute/communication#Managing_the_ImpactTriage|mitigate the impactbi-weekly public meeting]] of this transition.
==3) Has SDK add-on using only high level APIs==Developers who used the SDK for their add-ons using only [https://developer.mozilla.org/en-US/Add-ons/SDKWebExtensions/HighEmbedded_WebExtensions Embedded WebExtensions] - In Firefox 51, you will be able to embed a WebExtensions add-Level_APIs highon inside an existing SDK or bootstrapped add-level APIs]on. Might have played around with the Chrome extension API in the past.=====Migration Path=====We recommend you start looking into [https://developer.mozilla.org/AddThis 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], which by the end of 2017 will be the only type and who want to take parts of their add-on supported. Check the that are not compatible with [https://developer.mozilla.org/en-US/Add-onsFirefox/WebExtensions/Comparison_with_the_Add-on_SDK SDK/WebExtensions comparison chartMultiprocess_Firefox multiprocess Firefox] to see if the APIs you need are available, and see what else we're doing to [[Add-ons/developer/communication#Managing_the_Impact|mitigate the impact]] of this transitionmake them compatible.
==4) Has XUL or XPCOM add-on==Developers who created Not all add-ons that don't rely on the SDK or will be able to migrate to WebExtensionswithout having to drop any features.=====Migration Path=====The transition But we want to WebExtensions impacts add-ons built on APIs like XUL and XPCOM most of all. We expect work with you to remove support for these technologies in Firefox get as many add-ons by migrated as possible with the end of 2017functionality you created intact. We hope this will give us enough time invite you to contribute to help you migrate its evolution, and provide WebExtension APIs that are suitable for replacing the features we look forward to [[Add-ons/developer/communication#Get_in_Touch|working with you might lose once we stop supporting these APIs]].
If you’ve already updated your add-on for multiprocess Firefox (e10s) compatibility, thank you for clearing this hurdle. If not, =Tools=*[https://developercompatibility-lookup.services.mozilla.orgcom/enLookup tool] to check your add-US/Add-ons/Working_with_multiprocess_Firefox find out how].on type and get porting resource recommendations
To get started migrating =Documentation=*[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 WebExtensionsAPIs]*[https://developer.mozilla.org/en-US/Add-ons/WebExtensions How-to guides] covering common add-on developer cases, check the 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_XUL_XPCOM_extensions Comparison with XUL/XPCOMextensions]*[https://developer.mozilla.org/en-US/Add-ons/WebExtensions comparison chart/Browser_support_for_JavaScript_APIs Browser compatibility table] to see if the for all WebExtensions APIs you need are available*[https://developer.mozilla. Additional resources can be found [[org/en-US/Add-ons/developerWebExtensions/communication#Managing_the_Impact|belowExamples Examples of WebExtensions]].
For assistance, please join the [https://mail.mozilla.org/listinfo/dev-addons dev-addons@mozilla.org] mailing list and ask for help! =Managing the ImpactBlog Posts= *Embedded WebExtensions - In Firefox 51Nov 3, you can 2016: [https://developerblog.mozilla.org/en-USaddons/2016/Add-ons11/WebExtensions03/Embedded_WebExtensions embed] a WebExtensions addmore-on inside an existing SDK or bootstrapped addways-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 contribute-to take parts of their add-on that are not compatible with multiprocess Firefox and make them compatible. *[http://webextensions-experiments.readthedocs.io/ WebExtension Experiments] - now it's easier More ways to prototype WebExtension APIs, and you can do it without having contribute to build Firefox. *We're always adding new [https://developer.mozilla.org/en-US/Add-ons/WebExtensions WebExtensions documentation], so please check them out! *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 [https://wiki.mozilla.org/Add-ons/developer/communication#Get_in_Touch working with you]. =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: [https://calendar.google.com/calendar/ical/mozilla.com_ofjlct07k1784v1u51bqk476bk%40group.calendar.google.com/public/basic.ics iCal] | [https://calendar.google.com/calendar/embed?src=mozilla.com_ofjlct07k1784v1u51bqk476bk%40group.calendar.google.com&ctz=America/Los_Angeles HTML] {{#widget:Widget:Google Calendar|id=bW96aWxsYS5jb21fb2ZqbGN0MDdrMTc4NHYxdTUxYnFrNDc2YmtAZ3JvdXAuY2FsZW5kYXIuZ29vZ2xlLmNvbQ}} =Blog Posts and Other Resources= ==WebExtensions=======Blog Posts=====
*Sep 29, 2016: [https://blog.mozilla.org/addons/2016/09/29/webextensions-in-firefox-51/ WebExtensions in Firefox 51]
*Sep 28, 2016: [https://blog.mozilla.org/addons/2016/09/28/migrating-an-sdk-add-on-to-multiprocess-firefox/ How Video DownloadHelper Became Compatible with Multiprocess Firefox]
*Sep 13, 2016: [https://blog.mozilla.org/addons/2016/09/13/webextensions-and-parity-with-chrome/ WebExtensions and parity with Chrome]
*Aug 25, 2016: [https://blog.mozilla.org/addons/2016/08/25/webextensions-in-firefox-50/ WebExtensions in Firefox 50]
*May 9, 2016: [https://blog.mozilla.org/addons/2016/05/09/results-of-the-webextensions-api-survey/ Results of the WebExtensions API Survey]
*Apr 29, 2016: [https://blog.mozilla.org/addons/2016/04/29/webextensions-in-firefox-48/ WebExtensions in Firefox 48]
*Apr 26, 2016: [https://blog.mozilla.org/addons/2016/04/26/migrating-popup-alt-attribute-from-xulxpcom-to-webextensions/ Migrating Popup ALT Attribute from XUL/XPCOM to WebExtensions]
*Apr 14, 2016: [https://blog.mozilla.org/addons/2016/04/14/developing-extensions-with-web-ext-1-0/ Developing Extensions With Web-ext 1.0]
*Mar 30, 2016: [https://blog.mozilla.org/addons/2016/03/30/tinkering-with-webextensions/ Tinkering with WebExtensions]
*Aug 21, 2015: [https://blog.mozilla.org/addons/2015/08/21/the-future-of-developing-firefox-add-ons/ The Future of Developing Firefox Add-ons]
=====Other Resources====Add-on Developer Communication Calendar=*[https://compatibility-lookup.services.mozilla.com/ Compatibility Lookup Tool]*[https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Embedded_WebExtensions Embedded WebExtensions] let you [https://This calendar includes public meetings, scheduled blog.mozilla.org/addons/2016/09/29/webextensions-in-firefox-51/ embed] a WebExtensions posts, office hours, release milestones that affect add-on inside an existing SDK or bootstrapped developers, and more. Links to add-on*it to your own calendar: [https://developercalendar.mozillagoogle.orgcom/en-US/Add-onscalendar/WebExtensionsical/Comparison_with_the_Add-on_SDK Comparison with the Add-on SDK]*[https://developermozilla.mozillacom_ofjlct07k1784v1u51bqk476bk%40group.org/en-US/Add-ons/WebExtensions/Comparison_with_XUL_XPCOM_extensions Comparison with XUL/XPCOM extensions]*[https://developercalendar.mozillagoogle.orgcom/en-USpublic/Add-ons/WebExtensions How-to guidesbasic.ics iCal] covering common add-on developer cases, like | [https://developercalendar.mozillagoogle.orgcom/en-UScalendar/docs/Mozilla/Add-ons/WebExtensions/Intercept_HTTP_requests intercepting web requests] and [https://developer.embed?src=mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Add_a_button_to_the_toolbar adding a button to the toolbar]*[https://developercom_ofjlct07k1784v1u51bqk476bk%40group.mozillacalendar.org/en-US/Add-ons/WebExtensions/Browser_support_for_JavaScript_APIs Browser compatibility table] for all WebExtensions APIs*[https://githubgoogle.com&ctz=America/mdn/webextensions-examples Example add-onsLos_Angeles HTML] created with WebExtensions APIs
==Multiprocess (e10s) Firefox=======Blog Posts=====*Sep 7, 2016: [https://blog.mozilla.org/addons/2016/09/07/help-make-add-ons-multiprocess-compatible-with-add-on-compatibility-reporter/ Help make add-ons multiprocess compatible with Add-on Compatibility Reporter]*Aug 2, 2016: [https://blog.mozilla.org/addons/2016/08/02/multi-process-firefox-and-add-ons-a-call-to-action/ Multi-process Firefox and Add-ons: A Call to Action for Extension Developers]*June 17, 2016: [https://blog.mozilla.org/addons/2016/06/17/multi-process-firefox-and-amo/ Multi-process Firefox and AMO]*Apr 11, 2016{{#widget: [httpsWidget://blog.mozilla.org/addons/2016/04/11/the-why-of-electrolysis/ The “Why” of Electrolysis]*Nov 23, 2015: [https://blog.mozilla.org/addons/2015/11/23/test-your-add-ons-for-multi-process-firefox-compatibility/ Test your add-ons for Multi-process Firefox compatibility]Google Calendar|id=====Other Resources=====bW96aWxsYS5jb21fb2ZqbGN0MDdrMTc4NHYxdTUxYnFrNDc2YmtAZ3JvdXAuY2FsZW5kYXIuZ29vZ2xlLmNvbQ*[https://developer.mozilla.org/en-US/Add-ons/Working_with_multiprocess_Firefox Working with multiprocess Firefox] ==Migrating from XUL/XPCOM=======Blog Posts=====*Sep 28, 2016: [https://blog.mozilla.org/addons/2016/09/28/migrating-an-sdk-add-on-to-multiprocess-firefox/ How Video DownloadHelper Became Compatible with Multiprocess Firefox]*Apr 26, 2016: [https://blog.mozilla.org/addons/2016/04/26/migrating-popup-alt-attribute-from-xulxpcom-to-webextensions/ Migrating Popup ALT Attribute from XUL/XPCOM to WebExtensions]=====Other Resources=====*[https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Comparison_with_XUL_XPCOM_extensions Comparison with XUL/XPCOM extensions]}}
=Get in Touch=
Confirm
1,605
edits

Navigation menu