Backed out 2 changesets (bug 1419350) for devtools failures on browser_webconsole_network_messages_expand.js. CLOSED TREE

Backed out changeset 0fc7db6c6c56 (bug 1419350)
Backed out changeset b0d6b6657a6e (bug 1419350)

--HG--
rename : devtools/client/netmonitor/src/create-store.js => devtools/client/netmonitor/src/utils/create-store.js
This commit is contained in:
Narcis Beleuzu 2018-03-01 03:49:49 +02:00
parent bab96064ac
commit 290ceafa18
22 changed files with 36 additions and 183 deletions

View File

@ -22,7 +22,7 @@ const { render, unmountComponentAtNode } = require("devtools/client/shared/vendo
const Provider = createFactory(require("devtools/client/shared/vendor/react-redux").Provider); const Provider = createFactory(require("devtools/client/shared/vendor/react-redux").Provider);
const { bindActionCreators } = require("devtools/client/shared/vendor/redux"); const { bindActionCreators } = require("devtools/client/shared/vendor/redux");
const { Connector } = require("./src/connector/index"); const { Connector } = require("./src/connector/index");
const { configureStore } = require("./src/create-store"); const { configureStore } = require("./src/utils/create-store");
const App = createFactory(require("./src/components/App")); const App = createFactory(require("./src/components/App"));
const { EVENTS } = require("./src/constants"); const { EVENTS } = require("./src/constants");
const { const {

View File

@ -43,7 +43,7 @@ require("./src/assets/styles/netmonitor.css");
const EventEmitter = require("devtools-modules/src/utils/event-emitter"); const EventEmitter = require("devtools-modules/src/utils/event-emitter");
EventEmitter.decorate(window); EventEmitter.decorate(window);
const { configureStore } = require("./src/create-store"); const { configureStore } = require("./src/utils/create-store");
const App = require("./src/components/App"); const App = require("./src/components/App");
const { Connector } = require("./src/connector/index"); const { Connector } = require("./src/connector/index");
const connector = new Connector(); const connector = new Connector();

View File

@ -7,7 +7,7 @@
const { Component, createFactory } = require("devtools/client/shared/vendor/react"); const { Component, createFactory } = require("devtools/client/shared/vendor/react");
const PropTypes = require("devtools/client/shared/vendor/react-prop-types"); const PropTypes = require("devtools/client/shared/vendor/react-prop-types");
const dom = require("devtools/client/shared/vendor/react-dom-factories"); const dom = require("devtools/client/shared/vendor/react-dom-factories");
const { connect } = require("../utils/redux-connect"); const { connect } = require("devtools/client/shared/vendor/react-redux");
// Components // Components
loader.lazyGetter(this, "MonitorPanel", function () { loader.lazyGetter(this, "MonitorPanel", function () {

View File

@ -7,7 +7,7 @@
const { Component } = require("devtools/client/shared/vendor/react"); const { Component } = require("devtools/client/shared/vendor/react");
const PropTypes = require("devtools/client/shared/vendor/react-prop-types"); const PropTypes = require("devtools/client/shared/vendor/react-prop-types");
const dom = require("devtools/client/shared/vendor/react-dom-factories"); const dom = require("devtools/client/shared/vendor/react-dom-factories");
const { connect } = require("../utils/redux-connect"); const { connect } = require("devtools/client/shared/vendor/react-redux");
const { L10N } = require("../utils/l10n"); const { L10N } = require("../utils/l10n");
const { fetchNetworkUpdatePacket } = require("../utils/request-utils"); const { fetchNetworkUpdatePacket } = require("../utils/request-utils");
const Actions = require("../actions/index"); const Actions = require("../actions/index");

View File

@ -9,7 +9,7 @@ const { Component, createFactory } = require("devtools/client/shared/vendor/reac
const dom = require("devtools/client/shared/vendor/react-dom-factories"); const dom = require("devtools/client/shared/vendor/react-dom-factories");
const { div } = dom; const { div } = dom;
const PropTypes = require("devtools/client/shared/vendor/react-prop-types"); const PropTypes = require("devtools/client/shared/vendor/react-prop-types");
const { connect } = require("../utils/redux-connect"); const { connect } = require("devtools/client/shared/vendor/react-redux");
const { findDOMNode } = require("devtools/client/shared/vendor/react-dom"); const { findDOMNode } = require("devtools/client/shared/vendor/react-dom");
const Actions = require("../actions/index"); const Actions = require("../actions/index");
const { updateFormDataSections } = require("../utils/request-utils"); const { updateFormDataSections } = require("../utils/request-utils");

View File

@ -7,7 +7,7 @@
const { createFactory } = require("devtools/client/shared/vendor/react"); const { createFactory } = require("devtools/client/shared/vendor/react");
const PropTypes = require("devtools/client/shared/vendor/react-prop-types"); const PropTypes = require("devtools/client/shared/vendor/react-prop-types");
const dom = require("devtools/client/shared/vendor/react-dom-factories"); const dom = require("devtools/client/shared/vendor/react-dom-factories");
const { connect } = require("../utils/redux-connect"); const { connect } = require("devtools/client/shared/vendor/react-redux");
const Actions = require("../actions/index"); const Actions = require("../actions/index");
const { getSelectedRequest } = require("../selectors/index"); const { getSelectedRequest } = require("../selectors/index");

View File

@ -7,7 +7,7 @@
const { Component, createFactory } = require("devtools/client/shared/vendor/react"); const { Component, createFactory } = require("devtools/client/shared/vendor/react");
const dom = require("devtools/client/shared/vendor/react-dom-factories"); const dom = require("devtools/client/shared/vendor/react-dom-factories");
const PropTypes = require("devtools/client/shared/vendor/react-prop-types"); const PropTypes = require("devtools/client/shared/vendor/react-prop-types");
const { connect } = require("../utils/redux-connect"); const { connect } = require("devtools/client/shared/vendor/react-redux");
const { L10N } = require("../utils/l10n"); const { L10N } = require("../utils/l10n");
const { const {
fetchNetworkUpdatePacket, fetchNetworkUpdatePacket,

View File

@ -7,7 +7,7 @@
const { Component, createFactory } = require("devtools/client/shared/vendor/react"); const { Component, createFactory } = require("devtools/client/shared/vendor/react");
const dom = require("devtools/client/shared/vendor/react-dom-factories"); const dom = require("devtools/client/shared/vendor/react-dom-factories");
const PropTypes = require("devtools/client/shared/vendor/react-prop-types"); const PropTypes = require("devtools/client/shared/vendor/react-prop-types");
const { connect } = require("../utils/redux-connect"); const { connect } = require("devtools/client/shared/vendor/react-redux");
const { HTMLTooltip } = require("devtools/client/shared/widgets/tooltip/HTMLTooltip"); const { HTMLTooltip } = require("devtools/client/shared/widgets/tooltip/HTMLTooltip");
const Actions = require("../actions/index"); const Actions = require("../actions/index");

View File

@ -7,7 +7,7 @@
const { Component, createFactory } = require("devtools/client/shared/vendor/react"); const { Component, createFactory } = require("devtools/client/shared/vendor/react");
const dom = require("devtools/client/shared/vendor/react-dom-factories"); const dom = require("devtools/client/shared/vendor/react-dom-factories");
const PropTypes = require("devtools/client/shared/vendor/react-prop-types"); const PropTypes = require("devtools/client/shared/vendor/react-prop-types");
const { connect } = require("../utils/redux-connect"); const { connect } = require("devtools/client/shared/vendor/react-redux");
const Actions = require("../actions/index"); const Actions = require("../actions/index");
const { ACTIVITY_TYPE } = require("../constants"); const { ACTIVITY_TYPE } = require("../constants");
const { L10N } = require("../utils/l10n"); const { L10N } = require("../utils/l10n");

View File

@ -7,7 +7,7 @@
const { Component } = require("devtools/client/shared/vendor/react"); const { Component } = require("devtools/client/shared/vendor/react");
const dom = require("devtools/client/shared/vendor/react-dom-factories"); const dom = require("devtools/client/shared/vendor/react-dom-factories");
const PropTypes = require("devtools/client/shared/vendor/react-prop-types"); const PropTypes = require("devtools/client/shared/vendor/react-prop-types");
const { connect } = require("../utils/redux-connect"); const { connect } = require("devtools/client/shared/vendor/react-redux");
const { getTheme, addThemeObserver, removeThemeObserver } = const { getTheme, addThemeObserver, removeThemeObserver } =
require("devtools/client/shared/theme"); require("devtools/client/shared/theme");
const Actions = require("../actions/index"); const Actions = require("../actions/index");

View File

@ -9,7 +9,7 @@ const { FILTER_TAGS } = require("../constants");
const { Component, createFactory } = require("devtools/client/shared/vendor/react"); const { Component, createFactory } = require("devtools/client/shared/vendor/react");
const dom = require("devtools/client/shared/vendor/react-dom-factories"); const dom = require("devtools/client/shared/vendor/react-dom-factories");
const PropTypes = require("devtools/client/shared/vendor/react-prop-types"); const PropTypes = require("devtools/client/shared/vendor/react-prop-types");
const { connect } = require("../utils/redux-connect"); const { connect } = require("devtools/client/shared/vendor/react-redux");
const { Chart } = require("devtools/client/shared/widgets/Chart"); const { Chart } = require("devtools/client/shared/widgets/Chart");
const { PluralForm } = require("devtools/shared/plural-form"); const { PluralForm } = require("devtools/shared/plural-form");
const Actions = require("../actions/index"); const Actions = require("../actions/index");

View File

@ -6,7 +6,7 @@
const PropTypes = require("devtools/client/shared/vendor/react-prop-types"); const PropTypes = require("devtools/client/shared/vendor/react-prop-types");
const dom = require("devtools/client/shared/vendor/react-dom-factories"); const dom = require("devtools/client/shared/vendor/react-dom-factories");
const { connect } = require("../utils/redux-connect"); const { connect } = require("devtools/client/shared/vendor/react-redux");
const { PluralForm } = require("devtools/shared/plural-form"); const { PluralForm } = require("devtools/shared/plural-form");
const Actions = require("../actions/index"); const Actions = require("../actions/index");
const { const {

View File

@ -8,7 +8,7 @@ const Services = require("Services");
const { Component, createFactory } = require("devtools/client/shared/vendor/react"); const { Component, createFactory } = require("devtools/client/shared/vendor/react");
const dom = require("devtools/client/shared/vendor/react-dom-factories"); const dom = require("devtools/client/shared/vendor/react-dom-factories");
const PropTypes = require("devtools/client/shared/vendor/react-prop-types"); const PropTypes = require("devtools/client/shared/vendor/react-prop-types");
const { connect } = require("../utils/redux-connect"); const { connect } = require("devtools/client/shared/vendor/react-redux");
const Actions = require("../actions/index"); const Actions = require("../actions/index");
const { FILTER_SEARCH_DELAY, FILTER_TAGS } = require("../constants"); const { FILTER_SEARCH_DELAY, FILTER_TAGS } = require("../constants");

View File

@ -16,5 +16,4 @@ DIRS += [
DevToolsModules( DevToolsModules(
'constants.js', 'constants.js',
'create-store.js',
) )

View File

@ -8,18 +8,18 @@ const Services = require("Services");
const { applyMiddleware, createStore } = require("devtools/client/shared/vendor/redux"); const { applyMiddleware, createStore } = require("devtools/client/shared/vendor/redux");
// Middleware // Middleware
const batching = require("./middleware/batching"); const batching = require("../middleware/batching");
const prefs = require("./middleware/prefs"); const prefs = require("../middleware/prefs");
const thunk = require("./middleware/thunk"); const thunk = require("../middleware/thunk");
const recording = require("./middleware/recording"); const recording = require("../middleware/recording");
// Reducers // Reducers
const rootReducer = require("./reducers/index"); const rootReducer = require("../reducers/index");
const { FilterTypes, Filters } = require("./reducers/filters"); const { FilterTypes, Filters } = require("../reducers/filters");
const { Requests } = require("./reducers/requests"); const { Requests } = require("../reducers/requests");
const { Sort } = require("./reducers/sort"); const { Sort } = require("../reducers/sort");
const { TimingMarkers } = require("./reducers/timing-markers"); const { TimingMarkers } = require("../reducers/timing-markers");
const { UI, Columns } = require("./reducers/ui"); const { UI, Columns } = require("../reducers/ui");
/** /**
* Configure state and middleware for the Network monitor tool. * Configure state and middleware for the Network monitor tool.

View File

@ -8,6 +8,7 @@ DIRS += [
] ]
DevToolsModules( DevToolsModules(
'create-store.js',
'filter-autocomplete-provider.js', 'filter-autocomplete-provider.js',
'filter-predicates.js', 'filter-predicates.js',
'filter-text-utils.js', 'filter-text-utils.js',
@ -18,7 +19,6 @@ DevToolsModules(
'menu.js', 'menu.js',
'open-request-in-tab.js', 'open-request-in-tab.js',
'prefs.js', 'prefs.js',
'redux-connect.js',
'request-utils.js', 'request-utils.js',
'sort-predicates.js', 'sort-predicates.js',
'sort-utils.js' 'sort-utils.js'

View File

@ -1,28 +0,0 @@
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
"use strict";
const { createFactory, createElement } = require("devtools/client/shared/vendor/react");
const VisibilityHandler = createFactory(require("devtools/client/shared/components/VisibilityHandler"));
const { connect } = require("devtools/client/shared/vendor/react-redux");
/**
* This helper is wrapping Redux's connect() method and applying
* HOC (VisibilityHandler component) on whatever component is
* originally passed in. The HOC is responsible for not causing
* rendering if the owner panel runs in the background.
*/
function connectWrapper() {
let args = [].slice.call(arguments);
return component => {
return connect(...args)(props => {
return VisibilityHandler(null, createElement(component, props));
});
};
}
module.exports = {
connect: connectWrapper
};

View File

@ -60,7 +60,6 @@ support-files =
[browser_net_accessibility-01.js] [browser_net_accessibility-01.js]
[browser_net_accessibility-02.js] [browser_net_accessibility-02.js]
[browser_net_api-calls.js] [browser_net_api-calls.js]
[browser_net_background_update.js]
[browser_net_autoscroll.js] [browser_net_autoscroll.js]
[browser_net_cached-status.js] [browser_net_cached-status.js]
[browser_net_cause.js] [browser_net_cause.js]

View File

@ -1,56 +0,0 @@
/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
"use strict";
/**
* Check that network logs created when the Net panel is not visible
* are displayed when the user shows the panel again.
*/
add_task(async () => {
let { tab, monitor, toolbox } = await initNetMonitor(CUSTOM_GET_URL);
info("Starting test... ");
let { document, store, windowRequire } = monitor.panelWin;
let Actions = windowRequire("devtools/client/netmonitor/src/actions/index");
store.dispatch(Actions.batchEnable(false));
// Execute two requests
await performRequests(monitor, tab, 2);
// Wait for two logs
await waitUntil(() => document.querySelectorAll(".request-list-item").length == 2);
info("Select the inspector");
await toolbox.selectTool("inspector");
info("Wait for Net panel to be hidden");
await waitUntil(() => (document.visibilityState == "hidden"));
// Execute another two requests
await performRequests(monitor, tab, 2);
// The number of rendered requests should be the same since
// requests shouldn't be rendered while the net panel is in
// background
is(document.querySelectorAll(".request-list-item").length, 2,
"There should be expected number of requests");
info("Select the Net panel again");
await toolbox.selectTool("netmonitor");
// Wait for another two logs to be rendered since the panel
// is selected now.
await waitUntil(() => document.querySelectorAll(".request-list-item").length == 4);
return teardown(monitor);
});
async function performRequests(monitor, tab, count) {
let wait = waitForNetworkEvents(monitor, count);
await ContentTask.spawn(tab.linkedBrowser, count, requestCount => {
content.wrappedJSObject.performRequests(requestCount);
});
await wait;
}

View File

@ -23,12 +23,9 @@ XPCOMUtils.defineLazyGetter(this, "TargetFactory", function() {
const webserver = Services.prefs.getCharPref("addon.test.damp.webserver"); const webserver = Services.prefs.getCharPref("addon.test.damp.webserver");
const PAGES_BASE_URL = webserver + "/tests/devtools/addon/content/pages/"; const SIMPLE_URL = webserver + "/tests/devtools/addon/content/pages/simple.html";
const SIMPLE_URL = PAGES_BASE_URL + "simple.html";
const COMPLICATED_URL = webserver + "/tests/tp5n/bild.de/www.bild.de/index.html"; const COMPLICATED_URL = webserver + "/tests/tp5n/bild.de/www.bild.de/index.html";
const CUSTOM_URL = PAGES_BASE_URL + "custom/$TOOL/index.html"; const CUSTOM_URL = webserver + "/tests/devtools/addon/content/pages/custom/$TOOL/index.html";
const PANELS_IN_BACKGROUND = PAGES_BASE_URL +
"custom/panels-in-background/panels-in-background.html";
// Record allocation count in new subtests if DEBUG_DEVTOOLS_ALLOCATIONS is set to // Record allocation count in new subtests if DEBUG_DEVTOOLS_ALLOCATIONS is set to
// "normal". Print allocation sites to stdout if DEBUG_DEVTOOLS_ALLOCATIONS is set to // "normal". Print allocation sites to stdout if DEBUG_DEVTOOLS_ALLOCATIONS is set to
@ -714,48 +711,27 @@ async _consoleOpenWithCachedMessagesTest() {
}, },
async _panelsInBackgroundReload() { async _panelsInBackgroundReload() {
await this.testSetup(PANELS_IN_BACKGROUND); let url = "data:text/html;charset=UTF-8," + encodeURIComponent(`
<script>
// Make sure the Console and Network panels are initialized // Log a significant amount of messages
for(let i = 0; i < 2000; i++) {
console.log("log in background", i);
}
</script>
`);
await this.testSetup(url);
let toolbox = await this.openToolbox("webconsole"); let toolbox = await this.openToolbox("webconsole");
let monitor = await toolbox.selectTool("netmonitor");
// Select the options panel to make both the Console and Network // Select the options panel to make the console be in background.
// panel be in background.
// Options panel should not do anything on page reload. // Options panel should not do anything on page reload.
await toolbox.selectTool("options"); await toolbox.selectTool("options");
// Reload the page and wait for all HTTP requests
// to finish (1 doc + 600 XHRs).
let payloadReady = this.waitForPayload(601, monitor.panelWin);
await this.reloadPageAndLog("panelsInBackground", toolbox); await this.reloadPageAndLog("panelsInBackground", toolbox);
await payloadReady;
// Clean up
await this.closeToolbox(); await this.closeToolbox();
await this.testTeardown(); await this.testTeardown();
}, },
waitForPayload(count, panelWin) {
return new Promise(resolve => {
let payloadReady = 0;
function onPayloadReady(_, id) {
payloadReady++;
maybeResolve();
}
function maybeResolve() {
if (payloadReady >= count) {
panelWin.off(EVENTS.PAYLOAD_READY, onPayloadReady);
resolve();
}
}
panelWin.on(EVENTS.PAYLOAD_READY, onPayloadReady);
});
},
async reloadInspectorAndLog(label, toolbox) { async reloadInspectorAndLog(label, toolbox) {
let onReload = async function() { let onReload = async function() {
let inspector = toolbox.getPanel("inspector"); let inspector = toolbox.getPanel("inspector");

View File

@ -1,30 +0,0 @@
<!DOCTYPE html>
<!-- This Source Code Form is subject to the terms of the Mozilla Public
- License, v. 2.0. If a copy of the MPL was not distributed with this file,
- You can obtain one at http://mozilla.org/MPL/2.0/. -->
<html>
<head>
<meta charset="utf-8">
<title>Custom page for panels running in background</title>
</head>
<body>
<script type="application/x-javascript">
function peformLogs(count) {
for (let i = 0; i < count; i++) {
console.log("log in background", i);
}
}
function performRequests(count) {
for (let i = 0; i < count; i++) {
let xhr = new XMLHttpRequest();
xhr.open("GET", "sjs_simple-test-server.sjs", true);
xhr.send(null);
}
}
peformLogs(2000);
performRequests(600);
</script>
</body>
</html>

View File

@ -1,7 +0,0 @@
/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
function handleRequest(request, response) {
response.setHeader("Content-Type", "text/plain; charset=utf-8", false);
response.write("Hello world!");
}