Bug 1427077 - Make devtools/client/netmonitor work correctly at browser
Replace `loader.lazyGetter` pattern with normal variable assignment
MozReview-Commit-ID: JJTXKgXRgBZ
--- a/devtools/client/netmonitor/src/components/PropertiesView.js
+++ b/devtools/client/netmonitor/src/components/PropertiesView.js
@@ -10,17 +10,16 @@ const { Component, createFactory } = req
const dom = require("devtools/client/shared/vendor/react-dom-factories");
const PropTypes = require("devtools/client/shared/vendor/react-prop-types");
const { FILTER_SEARCH_DELAY } = require("../constants");
// Components
const TreeViewClass = require("devtools/client/shared/components/tree/TreeView");
const TreeView = createFactory(TreeViewClass);
-const SearchBox = createFactory(require("devtools/client/shared/components/SearchBox"));
loader.lazyGetter(this, "SearchBox", function () {
return createFactory(require("devtools/client/shared/components/SearchBox"));
});
loader.lazyGetter(this, "TreeRow", function () {
return createFactory(require("devtools/client/shared/components/tree/TreeRow"));
});
loader.lazyGetter(this, "SourceEditor", function () {
--- a/devtools/client/netmonitor/src/components/RequestListItem.js
+++ b/devtools/client/netmonitor/src/components/RequestListItem.js
@@ -33,43 +33,76 @@ const { RESPONSE_HEADERS } = require("..
RequestListColumnSetCookies,
RequestListColumnStartTime,
RequestListColumnStatus,
RequestListColumnTransferredSize,
RequestListColumnType,
RequestListColumnWaterfall
*/
-const COLUMNS = [
- "Cause",
- "ContentSize",
- "Cookies",
- "Domain",
- "Duration",
- "EndTime",
- "File",
- "Latency",
- "Method",
- "Protocol",
- "RemoteIP",
- "ResponseHeader",
- "ResponseTime",
- "Scheme",
- "SetCookies",
- "StartTime",
- "Status",
- "TransferredSize",
- "Type",
- "Waterfall"
-];
-for (let name of COLUMNS) {
- loader.lazyGetter(this, "RequestListColumn" + name, function () {
- return createFactory(require("./RequestListColumn" + name));
- });
-}
+loader.lazyGetter(this, "RequestListColumnCause", function () {
+ return createFactory(require("./RequestListColumnCause"));
+});
+loader.lazyGetter(this, "RequestListColumnContentSize", function () {
+ return createFactory(require("./RequestListColumnContentSize"));
+});
+loader.lazyGetter(this, "RequestListColumnCookies", function () {
+ return createFactory(require("./RequestListColumnCookies"));
+});
+loader.lazyGetter(this, "RequestListColumnDomain", function () {
+ return createFactory(require("./RequestListColumnDomain"));
+});
+loader.lazyGetter(this, "RequestListColumnDuration", function () {
+ return createFactory(require("./RequestListColumnDuration"));
+});
+loader.lazyGetter(this, "RequestListColumnEndTime", function () {
+ return createFactory(require("./RequestListColumnEndTime"));
+});
+loader.lazyGetter(this, "RequestListColumnFile", function () {
+ return createFactory(require("./RequestListColumnFile"));
+});
+loader.lazyGetter(this, "RequestListColumnLatency", function () {
+ return createFactory(require("./RequestListColumnLatency"));
+});
+loader.lazyGetter(this, "RequestListColumnMethod", function () {
+ return createFactory(require("./RequestListColumnMethod"));
+});
+loader.lazyGetter(this, "RequestListColumnProtocol", function () {
+ return createFactory(require("./RequestListColumnProtocol"));
+});
+loader.lazyGetter(this, "RequestListColumnRemoteIP", function () {
+ return createFactory(require("./RequestListColumnRemoteIP"));
+});
+loader.lazyGetter(this, "RequestListColumnResponseHeader", function () {
+ return createFactory(require("./RequestListColumnResponseHeader"));
+});
+loader.lazyGetter(this, "RequestListColumnResponseTime", function () {
+ return createFactory(require("./RequestListColumnResponseTime"));
+});
+loader.lazyGetter(this, "RequestListColumnScheme", function () {
+ return createFactory(require("./RequestListColumnScheme"));
+});
+loader.lazyGetter(this, "RequestListColumnSetCookies", function () {
+ return createFactory(require("./RequestListColumnSetCookies"));
+});
+loader.lazyGetter(this, "RequestListColumnStartTime", function () {
+ return createFactory(require("./RequestListColumnStartTime"));
+});
+loader.lazyGetter(this, "RequestListColumnStatus", function () {
+ return createFactory(require("./RequestListColumnStatus"));
+});
+loader.lazyGetter(this, "RequestListColumnTransferredSize", function () {
+ return createFactory(require("./RequestListColumnTransferredSize"));
+});
+loader.lazyGetter(this, "RequestListColumnType", function () {
+ return createFactory(require("./RequestListColumnType"));
+});
+loader.lazyGetter(this, "RequestListColumnWaterfall", function () {
+ return createFactory(require("./RequestListColumnWaterfall"));
+});
/**
* Used by shouldComponentUpdate: compare two items, and compare only properties
* relevant for rendering the RequestListItem. Other properties (like request and
* response headers, cookies, bodies) are ignored. These are very useful for the
* network details, but not here.
*/
const UPDATED_REQ_ITEM_PROPS = [
--- a/devtools/client/netmonitor/webpack.config.js
+++ b/devtools/client/netmonitor/webpack.config.js
@@ -34,16 +34,18 @@ let webpackConfig = {
* so the raw-loader declared in devtools-launchpad config can load
* those files.
*/
"rewrite-raw",
// Replace all references to this.browserRequire() by require()
"rewrite-browser-require",
// Replace all references to loader.lazyRequire() by require()
"rewrite-lazy-require",
+ // Replace all references to loader.lazyGetter() by require()
+ "rewrite-lazy-getter",
],
}
]
},
resolveLoader: {
modules: [
"node_modules",
new file mode 100644
--- /dev/null
+++ b/devtools/client/shared/webpack/rewrite-lazy-getter.js
@@ -0,0 +1,14 @@
+/* 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";
+
+module.exports = function (content) {
+ this.cacheable && this.cacheable();
+
+ return content.replace(
+ /loader.lazyGetter\(this,\s*"([^"]+)"\s*,\s*(function\s*\(\)\s*\{[\s\S]*?\})\);/g,
+ "let $1 = ($2)();"
+ );
+};