{"id":8864,"date":"2020-07-09T08:37:18","date_gmt":"2020-07-09T15:37:18","guid":{"rendered":"http:\/\/blog.mozilla.org\/addons\/?p=8864"},"modified":"2022-09-06T10:20:50","modified_gmt":"2022-09-06T17:20:50","slug":"changes-to-storage-sync-in-firefox-79","status":"publish","type":"post","link":"https:\/\/blog.mozilla.org\/addons\/2020\/07\/09\/changes-to-storage-sync-in-firefox-79\/","title":{"rendered":"Changes to storage.sync in Firefox 79"},"content":{"rendered":"<p>Firefox 79, which will be released on July 28, includes changes to the <a href=\"https:\/\/developer.mozilla.org\/docs\/Mozilla\/Add-ons\/WebExtensions\/API\/storage\/sync?utm_source=blog.mozilla.org&amp;utm_medium=post&amp;utm_campaign=2020-07-storage-sync-changes-firefox-79\">storage.sync<\/a> area. Items that extensions store in this area are automatically synced to all devices signed in to the same Firefox Account, similar to how Firefox Sync handles bookmarks and passwords. The storage.sync area has been ported to a new Rust-based implementation, allowing extension storage to share the same infrastructure and backend used by <a href=\"https:\/\/support.mozilla.org\/kb\/how-do-i-set-sync-my-computer?utm_source=blog.mozilla.org&amp;utm_medium=post&amp;utm_campaign=2020-07-storage-sync-changes-firefox-79\">Firefox Sync<\/a>.<\/p>\n<p>Extension data that had been stored locally in existing profiles will automatically migrate the first time an installed extension tries to access storage.sync data in Firefox 79. After the migration, the data will be stored locally in a new storage-sync2.sqlite file in the profile directory.<\/p>\n<p>If you are the developer of an extension that syncs extension storage, you should be aware that the new implementation now enforces <a href=\"https:\/\/searchfox.org\/mozilla-central\/rev\/8d55e18875b89cdf2a22a7cba60dc40999c18356\/toolkit\/components\/extensions\/schemas\/storage.json#314-325\">client-side quota limits<\/a>. This means that:<\/p>\n<ul>\n<li>You can make a call using <code><a href=\"https:\/\/developer.mozilla.org\/docs\/Mozilla\/Add-ons\/WebExtensions\/API\/storage\/StorageArea\/getBytesInUse?utm_source=blog.mozilla.org&amp;utm_medium=post&amp;utm_campaign=2020-07-storage-sync-changes-firefox-79\">storage.sync.GetBytesInUse<\/a><\/code> to estimate how much data your extension is storing locally over the limit.<\/li>\n<li>If your extension previously stored data above quota limits, all that data will be migrated and available to your extension, and will be synced. However, attempting to add new data will fail.<\/li>\n<li>If your extension tries to store data above quota limits, the storage.sync API call will raise an error. However, the extension should still successfully retrieve existing data.<\/li>\n<\/ul>\n<p>We encourage you to use the <a href=\"https:\/\/www.mozilla.org\/firefox\/channel\/desktop\/#beta?utm_source=blog.mozilla.org&amp;utm_medium=post&amp;utm_campaign=2020-07-storage-sync-changes-firefox-79\">Firefox Beta<\/a> channel to test all extension features that use the storage.sync API to see how they behave if the client-side storage quota is exceeded before Firefox 79 is released. If you notice any regressions, please check your about:config preferences to ensure that <code>webextensions.storage.sync.kinto<\/code> is set to <code>false<\/code> and <a href=\"https:\/\/bugzilla.mozilla.org\/enter_bug.cgi?assigned_to=nobody%40mozilla.org&amp;bug_ignored=0&amp;bug_severity=--&amp;bug_status=NEW&amp;bug_type=defect&amp;cf_fission_milestone=---&amp;cf_fx_iteration=---&amp;cf_fx_points=---&amp;cf_root_cause=---&amp;cf_status_firefox77=---&amp;cf_status_firefox78=---&amp;cf_status_firefox79=---&amp;cf_status_firefox_esr68=---&amp;cf_status_firefox_esr78=---&amp;cf_status_thunderbird_esr60=---&amp;cf_status_thunderbird_esr68=---&amp;cf_status_thunderbird_esr78=---&amp;cf_tracking_firefox77=---&amp;cf_tracking_firefox78=---&amp;cf_tracking_firefox79=---&amp;cf_tracking_firefox_esr68=---&amp;cf_tracking_firefox_esr78=---&amp;cf_tracking_firefox_relnote=---&amp;cf_tracking_firefox_sumo=---&amp;cf_tracking_thunderbird_esr60=---&amp;cf_tracking_thunderbird_esr68=---&amp;cf_tracking_thunderbird_esr78=---&amp;cf_webcompat_priority=---&amp;comment=TODO%3A%20describe%20the%20issue%2C%20and%20possibly%20include%3A%0D%0A-%20steps%20to%20reproduce%20it%0D%0A-%20attach%20info%20collected%20from%20about%3Async-log%20and%20about%3Asupport%20to%20aid%20the%20investigation&amp;component=Storage&amp;contenttypemethod=list&amp;contenttypeselection=text%2Fplain&amp;defined_groups=1&amp;filed_via=standard_form&amp;flag_type-203=X&amp;flag_type-37=X&amp;flag_type-4=X&amp;flag_type-41=X&amp;flag_type-607=X&amp;flag_type-721=X&amp;flag_type-737=X&amp;flag_type-787=X&amp;flag_type-799=X&amp;flag_type-800=X&amp;flag_type-803=X&amp;flag_type-835=X&amp;flag_type-846=X&amp;flag_type-855=X&amp;flag_type-864=X&amp;flag_type-930=X&amp;flag_type-936=X&amp;flag_type-941=X&amp;flag_type-945=X&amp;form_name=enter_bug&amp;maketemplate=Remember%20values%20as%20bookmarkable%20template&amp;op_sys=Unspecified&amp;priority=--&amp;product=WebExtensions&amp;rep_platform=Unspecified&amp;short_desc=%5Bstorage.sync%5D%20TODO%20brief%20issue%20summary&amp;target_milestone=---&amp;version=unspecified\">then file a bug<\/a>. We do not recommend flipping this preference to <code>true<\/code> as doing so may result in data loss.<\/p>\n<p>If your users report that their extension data does not sync after they upgrade to Firefox 79, please also file a bug. This is likely related to the storage.sync data migration.<\/p>\n<p>Please let us know if there are any questions on our<a href=\"https:\/\/discourse.mozilla.org\/c\/add-ons\/development\/108?utm_source=blog.mozilla.org&amp;utm_medium=post&amp;utm_campaign=2020-07-storage-sync-changes-firefox-79\"> developer community forum<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Firefox 79, which will be released on July 28, includes changes to the storage.sync area. Items that extensions store in this area are automatically synced to all devices signed in &hellip; <a class=\"go\" href=\"https:\/\/blog.mozilla.org\/addons\/2020\/07\/09\/changes-to-storage-sync-in-firefox-79\/\">Read more<\/a><\/p>\n","protected":false},"author":1405,"featured_media":8866,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[44,121,227,278886],"tags":[917],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v22.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Changes to storage.sync in Firefox 79 - Mozilla Add-ons Community Blog<\/title>\n<meta name=\"description\" content=\"In Firefox 79, the storage.sync area has been updated to the Rust-based implementation. This change means that client-side storage quotas are now enforced.\" \/>\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\/09\/changes-to-storage-sync-in-firefox-79\/\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Caitlin Neiman\" \/>\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\/07\/09\/changes-to-storage-sync-in-firefox-79\/\",\"url\":\"https:\/\/blog.mozilla.org\/addons\/2020\/07\/09\/changes-to-storage-sync-in-firefox-79\/\",\"name\":\"Changes to storage.sync 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\/09\/changes-to-storage-sync-in-firefox-79\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/blog.mozilla.org\/addons\/2020\/07\/09\/changes-to-storage-sync-in-firefox-79\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/blog.mozilla.org\/addons\/files\/2020\/07\/Fx-Sync.png\",\"datePublished\":\"2020-07-09T15:37:18+00:00\",\"dateModified\":\"2022-09-06T17:20:50+00:00\",\"author\":{\"@id\":\"https:\/\/blog.mozilla.org\/addons\/#\/schema\/person\/d42e525583ec49a90da7806934fd533f\"},\"description\":\"In Firefox 79, the storage.sync area has been updated to the Rust-based implementation. This change means that client-side storage quotas are now enforced.\",\"breadcrumb\":{\"@id\":\"https:\/\/blog.mozilla.org\/addons\/2020\/07\/09\/changes-to-storage-sync-in-firefox-79\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/blog.mozilla.org\/addons\/2020\/07\/09\/changes-to-storage-sync-in-firefox-79\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/blog.mozilla.org\/addons\/2020\/07\/09\/changes-to-storage-sync-in-firefox-79\/#primaryimage\",\"url\":\"https:\/\/blog.mozilla.org\/addons\/files\/2020\/07\/Fx-Sync.png\",\"contentUrl\":\"https:\/\/blog.mozilla.org\/addons\/files\/2020\/07\/Fx-Sync.png\",\"width\":200,\"height\":200},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/blog.mozilla.org\/addons\/2020\/07\/09\/changes-to-storage-sync-in-firefox-79\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/blog.mozilla.org\/addons\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Changes to storage.sync 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\/d42e525583ec49a90da7806934fd533f\",\"name\":\"Caitlin Neiman\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/blog.mozilla.org\/addons\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/022ba856a87c8f40739b7ef2fdcdf33c?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/022ba856a87c8f40739b7ef2fdcdf33c?s=96&d=mm&r=g\",\"caption\":\"Caitlin Neiman\"},\"description\":\"Add-ons Community Manager at Mozilla.\",\"url\":\"https:\/\/blog.mozilla.org\/addons\/author\/cneimanmozilla-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Changes to storage.sync in Firefox 79 - Mozilla Add-ons Community Blog","description":"In Firefox 79, the storage.sync area has been updated to the Rust-based implementation. This change means that client-side storage quotas are now enforced.","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\/09\/changes-to-storage-sync-in-firefox-79\/","twitter_misc":{"Written by":"Caitlin Neiman","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/blog.mozilla.org\/addons\/2020\/07\/09\/changes-to-storage-sync-in-firefox-79\/","url":"https:\/\/blog.mozilla.org\/addons\/2020\/07\/09\/changes-to-storage-sync-in-firefox-79\/","name":"Changes to storage.sync 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\/09\/changes-to-storage-sync-in-firefox-79\/#primaryimage"},"image":{"@id":"https:\/\/blog.mozilla.org\/addons\/2020\/07\/09\/changes-to-storage-sync-in-firefox-79\/#primaryimage"},"thumbnailUrl":"https:\/\/blog.mozilla.org\/addons\/files\/2020\/07\/Fx-Sync.png","datePublished":"2020-07-09T15:37:18+00:00","dateModified":"2022-09-06T17:20:50+00:00","author":{"@id":"https:\/\/blog.mozilla.org\/addons\/#\/schema\/person\/d42e525583ec49a90da7806934fd533f"},"description":"In Firefox 79, the storage.sync area has been updated to the Rust-based implementation. This change means that client-side storage quotas are now enforced.","breadcrumb":{"@id":"https:\/\/blog.mozilla.org\/addons\/2020\/07\/09\/changes-to-storage-sync-in-firefox-79\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blog.mozilla.org\/addons\/2020\/07\/09\/changes-to-storage-sync-in-firefox-79\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/blog.mozilla.org\/addons\/2020\/07\/09\/changes-to-storage-sync-in-firefox-79\/#primaryimage","url":"https:\/\/blog.mozilla.org\/addons\/files\/2020\/07\/Fx-Sync.png","contentUrl":"https:\/\/blog.mozilla.org\/addons\/files\/2020\/07\/Fx-Sync.png","width":200,"height":200},{"@type":"BreadcrumbList","@id":"https:\/\/blog.mozilla.org\/addons\/2020\/07\/09\/changes-to-storage-sync-in-firefox-79\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/blog.mozilla.org\/addons\/"},{"@type":"ListItem","position":2,"name":"Changes to storage.sync 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\/d42e525583ec49a90da7806934fd533f","name":"Caitlin Neiman","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/blog.mozilla.org\/addons\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/022ba856a87c8f40739b7ef2fdcdf33c?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/022ba856a87c8f40739b7ef2fdcdf33c?s=96&d=mm&r=g","caption":"Caitlin Neiman"},"description":"Add-ons Community Manager at Mozilla.","url":"https:\/\/blog.mozilla.org\/addons\/author\/cneimanmozilla-com\/"}]}},"_links":{"self":[{"href":"https:\/\/blog.mozilla.org\/addons\/wp-json\/wp\/v2\/posts\/8864"}],"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\/1405"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.mozilla.org\/addons\/wp-json\/wp\/v2\/comments?post=8864"}],"version-history":[{"count":0,"href":"https:\/\/blog.mozilla.org\/addons\/wp-json\/wp\/v2\/posts\/8864\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.mozilla.org\/addons\/wp-json\/wp\/v2\/media\/8866"}],"wp:attachment":[{"href":"https:\/\/blog.mozilla.org\/addons\/wp-json\/wp\/v2\/media?parent=8864"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.mozilla.org\/addons\/wp-json\/wp\/v2\/categories?post=8864"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.mozilla.org\/addons\/wp-json\/wp\/v2\/tags?post=8864"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}