Bug 1353722 - Catch errors when parsing preferences from filters and hiddenColumns draft
authorRuben Schmidmeister <ruben.schmidmeister@icloud.com>
Sat, 22 Apr 2017 23:19:21 +0200
changeset 566750 32d7e410607532afb526995b8611b04a1ab0a24d
parent 566741 7d85b081bfabe91dbf18a421f1eee2a32f335823
child 625408 b4d33d074a88e6739c4b915b97f4b24d76ad7ee3
push id55316
push userbmo:ruben.schmidmeister@icloud.com
push dateSat, 22 Apr 2017 21:40:27 +0000
bugs1353722
milestone55.0a1
Bug 1353722 - Catch errors when parsing preferences from filters and hiddenColumns MozReview-Commit-ID: 6afGAHkT1rC
devtools/client/netmonitor/src/utils/create-store.js
--- a/devtools/client/netmonitor/src/utils/create-store.js
+++ b/devtools/client/netmonitor/src/utils/create-store.js
@@ -12,25 +12,32 @@ const thunk = require("../middleware/thu
 const rootReducer = require("../reducers/index");
 const { FilterTypes, Filters } = require("../reducers/filters");
 const { Requests } = require("../reducers/requests");
 const { Sort } = require("../reducers/sort");
 const { TimingMarkers } = require("../reducers/timing-markers");
 const { UI, Columns } = require("../reducers/ui");
 
 function configureStore() {
+  const getPref = (pref) => {
+    try {
+      return JSON.parse(Services.prefs.getCharPref(pref));
+    } catch (_) {
+      return [];
+    }
+  };
+
   let activeFilters = {};
-  let filters = JSON.parse(Services.prefs.getCharPref("devtools.netmonitor.filters"));
+  let filters = getPref("devtools.netmonitor.filters");
   filters.forEach((filter) => {
     activeFilters[filter] = true;
   });
 
   let columns = new Columns();
-  let hiddenColumns =
-    JSON.parse(Services.prefs.getCharPref("devtools.netmonitor.hiddenColumns"));
+  let hiddenColumns = getPref("devtools.netmonitor.hiddenColumns");
 
   for (let [col] of columns) {
     columns = columns.withMutations((state) => {
       state.set(col, !hiddenColumns.includes(col));
     });
   }
 
   const initialState = {