Bug 1308509 - Remove usage of Ci.nsIContentPolicy constants from Netmonitor frontend r?Honza
MozReview-Commit-ID: KfJdBN6TVp1
--- a/devtools/client/netmonitor/components/request-list-item.js
+++ b/devtools/client/netmonitor/components/request-list-item.js
@@ -272,17 +272,18 @@ const CauseColumn = createFactory(create
render() {
const { cause } = this.props.item;
let causeType = "";
let causeUri = undefined;
let causeHasStack = false;
if (cause) {
- causeType = cause.type;
+ // Legacy server might send a numeric value. Display it as "unknown"
+ causeType = typeof cause.type === "string" ? cause.type : "unknown";
causeUri = cause.loadingDocumentUri;
causeHasStack = cause.stacktrace && cause.stacktrace.length > 0;
}
return div(
{ className: "requests-menu-subitem requests-menu-cause", title: causeUri },
span({ className: "requests-menu-cause-stack", hidden: !causeHasStack }, "JS"),
span({ className: "subitem-label" }, causeType)
--- a/devtools/client/netmonitor/request-utils.js
+++ b/devtools/client/netmonitor/request-utils.js
@@ -1,17 +1,16 @@
/* 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/. */
/* eslint-disable mozilla/reject-some-requires */
"use strict";
-const { Ci } = require("chrome");
const { KeyCodes } = require("devtools/client/shared/keycodes");
const { Task } = require("devtools/shared/task");
/**
* Helper method to get a wrapped function which can be bound to as
* an event listener directly and is executed only when data-key is
* present in event.target.
*
@@ -234,57 +233,23 @@ function parseQueryString(query) {
let param = e.split("=");
return {
name: param[0] ? decodeUnicodeUrl(param[0]) : "",
value: param[1] ? decodeUnicodeUrl(param[1]) : "",
};
});
}
-/**
- * Convert a nsIContentPolicy constant to a display string
- */
-const LOAD_CAUSE_STRINGS = {
- [Ci.nsIContentPolicy.TYPE_INVALID]: "invalid",
- [Ci.nsIContentPolicy.TYPE_OTHER]: "other",
- [Ci.nsIContentPolicy.TYPE_SCRIPT]: "script",
- [Ci.nsIContentPolicy.TYPE_IMAGE]: "img",
- [Ci.nsIContentPolicy.TYPE_STYLESHEET]: "stylesheet",
- [Ci.nsIContentPolicy.TYPE_OBJECT]: "object",
- [Ci.nsIContentPolicy.TYPE_DOCUMENT]: "document",
- [Ci.nsIContentPolicy.TYPE_SUBDOCUMENT]: "subdocument",
- [Ci.nsIContentPolicy.TYPE_REFRESH]: "refresh",
- [Ci.nsIContentPolicy.TYPE_XBL]: "xbl",
- [Ci.nsIContentPolicy.TYPE_PING]: "ping",
- [Ci.nsIContentPolicy.TYPE_XMLHTTPREQUEST]: "xhr",
- [Ci.nsIContentPolicy.TYPE_OBJECT_SUBREQUEST]: "objectSubdoc",
- [Ci.nsIContentPolicy.TYPE_DTD]: "dtd",
- [Ci.nsIContentPolicy.TYPE_FONT]: "font",
- [Ci.nsIContentPolicy.TYPE_MEDIA]: "media",
- [Ci.nsIContentPolicy.TYPE_WEBSOCKET]: "websocket",
- [Ci.nsIContentPolicy.TYPE_CSP_REPORT]: "csp",
- [Ci.nsIContentPolicy.TYPE_XSLT]: "xslt",
- [Ci.nsIContentPolicy.TYPE_BEACON]: "beacon",
- [Ci.nsIContentPolicy.TYPE_FETCH]: "fetch",
- [Ci.nsIContentPolicy.TYPE_IMAGESET]: "imageset",
- [Ci.nsIContentPolicy.TYPE_WEB_MANIFEST]: "webManifest"
-};
-
-function loadCauseString(causeType) {
- return LOAD_CAUSE_STRINGS[causeType] || "unknown";
-}
-
module.exports = {
getKeyWithEvent,
getFormDataSections,
formDataURI,
writeHeaderText,
decodeUnicodeUrl,
getAbbreviatedMimeType,
getUrlBaseName,
getUrlQuery,
getUrlBaseNameWithQuery,
getUrlHostName,
getUrlHost,
getUrlDetails,
parseQueryString,
- loadCauseString,
};
--- a/devtools/client/netmonitor/requests-menu-view.js
+++ b/devtools/client/netmonitor/requests-menu-view.js
@@ -18,17 +18,16 @@ const { Provider } = require("devtools/c
const RequestList = createFactory(require("./components/request-list"));
const RequestListContextMenu = require("./request-list-context-menu");
const Actions = require("./actions/index");
const { Prefs } = require("./prefs");
const {
formDataURI,
writeHeaderText,
- loadCauseString,
getFormDataSections,
} = require("./request-utils");
const {
getActiveFilters,
getSortedRequests,
getDisplayedRequests,
getRequestById,
@@ -224,22 +223,16 @@ RequestsMenuView.prototype = {
addRequest(id, data) {
let { method, url, isXHR, cause, startedDateTime, fromCache,
fromServiceWorker } = data;
// Convert the received date/time string to a unix timestamp.
let startedMillis = Date.parse(startedDateTime);
- // Convert the cause from a Ci.nsIContentPolicy constant to a string
- if (cause) {
- let type = loadCauseString(cause.type);
- cause = Object.assign({}, cause, { type });
- }
-
const action = Actions.addRequest(
id,
{
startedMillis,
method,
url,
isXHR,
cause,
--- a/devtools/shared/webconsole/network-monitor.js
+++ b/devtools/shared/webconsole/network-monitor.js
@@ -1095,17 +1095,17 @@ NetworkMonitor.prototype = {
// If this is the parent process, there is no stackTraceCollector - the stack
// trace will be added in NetworkMonitorChild._onNewEvent.
if (this.owner.stackTraceCollector) {
stacktrace = this.owner.stackTraceCollector.getStackTrace(event.channelId);
}
event.cause = {
- type: causeType,
+ type: causeTypeToString(causeType),
loadingDocumentUri: causeUri,
stacktrace
};
httpActivity.isXHR = event.isXHR =
(causeType === Ci.nsIContentPolicy.TYPE_XMLHTTPREQUEST ||
causeType === Ci.nsIContentPolicy.TYPE_FETCH);
@@ -2047,8 +2047,41 @@ ConsoleProgressListener.prototype = {
this.owner = null;
},
};
function gSequenceId() {
return gSequenceId.n++;
}
gSequenceId.n = 1;
+
+/**
+ * Convert a nsIContentPolicy constant to a display string
+ */
+const LOAD_CAUSE_STRINGS = {
+ [Ci.nsIContentPolicy.TYPE_INVALID]: "invalid",
+ [Ci.nsIContentPolicy.TYPE_OTHER]: "other",
+ [Ci.nsIContentPolicy.TYPE_SCRIPT]: "script",
+ [Ci.nsIContentPolicy.TYPE_IMAGE]: "img",
+ [Ci.nsIContentPolicy.TYPE_STYLESHEET]: "stylesheet",
+ [Ci.nsIContentPolicy.TYPE_OBJECT]: "object",
+ [Ci.nsIContentPolicy.TYPE_DOCUMENT]: "document",
+ [Ci.nsIContentPolicy.TYPE_SUBDOCUMENT]: "subdocument",
+ [Ci.nsIContentPolicy.TYPE_REFRESH]: "refresh",
+ [Ci.nsIContentPolicy.TYPE_XBL]: "xbl",
+ [Ci.nsIContentPolicy.TYPE_PING]: "ping",
+ [Ci.nsIContentPolicy.TYPE_XMLHTTPREQUEST]: "xhr",
+ [Ci.nsIContentPolicy.TYPE_OBJECT_SUBREQUEST]: "objectSubdoc",
+ [Ci.nsIContentPolicy.TYPE_DTD]: "dtd",
+ [Ci.nsIContentPolicy.TYPE_FONT]: "font",
+ [Ci.nsIContentPolicy.TYPE_MEDIA]: "media",
+ [Ci.nsIContentPolicy.TYPE_WEBSOCKET]: "websocket",
+ [Ci.nsIContentPolicy.TYPE_CSP_REPORT]: "csp",
+ [Ci.nsIContentPolicy.TYPE_XSLT]: "xslt",
+ [Ci.nsIContentPolicy.TYPE_BEACON]: "beacon",
+ [Ci.nsIContentPolicy.TYPE_FETCH]: "fetch",
+ [Ci.nsIContentPolicy.TYPE_IMAGESET]: "imageset",
+ [Ci.nsIContentPolicy.TYPE_WEB_MANIFEST]: "webManifest"
+};
+
+function causeTypeToString(causeType) {
+ return LOAD_CAUSE_STRINGS[causeType] || "unknown";
+}