Bug 1353722 - Catch errors when parsing preferences from filters and hiddenColumns
MozReview-Commit-ID: 6afGAHkT1rC
--- 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 = {