Bug 1318669 - Remove stripPrivateProps from blocklist-clients.js, r?mgoodwin draft
authorEthan Glasser-Camp <eglassercamp@mozilla.com>
Fri, 18 Nov 2016 10:07:39 -0500
changeset 441128 adb0dad447a3e90771ac4c5147fd434ee00a8310
parent 439734 51750761f2c61c64cf0553f6cb5fefd4999d3bc0
child 537504 0b08a76a2d0f715e3116ef0e14407144bd3cc239
push id36369
push usereglassercamp@mozilla.com
push dateFri, 18 Nov 2016 15:08:10 +0000
reviewersmgoodwin
bugs1318669
milestone53.0a1
Bug 1318669 - Remove stripPrivateProps from blocklist-clients.js, r?mgoodwin MozReview-Commit-ID: 84yvzpBr3Q6
services/common/blocklist-clients.js
--- a/services/common/blocklist-clients.js
+++ b/services/common/blocklist-clients.js
@@ -36,31 +36,20 @@ const PREF_BLOCKLIST_GFX_CHECKED_SECONDS
 const PREF_BLOCKLIST_ENFORCE_SIGNING         = "services.blocklist.signing.enforced";
 
 const INVALID_SIGNATURE = "Invalid content/signature";
 
 this.FILENAME_ADDONS_JSON  = "blocklist-addons.json";
 this.FILENAME_GFX_JSON     = "blocklist-gfx.json";
 this.FILENAME_PLUGINS_JSON = "blocklist-plugins.json";
 
-function mergeChanges(localRecords, changes) {
-  // Kinto.js adds attributes to local records that aren't present on server.
-  // (e.g. _status)
-  const stripPrivateProps = (obj) => {
-    return Object.keys(obj).reduce((current, key) => {
-      if (!key.startsWith("_")) {
-        current[key] = obj[key];
-      }
-      return current;
-    }, {});
-  };
-
+function mergeChanges(collection, localRecords, changes) {
   const records = {};
   // Local records by id.
-  localRecords.forEach((record) => records[record.id] = stripPrivateProps(record));
+  localRecords.forEach((record) => records[record.id] = collection.cleanLocalFields(record));
   // All existing records are replaced by the version from the server.
   changes.forEach((record) => records[record.id] = record);
 
   return Object.values(records)
     // Filter out deleted records.
     .filter((record) => record.deleted != true)
     // Sort list by record id.
     .sort((a, b) => a.id < b.id ? -1 : a.id > b.id ? 1 : 0);
@@ -126,17 +115,17 @@ class BlocklistClient {
       let toSerialize;
       if (ignoreLocal) {
         toSerialize = {
           last_modified: `${payload.last_modified}`,
           data: payload.data
         };
       } else {
         const localRecords = (yield collection.list()).data;
-        const records = mergeChanges(localRecords, payload.changes);
+        const records = mergeChanges(collection, localRecords, payload.changes);
         toSerialize = {
           last_modified: `${payload.lastModified}`,
           data: records
         };
       }
 
       const serialized = CanonicalJSON.stringify(toSerialize);