{"id":8790,"date":"2020-01-22T09:00:01","date_gmt":"2020-01-22T17:00:01","guid":{"rendered":"http:\/\/blog.mozilla.org\/addons\/?p=8790"},"modified":"2020-01-20T07:39:55","modified_gmt":"2020-01-20T15:39:55","slug":"extensions-in-firefox-72","status":"publish","type":"post","link":"https:\/\/blog.mozilla.org\/addons\/2020\/01\/22\/extensions-in-firefox-72\/","title":{"rendered":"Extensions in Firefox 72"},"content":{"rendered":"<p>After the holiday break we are back with a slightly belated update on extensions in Firefox 72. Firefox releases are changing to a <a href=\"https:\/\/hacks.mozilla.org\/2019\/09\/moving-firefox-to-a-faster-4-week-release-cycle\/\">four week cycle<\/a>, so you may notice these posts getting a bit shorter. Nevertheless, I am excited about the changes that have made it into Firefox 72.<\/p>\n<h2>Welcome to the (network) party<\/h2>\n<p>Firefox determines if a network request is considered third party and will now expose this information in the <a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Mozilla\/Add-ons\/WebExtensions\/API\/webRequest\">webRequest<\/a> listeners, as well as the <a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Mozilla\/Add-ons\/WebExtensions\/API\/proxy\/onRequest\">proxy onRequest<\/a> listener. You will see a new <code>thirdParty<\/code> property. This information can be used by content blockers as an additional factor to determine if a request needs to be blocked.<\/p>\n<h2>Doubling down on security<\/h2>\n<p>On the road to Manifest v3, we also <a href=\"https:\/\/blog.mozilla.org\/addons\/2019\/12\/12\/test-the-new-csp-for-content-scripts\/\">recently announced<\/a> the possibility to test our new content security policy for content scripts. The linked blog post will fill you in on all the information you need to determine if this change will affect you.<\/p>\n<h2>More click metadata for browser- and pageActions<\/h2>\n<p>If your add-on has a <a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Mozilla\/Add-ons\/WebExtensions\/API\/browserAction\">browserAction<\/a> or <a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Mozilla\/Add-ons\/WebExtensions\/API\/pageAction\/\">pageAction<\/a> button, you can now provide additional ways for users to interact with them. We\u2019ve added metadata information to the <a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Mozilla\/Add-ons\/WebExtensions\/API\/browserAction\/onClicked\">onClicked listener<\/a>, specifically the keyboard modifier that was active and a way to differentiate between a left click or a middle click. When making use of these features in your add-on, keep in mind that not all users are accustomed to using keyboard modifiers or different mouse buttons when clicking on icons. You may need to guide your users through the new feature, or consider it a power-user feature.<\/p>\n<h2>Changing storage.local using the developer tools<\/h2>\n<p>In Firefox 70 <a href=\"https:\/\/blog.mozilla.org\/addons\/2019\/10\/10\/extensions-in-firefox-70\/\">we reported<\/a> that the storage inspector will be able to show keys from <a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Mozilla\/Add-ons\/WebExtensions\/API\/storage\/local\">browser.storage.local<\/a>. Initially the data was read-only, but since Firefox 72 we also have limited write support. We hope this will allow you to better debug your add-ons.<\/p>\n<h2>Miscellaneous<\/h2>\n<ul>\n<li>The <a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Mozilla\/Add-ons\/WebExtensions\/API\/captivePortal\">captivePortal<\/a> API now provides access to the <a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Mozilla\/Add-ons\/WebExtensions\/API\/captivePortal\/canonicalURL\">canonicalURL<\/a> property. This URL is requested to detect the captive portal state and defaults to <code>http:\/\/detectportal.firefox.com\/success.txt<\/code><\/li>\n<li>The <a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Mozilla\/Add-ons\/WebExtensions\/API\/types\/BrowserSetting\">browserSettings<\/a> API now supports the <a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Mozilla\/Add-ons\/WebExtensions\/API\/types\/BrowserSetting\/onChange\">onChange listener<\/a>, allowing you to react accordingly if browser features have changed.<\/li>\n<li>Extension files with the .mjs extension, commonly used with ES6 modules, will now correctly load. You may come across this when using script tags, for example.<\/li>\n<\/ul>\n<p>A shout out goes to contributors <a href=\"https:\/\/mozillians.org\/u\/ariasuni\/\">M\u00e9lanie Chauvel<\/a>, <a href=\"https:\/\/mozillians.org\/u\/trishul\">Trishul Goel<\/a>, <a href=\"https:\/\/mozillians.org\/u\/myeongjun\/\">Myeongjun Go<\/a>, <a href=\"https:\/\/mozillians.org\/en-US\/u\/graham.mcknight2\/\">Graham McKnight<\/a> and <a href=\"https:\/\/mozillians.org\/u\/evilpie\/\">Tom Schuster<\/a> for fixing bugs in this version of Firefox. Also we\u2019ve received a patch from James Jahns from the <a href=\"http:\/\/www.capstone.cse.msu.edu\/2019-08\/projects\/mozilla\/\">MSU Capstone project<\/a>. I would also like to thank the numerous staff members from different corners of Mozilla who have helped to make extensions in Firefox 72 a success. Kudos to all of you!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>After the holiday break we are back with a slightly belated update on extensions in Firefox 72. Firefox releases are changing to a four week cycle, so you may notice &hellip; <a class=\"go\" href=\"https:\/\/blog.mozilla.org\/addons\/2020\/01\/22\/extensions-in-firefox-72\/\">Read more<\/a><\/p>\n","protected":false},"author":333,"featured_media":8771,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[44,227,278886],"tags":[278873,322924,278875,278871],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v22.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Extensions in Firefox 72 - 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\/2020\/01\/22\/extensions-in-firefox-72\/\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Philipp Kewisch\" \/>\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\/2020\/01\/22\/extensions-in-firefox-72\/\",\"url\":\"https:\/\/blog.mozilla.org\/addons\/2020\/01\/22\/extensions-in-firefox-72\/\",\"name\":\"Extensions in Firefox 72 - Mozilla Add-ons Community Blog\",\"isPartOf\":{\"@id\":\"https:\/\/blog.mozilla.org\/addons\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/blog.mozilla.org\/addons\/2020\/01\/22\/extensions-in-firefox-72\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/blog.mozilla.org\/addons\/2020\/01\/22\/extensions-in-firefox-72\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/blog.mozilla.org\/addons\/files\/2019\/12\/Firefox-parent-brand-logo.png\",\"datePublished\":\"2020-01-22T17:00:01+00:00\",\"dateModified\":\"2020-01-20T15:39:55+00:00\",\"author\":{\"@id\":\"https:\/\/blog.mozilla.org\/addons\/#\/schema\/person\/86ecef4a5de728e6d3ffe72a25077a94\"},\"breadcrumb\":{\"@id\":\"https:\/\/blog.mozilla.org\/addons\/2020\/01\/22\/extensions-in-firefox-72\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/blog.mozilla.org\/addons\/2020\/01\/22\/extensions-in-firefox-72\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/blog.mozilla.org\/addons\/2020\/01\/22\/extensions-in-firefox-72\/#primaryimage\",\"url\":\"https:\/\/blog.mozilla.org\/addons\/files\/2019\/12\/Firefox-parent-brand-logo.png\",\"contentUrl\":\"https:\/\/blog.mozilla.org\/addons\/files\/2019\/12\/Firefox-parent-brand-logo.png\",\"width\":1856,\"height\":1831},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/blog.mozilla.org\/addons\/2020\/01\/22\/extensions-in-firefox-72\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/blog.mozilla.org\/addons\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Extensions in Firefox 72\"}]},{\"@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\/86ecef4a5de728e6d3ffe72a25077a94\",\"name\":\"Philipp Kewisch\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/blog.mozilla.org\/addons\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/c2d92d64a4b77306c45df1c9be647621?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/c2d92d64a4b77306c45df1c9be647621?s=96&d=mm&r=g\",\"caption\":\"Philipp Kewisch\"},\"description\":\"Twitter: @pkewisch\",\"sameAs\":[\"https:\/\/twitter.com\/pkewisch\",\"https:\/\/x.com\/pkewisch\"],\"url\":\"https:\/\/blog.mozilla.org\/addons\/author\/calendar\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Extensions in Firefox 72 - 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\/2020\/01\/22\/extensions-in-firefox-72\/","twitter_misc":{"Written by":"Philipp Kewisch","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/blog.mozilla.org\/addons\/2020\/01\/22\/extensions-in-firefox-72\/","url":"https:\/\/blog.mozilla.org\/addons\/2020\/01\/22\/extensions-in-firefox-72\/","name":"Extensions in Firefox 72 - Mozilla Add-ons Community Blog","isPartOf":{"@id":"https:\/\/blog.mozilla.org\/addons\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blog.mozilla.org\/addons\/2020\/01\/22\/extensions-in-firefox-72\/#primaryimage"},"image":{"@id":"https:\/\/blog.mozilla.org\/addons\/2020\/01\/22\/extensions-in-firefox-72\/#primaryimage"},"thumbnailUrl":"https:\/\/blog.mozilla.org\/addons\/files\/2019\/12\/Firefox-parent-brand-logo.png","datePublished":"2020-01-22T17:00:01+00:00","dateModified":"2020-01-20T15:39:55+00:00","author":{"@id":"https:\/\/blog.mozilla.org\/addons\/#\/schema\/person\/86ecef4a5de728e6d3ffe72a25077a94"},"breadcrumb":{"@id":"https:\/\/blog.mozilla.org\/addons\/2020\/01\/22\/extensions-in-firefox-72\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blog.mozilla.org\/addons\/2020\/01\/22\/extensions-in-firefox-72\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/blog.mozilla.org\/addons\/2020\/01\/22\/extensions-in-firefox-72\/#primaryimage","url":"https:\/\/blog.mozilla.org\/addons\/files\/2019\/12\/Firefox-parent-brand-logo.png","contentUrl":"https:\/\/blog.mozilla.org\/addons\/files\/2019\/12\/Firefox-parent-brand-logo.png","width":1856,"height":1831},{"@type":"BreadcrumbList","@id":"https:\/\/blog.mozilla.org\/addons\/2020\/01\/22\/extensions-in-firefox-72\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/blog.mozilla.org\/addons\/"},{"@type":"ListItem","position":2,"name":"Extensions in Firefox 72"}]},{"@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\/86ecef4a5de728e6d3ffe72a25077a94","name":"Philipp Kewisch","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/blog.mozilla.org\/addons\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/c2d92d64a4b77306c45df1c9be647621?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/c2d92d64a4b77306c45df1c9be647621?s=96&d=mm&r=g","caption":"Philipp Kewisch"},"description":"Twitter: @pkewisch","sameAs":["https:\/\/twitter.com\/pkewisch","https:\/\/x.com\/pkewisch"],"url":"https:\/\/blog.mozilla.org\/addons\/author\/calendar\/"}]}},"_links":{"self":[{"href":"https:\/\/blog.mozilla.org\/addons\/wp-json\/wp\/v2\/posts\/8790"}],"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\/333"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.mozilla.org\/addons\/wp-json\/wp\/v2\/comments?post=8790"}],"version-history":[{"count":0,"href":"https:\/\/blog.mozilla.org\/addons\/wp-json\/wp\/v2\/posts\/8790\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.mozilla.org\/addons\/wp-json\/wp\/v2\/media\/8771"}],"wp:attachment":[{"href":"https:\/\/blog.mozilla.org\/addons\/wp-json\/wp\/v2\/media?parent=8790"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.mozilla.org\/addons\/wp-json\/wp\/v2\/categories?post=8790"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.mozilla.org\/addons\/wp-json\/wp\/v2\/tags?post=8790"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}