{"id":8871,"date":"2020-07-24T08:00:09","date_gmt":"2020-07-24T15:00:09","guid":{"rendered":"http:\/\/blog.mozilla.org\/addons\/?p=8871"},"modified":"2020-07-24T15:01:12","modified_gmt":"2020-07-24T22:01:12","slug":"extensions-in-firefox-79","status":"publish","type":"post","link":"https:\/\/blog.mozilla.org\/addons\/2020\/07\/24\/extensions-in-firefox-79\/","title":{"rendered":"Extensions in Firefox 79"},"content":{"rendered":"<p>We have a little more news this release: a new API method, a reminder about a recently announced change, a preview of some things to come, and a few interesting improvements. Let\u2019s get started!<\/p>\n<h2>Warming up tabs<\/h2>\n<p>To optimize resource usage, render information on inactive tabs is discarded. When Firefox anticipates that a tab will be activated, the tab is \u201cwarmed up\u201d. Switching to it then feels much more instantaneous. With the new <a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Mozilla\/Add-ons\/WebExtensions\/API\/tabs\/warmup\">tabs.warmup<\/a> function, tab manager extensions will be able to benefit from the same perceived performance improvements. Note this API does not work on discarded tabs and does not need to be called immediately prior to switching tabs. It is merely a performance improvement when the tab switch can be anticipated, such as when hovering over a button that when clicked would switch to the tab.<\/p>\n<h2>Changes to storage.sync<\/h2>\n<p>We\u2019ve blogged about this recently, but given this is part of Firefox 79 I wanted to make sure to remind you about the <a href=\"https:\/\/blog.mozilla.org\/addons\/2020\/07\/09\/changes-to-storage-sync-in-firefox-79\/\">storage.sync changes<\/a> we\u2019ve been working on. <a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Mozilla\/Add-ons\/WebExtensions\/API\/storage\/sync#Storage_quotas_for_sync_data\">Storage quotas for the storage.sync API<\/a> are now being enforced as part of backend changes we\u2019ve introduced for better scalability and performance.<\/p>\n<p>There is no immediate action required if you don\u2019t use the <a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Mozilla\/Add-ons\/WebExtensions\/API\/storage\/sync\">storage.sync<\/a> API or are only storing small amounts of data. We encourage you to make your code resilient while your storage needs grow by checking for quota errors. Also, if you are getting support requests from users related to stored preferences you may want to keep this change in mind and support them in filing a bug as necessary.<\/p>\n<p>For more information and how to file a bug in case you come across issues with this change, please see <a href=\"https:\/\/blog.mozilla.org\/addons\/2020\/07\/09\/changes-to-storage-sync-in-firefox-79\/\">the blog post<\/a>.<\/p>\n<h2 id=\"Fission\">Firefox site isolation coming later this year<\/h2>\n<p>The Firefox platform team has been working on a <a href=\"https:\/\/wiki.mozilla.org\/Project_Fission\">new security architecture<\/a> that isolates sites from each other, down to separating cross-origin iframes from the tab\u2019s process. This new model, nicknamed Fission, is currently available for <a href=\"https:\/\/groups.google.com\/g\/mozilla.dev.platform\/c\/vPby-nEugJY\">opt-in testing in Nightly<\/a>. The platform team is planning to begin roll-out to Nightly and Beta users later this year.<\/p>\n<p>So far, we have identified two changes with Fission enabled that will impact extensions:<\/p>\n<ul>\n<li>Content scripts injecting extension iframes (from a <code>moz-extension:\/\/<\/code> url) and accessing them directly via the <code>contentWindow<\/code> property will be incompatible with Fission, since that iframe will run in a different process. The recommended pattern, as always, is to use <a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Mozilla\/Add-ons\/WebExtensions\/Anatomy_of_a_WebExtension#Content_scripts\">postMessage and extension messaging<\/a> instead.<\/li>\n<li>The synchronous canvas <code>drawWindow<\/code> API will be deprecated, since it\u2019s unable to draw out-of-process iframes. You should switch to the <a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Mozilla\/Add-ons\/WebExtensions\/API\/tabs\/captureTab\">captureTab<\/a> method, which we are looking to extend with more functionality to provide a sufficient replacement.<\/li>\n<\/ul>\n<p>If you are the developer of an extension that uses one of these features, we recommend that you update your extension in the coming months to avoid potential breakages.<\/p>\n<p>We\u2019re working to make the transition to Fission as smooth as possible for users and extension developers, so we need your help: please test your extensions with <a href=\"https:\/\/wiki.mozilla.org\/Project_Fission#Enabling_Fission\">Fission enabled<\/a>, and report any issues on <a href=\"https:\/\/bugzilla.mozilla.org\/enter_bug.cgi?product=WebExtensions\">Bugzilla<\/a> as blocking the <a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=1573488\">fission-webext<\/a> meta bug. If you need help or have any questions, come find us on <a href=\"https:\/\/discourse.mozilla.org\/t\/project-fission-firefox-site-isolation-coming-later-this-year\/64466\">our community forum<\/a> or <a href=\"https:\/\/chat.mozilla.org\/#\/room\/#addons:mozilla.org\">Matrix<\/a>.<\/p>\n<p>We will continue to monitor changes that will require add-ons to be updated. We encourage you to subscribe to our blog to stay up to date on the latest developments. If more changes to add-ons are necessary we will reach out to developers individually or announce the changes here.<\/p>\n<h2>Miscellaneous<\/h2>\n<ul>\n<li>Extensions can use <a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Mozilla\/Add-ons\/WebExtensions\/API\/webRequest\">webRequest<\/a> listeners to observe their own requests initiated by the <a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Mozilla\/Add-ons\/WebExtensions\/API\/downloads\">downloads<\/a> API.<\/li>\n<li>The <a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Mozilla\/Add-ons\/WebExtensions\/API\/tabs\/duplicate\">tabs.duplicate<\/a> API now makes the tab active before resolving the promise, for parity with Chrome.<\/li>\n<li>Disabling and re-enabling a WebExtension which provides a default search engine now correctly sets the engine as default again.<\/li>\n<\/ul>\n<p>Special thanks in this release goes to community members <a href=\"https:\/\/mozillians.org\/u\/myeongjun\/\">Myeongjun Go<\/a>, <a href=\"https:\/\/mozillians.org\/u\/soniasingla\/\">Sonia Singla<\/a>, Deepika Karanji, <a href=\"https:\/\/mozillians.org\/en-US\/u\/aroraharsh010\/\">Harsh Arora<\/a>, and my friends at Mozilla that have put a lot of effort into making Firefox 79 successful. Also a special thanks to the Fission team for supporting us through the changes to the extension architecture. Stay tuned for next time!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>We have a little more news this release: a new API method, a reminder about a recently announced change, a preview of some things to come, and a few interesting &hellip; <a class=\"go\" href=\"https:\/\/blog.mozilla.org\/addons\/2020\/07\/24\/extensions-in-firefox-79\/\">Read more<\/a><\/p>\n","protected":false},"author":333,"featured_media":8750,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[44,227,278886],"tags":[278873,322932,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 79 - Mozilla Add-ons Community Blog<\/title>\n<meta name=\"description\" content=\"We have a little more news this release: a new API method, a reminder about a recently announced change, a preview of some things to come, and a few interesting improvements. Let\u2019s get started!\" \/>\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\/07\/24\/extensions-in-firefox-79\/\" \/>\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=\"3 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\/07\/24\/extensions-in-firefox-79\/\",\"url\":\"https:\/\/blog.mozilla.org\/addons\/2020\/07\/24\/extensions-in-firefox-79\/\",\"name\":\"Extensions in Firefox 79 - Mozilla Add-ons Community Blog\",\"isPartOf\":{\"@id\":\"https:\/\/blog.mozilla.org\/addons\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/blog.mozilla.org\/addons\/2020\/07\/24\/extensions-in-firefox-79\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/blog.mozilla.org\/addons\/2020\/07\/24\/extensions-in-firefox-79\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/blog.mozilla.org\/addons\/files\/2019\/10\/Fx-Browser-icon-fullColor.png\",\"datePublished\":\"2020-07-24T15:00:09+00:00\",\"dateModified\":\"2020-07-24T22:01:12+00:00\",\"author\":{\"@id\":\"https:\/\/blog.mozilla.org\/addons\/#\/schema\/person\/86ecef4a5de728e6d3ffe72a25077a94\"},\"description\":\"We have a little more news this release: a new API method, a reminder about a recently announced change, a preview of some things to come, and a few interesting improvements. Let\u2019s get started!\",\"breadcrumb\":{\"@id\":\"https:\/\/blog.mozilla.org\/addons\/2020\/07\/24\/extensions-in-firefox-79\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/blog.mozilla.org\/addons\/2020\/07\/24\/extensions-in-firefox-79\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/blog.mozilla.org\/addons\/2020\/07\/24\/extensions-in-firefox-79\/#primaryimage\",\"url\":\"https:\/\/blog.mozilla.org\/addons\/files\/2019\/10\/Fx-Browser-icon-fullColor.png\",\"contentUrl\":\"https:\/\/blog.mozilla.org\/addons\/files\/2019\/10\/Fx-Browser-icon-fullColor.png\",\"width\":2048,\"height\":2048,\"caption\":\"Firefox logo\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/blog.mozilla.org\/addons\/2020\/07\/24\/extensions-in-firefox-79\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/blog.mozilla.org\/addons\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Extensions in Firefox 79\"}]},{\"@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 79 - Mozilla Add-ons Community Blog","description":"We have a little more news this release: a new API method, a reminder about a recently announced change, a preview of some things to come, and a few interesting improvements. Let\u2019s get started!","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\/07\/24\/extensions-in-firefox-79\/","twitter_misc":{"Written by":"Philipp Kewisch","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/blog.mozilla.org\/addons\/2020\/07\/24\/extensions-in-firefox-79\/","url":"https:\/\/blog.mozilla.org\/addons\/2020\/07\/24\/extensions-in-firefox-79\/","name":"Extensions in Firefox 79 - Mozilla Add-ons Community Blog","isPartOf":{"@id":"https:\/\/blog.mozilla.org\/addons\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blog.mozilla.org\/addons\/2020\/07\/24\/extensions-in-firefox-79\/#primaryimage"},"image":{"@id":"https:\/\/blog.mozilla.org\/addons\/2020\/07\/24\/extensions-in-firefox-79\/#primaryimage"},"thumbnailUrl":"https:\/\/blog.mozilla.org\/addons\/files\/2019\/10\/Fx-Browser-icon-fullColor.png","datePublished":"2020-07-24T15:00:09+00:00","dateModified":"2020-07-24T22:01:12+00:00","author":{"@id":"https:\/\/blog.mozilla.org\/addons\/#\/schema\/person\/86ecef4a5de728e6d3ffe72a25077a94"},"description":"We have a little more news this release: a new API method, a reminder about a recently announced change, a preview of some things to come, and a few interesting improvements. Let\u2019s get started!","breadcrumb":{"@id":"https:\/\/blog.mozilla.org\/addons\/2020\/07\/24\/extensions-in-firefox-79\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blog.mozilla.org\/addons\/2020\/07\/24\/extensions-in-firefox-79\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/blog.mozilla.org\/addons\/2020\/07\/24\/extensions-in-firefox-79\/#primaryimage","url":"https:\/\/blog.mozilla.org\/addons\/files\/2019\/10\/Fx-Browser-icon-fullColor.png","contentUrl":"https:\/\/blog.mozilla.org\/addons\/files\/2019\/10\/Fx-Browser-icon-fullColor.png","width":2048,"height":2048,"caption":"Firefox logo"},{"@type":"BreadcrumbList","@id":"https:\/\/blog.mozilla.org\/addons\/2020\/07\/24\/extensions-in-firefox-79\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/blog.mozilla.org\/addons\/"},{"@type":"ListItem","position":2,"name":"Extensions in Firefox 79"}]},{"@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\/8871"}],"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=8871"}],"version-history":[{"count":0,"href":"https:\/\/blog.mozilla.org\/addons\/wp-json\/wp\/v2\/posts\/8871\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.mozilla.org\/addons\/wp-json\/wp\/v2\/media\/8750"}],"wp:attachment":[{"href":"https:\/\/blog.mozilla.org\/addons\/wp-json\/wp\/v2\/media?parent=8871"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.mozilla.org\/addons\/wp-json\/wp\/v2\/categories?post=8871"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.mozilla.org\/addons\/wp-json\/wp\/v2\/tags?post=8871"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}