Bug 1320186: Don't sanitize storage values more than once. r?aswan draft
authorKris Maglione <maglione.k@gmail.com>
Tue, 06 Jun 2017 18:59:06 -0700
changeset 589973 45cadc8b865782f3633d01785e6084cd676ccc72
parent 589972 5c7c5f3952e82abfb4e5b25dad439a2197bf6621
child 632054 936956628e013edb60f5dd8d8867c9880b99373a
push id62558
push usermaglione.k@gmail.com
push dateWed, 07 Jun 2017 02:06:32 +0000
reviewersaswan
bugs1320186
milestone55.0a1
Bug 1320186: Don't sanitize storage values more than once. r?aswan MozReview-Commit-ID: y6S5LqS7fL
toolkit/components/extensions/ExtensionStorage.jsm
toolkit/components/extensions/ext-storage.js
--- a/toolkit/components/extensions/ExtensionStorage.jsm
+++ b/toolkit/components/extensions/ExtensionStorage.jsm
@@ -137,21 +137,21 @@ this.ExtensionStorage = {
       "ExtensionStorage: Finish writing extension data",
       promise);
 
     return promise.then(() => {
       AsyncShutdown.profileBeforeChange.removeBlocker(promise);
     });
   },
 
-  set(extensionId, items, context) {
+  set(extensionId, items) {
     return this.read(extensionId).then(extData => {
       let changes = {};
       for (let prop in items) {
-        let item = this.sanitize(items[prop], context);
+        let item = items[prop];
         changes[prop] = {oldValue: extData[prop], newValue: item};
         extData[prop] = item;
       }
 
       this.notifyListeners(extensionId, changes);
 
       return this.write(extensionId);
     });
--- a/toolkit/components/extensions/ext-storage.js
+++ b/toolkit/components/extensions/ext-storage.js
@@ -26,17 +26,17 @@ this.storage = class extends ExtensionAP
     let {extension} = context;
     return {
       storage: {
         local: {
           get: function(spec) {
             return ExtensionStorage.get(extension.id, spec);
           },
           set: function(items) {
-            return ExtensionStorage.set(extension.id, items, context);
+            return ExtensionStorage.set(extension.id, items);
           },
           remove: function(keys) {
             return ExtensionStorage.remove(extension.id, keys);
           },
           clear: function() {
             return ExtensionStorage.clear(extension.id);
           },
         },