Bug 1341278 - Fix loss of filters in netmon when clicking on back from the perf tabs. r=Honza

--HG--
extra : rebase_source : 3887ae935ee07be289c13b11c57e3cd753d58ebd
This commit is contained in:
Adrien-Marie Enault 2017-02-23 17:53:27 +01:00
Родитель 88c88fe8ef
Коммит d04870eb06
9 изменённых файлов: 66 добавлений и 24 удалений

Просмотреть файл

@ -56,10 +56,6 @@ const Toolbar = createClass({
toggleRequestFilterType: PropTypes.func.isRequired,
},
componentDidMount() {
Prefs.filters.forEach(this.props.toggleRequestFilterType);
},
toggleRequestFilterType(evt) {
if (evt.type === "keydown" && (evt.key !== "" || evt.key !== "Enter")) {
return;

Просмотреть файл

@ -80,4 +80,8 @@ function filters(state = new Filters(), action) {
}
}
module.exports = filters;
module.exports = {
FilterTypes,
Filters,
filters
};

Просмотреть файл

@ -6,16 +6,16 @@
const { combineReducers } = require("devtools/client/shared/vendor/redux");
const batchingReducer = require("./batching");
const requests = require("./requests");
const sort = require("./sort");
const filters = require("./filters");
const timingMarkers = require("./timing-markers");
const ui = require("./ui");
const { requestsReducer } = require("./requests");
const { sortReducer } = require("./sort");
const { filters } = require("./filters");
const { timingMarkers } = require("./timing-markers");
const { ui } = require("./ui");
module.exports = batchingReducer(
combineReducers({
requests,
sort,
requests: requestsReducer,
sort: sortReducer,
filters,
timingMarkers,
ui,

Просмотреть файл

@ -245,4 +245,7 @@ function requestsReducer(state = new Requests(), action) {
}
}
module.exports = requestsReducer;
module.exports = {
Requests,
requestsReducer,
}

Просмотреть файл

@ -30,4 +30,7 @@ function sortReducer(state = new Sort(), action) {
}
}
module.exports = sortReducer;
module.exports = {
Sort,
sortReducer
}

Просмотреть файл

@ -51,4 +51,7 @@ function timingMarkers(state = new TimingMarkers(), action) {
}
}
module.exports = timingMarkers;
module.exports = {
TimingMarkers,
timingMarkers
}

Просмотреть файл

@ -64,4 +64,7 @@ function ui(state = new UI(), action) {
}
}
module.exports = ui;
module.exports = {
UI,
ui
}

Просмотреть файл

@ -9,10 +9,31 @@ const { thunk } = require("devtools/client/shared/redux/middleware/thunk");
const batching = require("./middleware/batching");
const prefs = require("./middleware/prefs");
const rootReducer = require("./reducers/index");
const { Prefs } = require("./utils/prefs");
const { FilterTypes, Filters } = require("./reducers/filters");
const { Requests } = require("./reducers/requests");
const { Sort } = require("./reducers/sort");
const { TimingMarkers } = require("./reducers/timing-markers");
const { UI } = require("./reducers/ui");
function configureStore() {
let activeFilters = {};
Prefs.filters.forEach((filter) => {
activeFilters[filter] = true;
});
const initialState = {
filters: new Filters({
requestFilterTypes: new FilterTypes(activeFilters)
}),
requests: new Requests(),
sort: new Sort(),
timingMarkers: new TimingMarkers(),
ui: new UI()
}
return createStore(
rootReducer,
initialState,
applyMiddleware(
thunk,
prefs,

Просмотреть файл

@ -35,16 +35,16 @@ add_task(function* () {
let { monitor } = yield initNetMonitor(FILTERING_URL);
info("Starting test... ");
let { gStore, windowRequire } = monitor.panelWin;
let { document, gStore, windowRequire } = monitor.panelWin;
let Actions = windowRequire("devtools/client/netmonitor/actions/index");
let { Prefs } = windowRequire("devtools/client/netmonitor/utils/prefs");
gStore.dispatch(Actions.batchEnable(false));
is(Prefs.filters.length, 1,
"Only the valid filter types should be loaded, the others should be ignored");
is(Prefs.filters[0], "js",
"The only filter type is correct.");
is(Prefs.filters.length, 3,
"All the filter types should be loaded.");
is(Prefs.filters[0], "bogus",
"The first filter type is invalid, but loaded anyway.");
let wait = waitForNetworkEvents(monitor, 9);
loadCommonFrameScript();
@ -54,9 +54,18 @@ add_task(function* () {
testFilterButtons(monitor, "js");
ok(true, "Only the correct filter type was taken into consideration.");
yield teardown(monitor);
EventUtils.sendMouseEvent({ type: "click" },
document.querySelector(".requests-list-filter-html-button"));
let filters = Services.prefs.getCharPref("devtools.netmonitor.filters");
is(filters, '["js"]',
"The bogus filter type was ignored and removed from the preferences.");
is(filters, '["html","js"]',
"The filters preferences were saved directly after the click and only with the valid.");
EventUtils.sendMouseEvent({ type: "click" },
document.querySelector(".requests-list-network-summary-button"));
yield wait;
yield teardown(monitor);
});