Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(251)

Unified Diff: third_party/WebKit/Source/devtools/front_end/sdk/NetworkManager.js

Issue 2466123002: DevTools: reformat front-end code to match chromium style. (Closed)
Patch Set: all done Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/devtools/front_end/sdk/NetworkManager.js
diff --git a/third_party/WebKit/Source/devtools/front_end/sdk/NetworkManager.js b/third_party/WebKit/Source/devtools/front_end/sdk/NetworkManager.js
index d370cfb8a2d0c94f68228f092690bb841c09ff3e..de3d8c5e8046aac3a354112bf3c8f6569d410cc0 100644
--- a/third_party/WebKit/Source/devtools/front_end/sdk/NetworkManager.js
+++ b/third_party/WebKit/Source/devtools/front_end/sdk/NetworkManager.js
@@ -27,904 +27,869 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-
/**
- * @constructor
- * @extends {WebInspector.SDKModel}
- * @param {!WebInspector.Target} target
+ * @unrestricted
*/
-WebInspector.NetworkManager = function(target)
-{
- WebInspector.SDKModel.call(this, WebInspector.NetworkManager, target);
+WebInspector.NetworkManager = class extends WebInspector.SDKModel {
+ /**
+ * @param {!WebInspector.Target} target
+ */
+ constructor(target) {
+ super(WebInspector.NetworkManager, target);
this._dispatcher = new WebInspector.NetworkDispatcher(this);
this._target = target;
this._networkAgent = target.networkAgent();
target.registerNetworkDispatcher(this._dispatcher);
- if (WebInspector.moduleSetting("cacheDisabled").get())
- this._networkAgent.setCacheDisabled(true);
- if (WebInspector.moduleSetting("monitoringXHREnabled").get())
- this._networkAgent.setMonitoringXHREnabled(true);
+ if (WebInspector.moduleSetting('cacheDisabled').get())
+ this._networkAgent.setCacheDisabled(true);
+ if (WebInspector.moduleSetting('monitoringXHREnabled').get())
+ this._networkAgent.setMonitoringXHREnabled(true);
// Limit buffer when talking to a remote device.
- if (Runtime.queryParam("remoteFrontend") || Runtime.queryParam("ws"))
- this._networkAgent.enable(10000000, 5000000);
+ if (Runtime.queryParam('remoteFrontend') || Runtime.queryParam('ws'))
+ this._networkAgent.enable(10000000, 5000000);
else
- this._networkAgent.enable();
+ this._networkAgent.enable();
- this._bypassServiceWorkerSetting = WebInspector.settings.createSetting("bypassServiceWorker", false);
+ this._bypassServiceWorkerSetting = WebInspector.settings.createSetting('bypassServiceWorker', false);
if (this._bypassServiceWorkerSetting.get())
- this._bypassServiceWorkerChanged();
+ this._bypassServiceWorkerChanged();
this._bypassServiceWorkerSetting.addChangeListener(this._bypassServiceWorkerChanged, this);
- WebInspector.moduleSetting("cacheDisabled").addChangeListener(this._cacheDisabledSettingChanged, this);
+ WebInspector.moduleSetting('cacheDisabled').addChangeListener(this._cacheDisabledSettingChanged, this);
+ }
+
+ /**
+ * @param {!WebInspector.Target} target
+ * @return {?WebInspector.NetworkManager}
+ */
+ static fromTarget(target) {
+ return /** @type {?WebInspector.NetworkManager} */ (target.model(WebInspector.NetworkManager));
+ }
+
+ /**
+ * @param {!WebInspector.NetworkManager.Conditions} conditions
+ * @return {!NetworkAgent.ConnectionType}
+ * TODO(allada): this belongs to NetworkConditionsSelector, which should hardcode/guess it.
+ */
+ static _connectionType(conditions) {
+ if (!conditions.download && !conditions.upload)
+ return NetworkAgent.ConnectionType.None;
+ var types = WebInspector.NetworkManager._connectionTypes;
+ if (!types) {
+ WebInspector.NetworkManager._connectionTypes = [];
+ types = WebInspector.NetworkManager._connectionTypes;
+ types.push(['2g', NetworkAgent.ConnectionType.Cellular2g]);
+ types.push(['3g', NetworkAgent.ConnectionType.Cellular3g]);
+ types.push(['4g', NetworkAgent.ConnectionType.Cellular4g]);
+ types.push(['bluetooth', NetworkAgent.ConnectionType.Bluetooth]);
+ types.push(['wifi', NetworkAgent.ConnectionType.Wifi]);
+ types.push(['wimax', NetworkAgent.ConnectionType.Wimax]);
+ }
+ for (var type of types) {
+ if (conditions.title.toLowerCase().indexOf(type[0]) !== -1)
+ return type[1];
+ }
+ return NetworkAgent.ConnectionType.Other;
+ }
+
+ /**
+ * @param {string} url
+ * @return {!WebInspector.NetworkRequest}
+ */
+ inflightRequestForURL(url) {
+ return this._dispatcher._inflightRequestsByURL[url];
+ }
+
+ /**
+ * @param {!WebInspector.Event} event
+ */
+ _cacheDisabledSettingChanged(event) {
+ var enabled = /** @type {boolean} */ (event.data);
+ this._networkAgent.setCacheDisabled(enabled);
+ }
+
+ /**
+ * @override
+ */
+ dispose() {
+ WebInspector.moduleSetting('cacheDisabled').removeChangeListener(this._cacheDisabledSettingChanged, this);
+ }
+
+ _bypassServiceWorkerChanged() {
+ this._networkAgent.setBypassServiceWorker(this._bypassServiceWorkerSetting.get());
+ }
};
/** @enum {symbol} */
WebInspector.NetworkManager.Events = {
- RequestStarted: Symbol("RequestStarted"),
- RequestUpdated: Symbol("RequestUpdated"),
- RequestFinished: Symbol("RequestFinished"),
- RequestUpdateDropped: Symbol("RequestUpdateDropped"),
- ResponseReceived: Symbol("ResponseReceived")
+ RequestStarted: Symbol('RequestStarted'),
+ RequestUpdated: Symbol('RequestUpdated'),
+ RequestFinished: Symbol('RequestFinished'),
+ RequestUpdateDropped: Symbol('RequestUpdateDropped'),
+ ResponseReceived: Symbol('ResponseReceived')
};
WebInspector.NetworkManager._MIMETypes = {
- "text/html": {"document": true},
- "text/xml": {"document": true},
- "text/plain": {"document": true},
- "application/xhtml+xml": {"document": true},
- "image/svg+xml": {"document": true},
- "text/css": {"stylesheet": true},
- "text/xsl": {"stylesheet": true},
- "text/vtt": {"texttrack": true},
+ 'text/html': {'document': true},
+ 'text/xml': {'document': true},
+ 'text/plain': {'document': true},
+ 'application/xhtml+xml': {'document': true},
+ 'image/svg+xml': {'document': true},
+ 'text/css': {'stylesheet': true},
+ 'text/xsl': {'stylesheet': true},
+ 'text/vtt': {'texttrack': true},
};
-/**
- * @param {!WebInspector.Target} target
- * @return {?WebInspector.NetworkManager}
- */
-WebInspector.NetworkManager.fromTarget = function(target)
-{
- return /** @type {?WebInspector.NetworkManager} */ (target.model(WebInspector.NetworkManager));
-};
/** @typedef {{download: number, upload: number, latency: number, title: string}} */
WebInspector.NetworkManager.Conditions;
/** @type {!WebInspector.NetworkManager.Conditions} */
-WebInspector.NetworkManager.NoThrottlingConditions = {title: WebInspector.UIString("No throttling"), download: -1, upload: -1, latency: 0};
+WebInspector.NetworkManager.NoThrottlingConditions = {
+ title: WebInspector.UIString('No throttling'),
+ download: -1,
+ upload: -1,
+ latency: 0
+};
/** @type {!WebInspector.NetworkManager.Conditions} */
-WebInspector.NetworkManager.OfflineConditions = {title: WebInspector.UIString("Offline"), download: 0, upload: 0, latency: 0};
-
-/**
- * @param {!WebInspector.NetworkManager.Conditions} conditions
- * @return {!NetworkAgent.ConnectionType}
- * TODO(allada): this belongs to NetworkConditionsSelector, which should hardcode/guess it.
- */
-WebInspector.NetworkManager._connectionType = function(conditions)
-{
- if (!conditions.download && !conditions.upload)
- return NetworkAgent.ConnectionType.None;
- var types = WebInspector.NetworkManager._connectionTypes;
- if (!types) {
- WebInspector.NetworkManager._connectionTypes = [];
- types = WebInspector.NetworkManager._connectionTypes;
- types.push(["2g", NetworkAgent.ConnectionType.Cellular2g]);
- types.push(["3g", NetworkAgent.ConnectionType.Cellular3g]);
- types.push(["4g", NetworkAgent.ConnectionType.Cellular4g]);
- types.push(["bluetooth", NetworkAgent.ConnectionType.Bluetooth]);
- types.push(["wifi", NetworkAgent.ConnectionType.Wifi]);
- types.push(["wimax", NetworkAgent.ConnectionType.Wimax]);
- }
- for (var type of types) {
- if (conditions.title.toLowerCase().indexOf(type[0]) !== -1)
- return type[1];
- }
- return NetworkAgent.ConnectionType.Other;
+WebInspector.NetworkManager.OfflineConditions = {
+ title: WebInspector.UIString('Offline'),
+ download: 0,
+ upload: 0,
+ latency: 0
};
-WebInspector.NetworkManager.prototype = {
- /**
- * @param {string} url
- * @return {!WebInspector.NetworkRequest}
- */
- inflightRequestForURL: function(url)
- {
- return this._dispatcher._inflightRequestsByURL[url];
- },
-
- /**
- * @param {!WebInspector.Event} event
- */
- _cacheDisabledSettingChanged: function(event)
- {
- var enabled = /** @type {boolean} */ (event.data);
- this._networkAgent.setCacheDisabled(enabled);
- },
-
- dispose: function()
- {
- WebInspector.moduleSetting("cacheDisabled").removeChangeListener(this._cacheDisabledSettingChanged, this);
- },
-
- _bypassServiceWorkerChanged: function()
- {
- this._networkAgent.setBypassServiceWorker(this._bypassServiceWorkerSetting.get());
- },
-
- __proto__: WebInspector.SDKModel.prototype
-};
/**
- * @constructor
* @implements {NetworkAgent.Dispatcher}
+ * @unrestricted
*/
-WebInspector.NetworkDispatcher = function(manager)
-{
+WebInspector.NetworkDispatcher = class {
+ constructor(manager) {
this._manager = manager;
this._inflightRequestsById = {};
this._inflightRequestsByURL = {};
-};
-
-WebInspector.NetworkDispatcher.prototype = {
- /**
- * @param {!NetworkAgent.Headers} headersMap
- * @return {!Array.<!WebInspector.NetworkRequest.NameValue>}
- */
- _headersMapToHeadersArray: function(headersMap)
- {
- var result = [];
- for (var name in headersMap) {
- var values = headersMap[name].split("\n");
- for (var i = 0; i < values.length; ++i)
- result.push({name: name, value: values[i]});
- }
- return result;
- },
-
- /**
- * @param {!WebInspector.NetworkRequest} networkRequest
- * @param {!NetworkAgent.Request} request
- */
- _updateNetworkRequestWithRequest: function(networkRequest, request)
- {
- networkRequest.requestMethod = request.method;
- networkRequest.setRequestHeaders(this._headersMapToHeadersArray(request.headers));
- networkRequest.requestFormData = request.postData;
- networkRequest.setInitialPriority(request.initialPriority);
- networkRequest.mixedContentType = request.mixedContentType || NetworkAgent.RequestMixedContentType.None;
- },
-
- /**
- * @param {!WebInspector.NetworkRequest} networkRequest
- * @param {!NetworkAgent.Response=} response
- */
- _updateNetworkRequestWithResponse: function(networkRequest, response)
- {
- if (response.url && networkRequest.url !== response.url)
- networkRequest.url = response.url;
- networkRequest.mimeType = response.mimeType;
- networkRequest.statusCode = response.status;
- networkRequest.statusText = response.statusText;
- networkRequest.responseHeaders = this._headersMapToHeadersArray(response.headers);
- if (response.encodedDataLength >= 0)
- networkRequest.setTransferSize(response.encodedDataLength);
- if (response.headersText)
- networkRequest.responseHeadersText = response.headersText;
- if (response.requestHeaders) {
- networkRequest.setRequestHeaders(this._headersMapToHeadersArray(response.requestHeaders));
- networkRequest.setRequestHeadersText(response.requestHeadersText || "");
- }
-
- networkRequest.connectionReused = response.connectionReused;
- networkRequest.connectionId = String(response.connectionId);
- if (response.remoteIPAddress)
- networkRequest.setRemoteAddress(response.remoteIPAddress, response.remotePort || -1);
-
- if (response.fromServiceWorker)
- networkRequest.fetchedViaServiceWorker = true;
-
- if (response.fromDiskCache)
- networkRequest.setFromDiskCache();
- networkRequest.timing = response.timing;
-
- networkRequest.protocol = response.protocol;
-
- networkRequest.setSecurityState(response.securityState);
-
- if (!this._mimeTypeIsConsistentWithType(networkRequest)) {
- var consoleModel = this._manager._target.consoleModel;
- consoleModel.addMessage(new WebInspector.ConsoleMessage(consoleModel.target(), WebInspector.ConsoleMessage.MessageSource.Network,
- WebInspector.ConsoleMessage.MessageLevel.Log,
- WebInspector.UIString("Resource interpreted as %s but transferred with MIME type %s: \"%s\".", networkRequest.resourceType().title(), networkRequest.mimeType, networkRequest.url),
- WebInspector.ConsoleMessage.MessageType.Log,
- "",
- 0,
- 0,
- networkRequest.requestId));
- }
-
- if (response.securityDetails)
- networkRequest.setSecurityDetails(response.securityDetails);
- },
-
- /**
- * @param {!WebInspector.NetworkRequest} networkRequest
- * @return {boolean}
- */
- _mimeTypeIsConsistentWithType: function(networkRequest)
- {
- // If status is an error, content is likely to be of an inconsistent type,
- // as it's going to be an error message. We do not want to emit a warning
- // for this, though, as this will already be reported as resource loading failure.
- // Also, if a URL like http://localhost/wiki/load.php?debug=true&lang=en produces text/css and gets reloaded,
- // it is 304 Not Modified and its guessed mime-type is text/php, which is wrong.
- // Don't check for mime-types in 304-resources.
- if (networkRequest.hasErrorStatusCode() || networkRequest.statusCode === 304 || networkRequest.statusCode === 204)
- return true;
-
- var resourceType = networkRequest.resourceType();
- if (resourceType !== WebInspector.resourceTypes.Stylesheet &&
- resourceType !== WebInspector.resourceTypes.Document &&
- resourceType !== WebInspector.resourceTypes.TextTrack) {
- return true;
- }
-
- if (!networkRequest.mimeType)
- return true; // Might be not known for cached resources with null responses.
-
- if (networkRequest.mimeType in WebInspector.NetworkManager._MIMETypes)
- return resourceType.name() in WebInspector.NetworkManager._MIMETypes[networkRequest.mimeType];
-
- return false;
- },
-
- /**
- * @override
- * @param {!NetworkAgent.RequestId} requestId
- * @param {!NetworkAgent.ResourcePriority} newPriority
- * @param {!NetworkAgent.Timestamp} timestamp
- */
- resourceChangedPriority: function(requestId, newPriority, timestamp)
- {
- var networkRequest = this._inflightRequestsById[requestId];
- if (networkRequest)
- networkRequest.setPriority(newPriority);
- },
-
- /**
- * @override
- * @param {!NetworkAgent.RequestId} requestId
- * @param {!PageAgent.FrameId} frameId
- * @param {!NetworkAgent.LoaderId} loaderId
- * @param {string} documentURL
- * @param {!NetworkAgent.Request} request
- * @param {!NetworkAgent.Timestamp} time
- * @param {!NetworkAgent.Timestamp} wallTime
- * @param {!NetworkAgent.Initiator} initiator
- * @param {!NetworkAgent.Response=} redirectResponse
- * @param {!PageAgent.ResourceType=} resourceType
- */
- requestWillBeSent: function(requestId, frameId, loaderId, documentURL, request, time, wallTime, initiator, redirectResponse, resourceType)
- {
- var networkRequest = this._inflightRequestsById[requestId];
- if (networkRequest) {
- // FIXME: move this check to the backend.
- if (!redirectResponse)
- return;
- this.responseReceived(requestId, frameId, loaderId, time, PageAgent.ResourceType.Other, redirectResponse);
- networkRequest = this._appendRedirect(requestId, time, request.url);
- } else
- networkRequest = this._createNetworkRequest(requestId, frameId, loaderId, request.url, documentURL, initiator);
- networkRequest.hasNetworkData = true;
- this._updateNetworkRequestWithRequest(networkRequest, request);
- networkRequest.setIssueTime(time, wallTime);
- networkRequest.setResourceType(WebInspector.resourceTypes[resourceType]);
-
- this._startNetworkRequest(networkRequest);
- },
-
- /**
- * @override
- * @param {!NetworkAgent.RequestId} requestId
- */
- requestServedFromCache: function(requestId)
- {
- var networkRequest = this._inflightRequestsById[requestId];
- if (!networkRequest)
- return;
-
- networkRequest.setFromMemoryCache();
- },
-
- /**
- * @override
- * @param {!NetworkAgent.RequestId} requestId
- * @param {!PageAgent.FrameId} frameId
- * @param {!NetworkAgent.LoaderId} loaderId
- * @param {!NetworkAgent.Timestamp} time
- * @param {!PageAgent.ResourceType} resourceType
- * @param {!NetworkAgent.Response} response
- */
- responseReceived: function(requestId, frameId, loaderId, time, resourceType, response)
- {
- var networkRequest = this._inflightRequestsById[requestId];
- if (!networkRequest) {
- // We missed the requestWillBeSent.
- var eventData = {};
- eventData.url = response.url;
- eventData.frameId = frameId;
- eventData.loaderId = loaderId;
- eventData.resourceType = resourceType;
- eventData.mimeType = response.mimeType;
- var lastModifiedHeader = response.headers["last-modified"];
- eventData.lastModified = lastModifiedHeader ? new Date(lastModifiedHeader) : null;
- this._manager.dispatchEventToListeners(WebInspector.NetworkManager.Events.RequestUpdateDropped, eventData);
- return;
- }
-
- networkRequest.responseReceivedTime = time;
- networkRequest.setResourceType(WebInspector.resourceTypes[resourceType]);
-
- this._updateNetworkRequestWithResponse(networkRequest, response);
-
- this._updateNetworkRequest(networkRequest);
- this._manager.dispatchEventToListeners(WebInspector.NetworkManager.Events.ResponseReceived, networkRequest);
- },
-
- /**
- * @override
- * @param {!NetworkAgent.RequestId} requestId
- * @param {!NetworkAgent.Timestamp} time
- * @param {number} dataLength
- * @param {number} encodedDataLength
- */
- dataReceived: function(requestId, time, dataLength, encodedDataLength)
- {
- var networkRequest = this._inflightRequestsById[requestId];
- if (!networkRequest)
- return;
-
- networkRequest.resourceSize += dataLength;
- if (encodedDataLength !== -1)
- networkRequest.increaseTransferSize(encodedDataLength);
- networkRequest.endTime = time;
-
- this._updateNetworkRequest(networkRequest);
- },
-
- /**
- * @override
- * @param {!NetworkAgent.RequestId} requestId
- * @param {!NetworkAgent.Timestamp} finishTime
- * @param {number} encodedDataLength
- */
- loadingFinished: function(requestId, finishTime, encodedDataLength)
- {
- var networkRequest = this._inflightRequestsById[requestId];
- if (!networkRequest)
- return;
- this._finishNetworkRequest(networkRequest, finishTime, encodedDataLength);
- },
-
- /**
- * @override
- * @param {!NetworkAgent.RequestId} requestId
- * @param {!NetworkAgent.Timestamp} time
- * @param {!PageAgent.ResourceType} resourceType
- * @param {string} localizedDescription
- * @param {boolean=} canceled
- * @param {!NetworkAgent.BlockedReason=} blockedReason
- */
- loadingFailed: function(requestId, time, resourceType, localizedDescription, canceled, blockedReason)
- {
- var networkRequest = this._inflightRequestsById[requestId];
- if (!networkRequest)
- return;
-
- networkRequest.failed = true;
- networkRequest.setResourceType(WebInspector.resourceTypes[resourceType]);
- networkRequest.canceled = canceled;
- if (blockedReason) {
- networkRequest.setBlockedReason(blockedReason);
- if (blockedReason === NetworkAgent.BlockedReason.Inspector) {
- var consoleModel = this._manager._target.consoleModel;
- consoleModel.addMessage(new WebInspector.ConsoleMessage(consoleModel.target(), WebInspector.ConsoleMessage.MessageSource.Network,
- WebInspector.ConsoleMessage.MessageLevel.Warning,
- WebInspector.UIString("Request was blocked by DevTools: \"%s\".", networkRequest.url),
- WebInspector.ConsoleMessage.MessageType.Log,
- "",
- 0,
- 0,
- networkRequest.requestId));
- }
- }
- networkRequest.localizedFailDescription = localizedDescription;
- this._finishNetworkRequest(networkRequest, time, -1);
- },
-
- /**
- * @override
- * @param {!NetworkAgent.RequestId} requestId
- * @param {string} requestURL
- * @param {!NetworkAgent.Initiator=} initiator
- */
- webSocketCreated: function(requestId, requestURL, initiator)
- {
- var networkRequest = new WebInspector.NetworkRequest(this._manager._target, requestId, requestURL, "", "", "", initiator || null);
- networkRequest.setResourceType(WebInspector.resourceTypes.WebSocket);
- this._startNetworkRequest(networkRequest);
- },
-
- /**
- * @override
- * @param {!NetworkAgent.RequestId} requestId
- * @param {!NetworkAgent.Timestamp} time
- * @param {!NetworkAgent.Timestamp} wallTime
- * @param {!NetworkAgent.WebSocketRequest} request
- */
- webSocketWillSendHandshakeRequest: function(requestId, time, wallTime, request)
- {
- var networkRequest = this._inflightRequestsById[requestId];
- if (!networkRequest)
- return;
-
- networkRequest.requestMethod = "GET";
- networkRequest.setRequestHeaders(this._headersMapToHeadersArray(request.headers));
- networkRequest.setIssueTime(time, wallTime);
-
- this._updateNetworkRequest(networkRequest);
- },
-
- /**
- * @override
- * @param {!NetworkAgent.RequestId} requestId
- * @param {!NetworkAgent.Timestamp} time
- * @param {!NetworkAgent.WebSocketResponse} response
- */
- webSocketHandshakeResponseReceived: function(requestId, time, response)
- {
- var networkRequest = this._inflightRequestsById[requestId];
- if (!networkRequest)
- return;
-
- networkRequest.statusCode = response.status;
- networkRequest.statusText = response.statusText;
- networkRequest.responseHeaders = this._headersMapToHeadersArray(response.headers);
- networkRequest.responseHeadersText = response.headersText;
- if (response.requestHeaders)
- networkRequest.setRequestHeaders(this._headersMapToHeadersArray(response.requestHeaders));
- if (response.requestHeadersText)
- networkRequest.setRequestHeadersText(response.requestHeadersText);
- networkRequest.responseReceivedTime = time;
- networkRequest.protocol = "websocket";
-
- this._updateNetworkRequest(networkRequest);
- },
-
- /**
- * @override
- * @param {!NetworkAgent.RequestId} requestId
- * @param {!NetworkAgent.Timestamp} time
- * @param {!NetworkAgent.WebSocketFrame} response
- */
- webSocketFrameReceived: function(requestId, time, response)
- {
- var networkRequest = this._inflightRequestsById[requestId];
- if (!networkRequest)
- return;
-
- networkRequest.addFrame(response, time);
- networkRequest.responseReceivedTime = time;
-
- this._updateNetworkRequest(networkRequest);
- },
-
- /**
- * @override
- * @param {!NetworkAgent.RequestId} requestId
- * @param {!NetworkAgent.Timestamp} time
- * @param {!NetworkAgent.WebSocketFrame} response
- */
- webSocketFrameSent: function(requestId, time, response)
- {
- var networkRequest = this._inflightRequestsById[requestId];
- if (!networkRequest)
- return;
-
- networkRequest.addFrame(response, time, true);
- networkRequest.responseReceivedTime = time;
-
- this._updateNetworkRequest(networkRequest);
- },
-
- /**
- * @override
- * @param {!NetworkAgent.RequestId} requestId
- * @param {!NetworkAgent.Timestamp} time
- * @param {string} errorMessage
- */
- webSocketFrameError: function(requestId, time, errorMessage)
- {
- var networkRequest = this._inflightRequestsById[requestId];
- if (!networkRequest)
- return;
+ }
+
+ /**
+ * @param {!NetworkAgent.Headers} headersMap
+ * @return {!Array.<!WebInspector.NetworkRequest.NameValue>}
+ */
+ _headersMapToHeadersArray(headersMap) {
+ var result = [];
+ for (var name in headersMap) {
+ var values = headersMap[name].split('\n');
+ for (var i = 0; i < values.length; ++i)
+ result.push({name: name, value: values[i]});
+ }
+ return result;
+ }
+
+ /**
+ * @param {!WebInspector.NetworkRequest} networkRequest
+ * @param {!NetworkAgent.Request} request
+ */
+ _updateNetworkRequestWithRequest(networkRequest, request) {
+ networkRequest.requestMethod = request.method;
+ networkRequest.setRequestHeaders(this._headersMapToHeadersArray(request.headers));
+ networkRequest.requestFormData = request.postData;
+ networkRequest.setInitialPriority(request.initialPriority);
+ networkRequest.mixedContentType = request.mixedContentType || NetworkAgent.RequestMixedContentType.None;
+ }
+
+ /**
+ * @param {!WebInspector.NetworkRequest} networkRequest
+ * @param {!NetworkAgent.Response=} response
+ */
+ _updateNetworkRequestWithResponse(networkRequest, response) {
+ if (response.url && networkRequest.url !== response.url)
+ networkRequest.url = response.url;
+ networkRequest.mimeType = response.mimeType;
+ networkRequest.statusCode = response.status;
+ networkRequest.statusText = response.statusText;
+ networkRequest.responseHeaders = this._headersMapToHeadersArray(response.headers);
+ if (response.encodedDataLength >= 0)
+ networkRequest.setTransferSize(response.encodedDataLength);
+ if (response.headersText)
+ networkRequest.responseHeadersText = response.headersText;
+ if (response.requestHeaders) {
+ networkRequest.setRequestHeaders(this._headersMapToHeadersArray(response.requestHeaders));
+ networkRequest.setRequestHeadersText(response.requestHeadersText || '');
+ }
- networkRequest.addFrameError(errorMessage, time);
- networkRequest.responseReceivedTime = time;
+ networkRequest.connectionReused = response.connectionReused;
+ networkRequest.connectionId = String(response.connectionId);
+ if (response.remoteIPAddress)
+ networkRequest.setRemoteAddress(response.remoteIPAddress, response.remotePort || -1);
- this._updateNetworkRequest(networkRequest);
- },
+ if (response.fromServiceWorker)
+ networkRequest.fetchedViaServiceWorker = true;
- /**
- * @override
- * @param {!NetworkAgent.RequestId} requestId
- * @param {!NetworkAgent.Timestamp} time
- */
- webSocketClosed: function(requestId, time)
- {
- var networkRequest = this._inflightRequestsById[requestId];
- if (!networkRequest)
- return;
- this._finishNetworkRequest(networkRequest, time, -1);
- },
+ if (response.fromDiskCache)
+ networkRequest.setFromDiskCache();
+ networkRequest.timing = response.timing;
- /**
- * @override
- * @param {!NetworkAgent.RequestId} requestId
- * @param {!NetworkAgent.Timestamp} time
- * @param {string} eventName
- * @param {string} eventId
- * @param {string} data
- */
- eventSourceMessageReceived: function(requestId, time, eventName, eventId, data)
- {
- var networkRequest = this._inflightRequestsById[requestId];
- if (!networkRequest)
- return;
- networkRequest.addEventSourceMessage(time, eventName, eventId, data);
- },
+ networkRequest.protocol = response.protocol;
- /**
- * @param {!NetworkAgent.RequestId} requestId
- * @param {!NetworkAgent.Timestamp} time
- * @param {string} redirectURL
- * @return {!WebInspector.NetworkRequest}
- */
- _appendRedirect: function(requestId, time, redirectURL)
- {
- var originalNetworkRequest = this._inflightRequestsById[requestId];
- var previousRedirects = originalNetworkRequest.redirects || [];
- originalNetworkRequest.requestId = requestId + ":redirected." + previousRedirects.length;
- delete originalNetworkRequest.redirects;
- if (previousRedirects.length > 0)
- originalNetworkRequest.redirectSource = previousRedirects[previousRedirects.length - 1];
- this._finishNetworkRequest(originalNetworkRequest, time, -1);
- var newNetworkRequest = this._createNetworkRequest(requestId, originalNetworkRequest.frameId, originalNetworkRequest.loaderId,
- redirectURL, originalNetworkRequest.documentURL, originalNetworkRequest.initiator());
- newNetworkRequest.redirects = previousRedirects.concat(originalNetworkRequest);
- return newNetworkRequest;
- },
+ networkRequest.setSecurityState(response.securityState);
- /**
- * @param {!WebInspector.NetworkRequest} networkRequest
- */
- _startNetworkRequest: function(networkRequest)
- {
- this._inflightRequestsById[networkRequest.requestId] = networkRequest;
- this._inflightRequestsByURL[networkRequest.url] = networkRequest;
- this._dispatchEventToListeners(WebInspector.NetworkManager.Events.RequestStarted, networkRequest);
- },
-
- /**
- * @param {!WebInspector.NetworkRequest} networkRequest
- */
- _updateNetworkRequest: function(networkRequest)
- {
- this._dispatchEventToListeners(WebInspector.NetworkManager.Events.RequestUpdated, networkRequest);
- },
+ if (!this._mimeTypeIsConsistentWithType(networkRequest)) {
+ var consoleModel = this._manager._target.consoleModel;
+ consoleModel.addMessage(new WebInspector.ConsoleMessage(
+ consoleModel.target(), WebInspector.ConsoleMessage.MessageSource.Network,
+ WebInspector.ConsoleMessage.MessageLevel.Log,
+ WebInspector.UIString(
+ 'Resource interpreted as %s but transferred with MIME type %s: "%s".',
+ networkRequest.resourceType().title(), networkRequest.mimeType, networkRequest.url),
+ WebInspector.ConsoleMessage.MessageType.Log, '', 0, 0, networkRequest.requestId));
+ }
- /**
- * @param {!WebInspector.NetworkRequest} networkRequest
- * @param {!NetworkAgent.Timestamp} finishTime
- * @param {number} encodedDataLength
- */
- _finishNetworkRequest: function(networkRequest, finishTime, encodedDataLength)
- {
- networkRequest.endTime = finishTime;
- networkRequest.finished = true;
- if (encodedDataLength >= 0)
- networkRequest.setTransferSize(encodedDataLength);
- this._dispatchEventToListeners(WebInspector.NetworkManager.Events.RequestFinished, networkRequest);
- delete this._inflightRequestsById[networkRequest.requestId];
- delete this._inflightRequestsByURL[networkRequest.url];
- },
+ if (response.securityDetails)
+ networkRequest.setSecurityDetails(response.securityDetails);
+ }
+
+ /**
+ * @param {!WebInspector.NetworkRequest} networkRequest
+ * @return {boolean}
+ */
+ _mimeTypeIsConsistentWithType(networkRequest) {
+ // If status is an error, content is likely to be of an inconsistent type,
+ // as it's going to be an error message. We do not want to emit a warning
+ // for this, though, as this will already be reported as resource loading failure.
+ // Also, if a URL like http://localhost/wiki/load.php?debug=true&lang=en produces text/css and gets reloaded,
+ // it is 304 Not Modified and its guessed mime-type is text/php, which is wrong.
+ // Don't check for mime-types in 304-resources.
+ if (networkRequest.hasErrorStatusCode() || networkRequest.statusCode === 304 || networkRequest.statusCode === 204)
+ return true;
+
+ var resourceType = networkRequest.resourceType();
+ if (resourceType !== WebInspector.resourceTypes.Stylesheet &&
+ resourceType !== WebInspector.resourceTypes.Document && resourceType !== WebInspector.resourceTypes.TextTrack) {
+ return true;
+ }
- /**
- * @param {string} eventType
- * @param {!WebInspector.NetworkRequest} networkRequest
- */
- _dispatchEventToListeners: function(eventType, networkRequest)
- {
- this._manager.dispatchEventToListeners(eventType, networkRequest);
- },
+ if (!networkRequest.mimeType)
+ return true; // Might be not known for cached resources with null responses.
+
+ if (networkRequest.mimeType in WebInspector.NetworkManager._MIMETypes)
+ return resourceType.name() in WebInspector.NetworkManager._MIMETypes[networkRequest.mimeType];
+
+ return false;
+ }
+
+ /**
+ * @override
+ * @param {!NetworkAgent.RequestId} requestId
+ * @param {!NetworkAgent.ResourcePriority} newPriority
+ * @param {!NetworkAgent.Timestamp} timestamp
+ */
+ resourceChangedPriority(requestId, newPriority, timestamp) {
+ var networkRequest = this._inflightRequestsById[requestId];
+ if (networkRequest)
+ networkRequest.setPriority(newPriority);
+ }
+
+ /**
+ * @override
+ * @param {!NetworkAgent.RequestId} requestId
+ * @param {!PageAgent.FrameId} frameId
+ * @param {!NetworkAgent.LoaderId} loaderId
+ * @param {string} documentURL
+ * @param {!NetworkAgent.Request} request
+ * @param {!NetworkAgent.Timestamp} time
+ * @param {!NetworkAgent.Timestamp} wallTime
+ * @param {!NetworkAgent.Initiator} initiator
+ * @param {!NetworkAgent.Response=} redirectResponse
+ * @param {!PageAgent.ResourceType=} resourceType
+ */
+ requestWillBeSent(
+ requestId,
+ frameId,
+ loaderId,
+ documentURL,
+ request,
+ time,
+ wallTime,
+ initiator,
+ redirectResponse,
+ resourceType) {
+ var networkRequest = this._inflightRequestsById[requestId];
+ if (networkRequest) {
+ // FIXME: move this check to the backend.
+ if (!redirectResponse)
+ return;
+ this.responseReceived(requestId, frameId, loaderId, time, PageAgent.ResourceType.Other, redirectResponse);
+ networkRequest = this._appendRedirect(requestId, time, request.url);
+ } else
+ networkRequest = this._createNetworkRequest(requestId, frameId, loaderId, request.url, documentURL, initiator);
+ networkRequest.hasNetworkData = true;
+ this._updateNetworkRequestWithRequest(networkRequest, request);
+ networkRequest.setIssueTime(time, wallTime);
+ networkRequest.setResourceType(WebInspector.resourceTypes[resourceType]);
+
+ this._startNetworkRequest(networkRequest);
+ }
+
+ /**
+ * @override
+ * @param {!NetworkAgent.RequestId} requestId
+ */
+ requestServedFromCache(requestId) {
+ var networkRequest = this._inflightRequestsById[requestId];
+ if (!networkRequest)
+ return;
+
+ networkRequest.setFromMemoryCache();
+ }
+
+ /**
+ * @override
+ * @param {!NetworkAgent.RequestId} requestId
+ * @param {!PageAgent.FrameId} frameId
+ * @param {!NetworkAgent.LoaderId} loaderId
+ * @param {!NetworkAgent.Timestamp} time
+ * @param {!PageAgent.ResourceType} resourceType
+ * @param {!NetworkAgent.Response} response
+ */
+ responseReceived(requestId, frameId, loaderId, time, resourceType, response) {
+ var networkRequest = this._inflightRequestsById[requestId];
+ if (!networkRequest) {
+ // We missed the requestWillBeSent.
+ var eventData = {};
+ eventData.url = response.url;
+ eventData.frameId = frameId;
+ eventData.loaderId = loaderId;
+ eventData.resourceType = resourceType;
+ eventData.mimeType = response.mimeType;
+ var lastModifiedHeader = response.headers['last-modified'];
+ eventData.lastModified = lastModifiedHeader ? new Date(lastModifiedHeader) : null;
+ this._manager.dispatchEventToListeners(WebInspector.NetworkManager.Events.RequestUpdateDropped, eventData);
+ return;
+ }
- /**
- * @param {!NetworkAgent.RequestId} requestId
- * @param {string} frameId
- * @param {!NetworkAgent.LoaderId} loaderId
- * @param {string} url
- * @param {string} documentURL
- * @param {?NetworkAgent.Initiator} initiator
- */
- _createNetworkRequest: function(requestId, frameId, loaderId, url, documentURL, initiator)
- {
- return new WebInspector.NetworkRequest(this._manager._target, requestId, url, documentURL, frameId, loaderId, initiator);
+ networkRequest.responseReceivedTime = time;
+ networkRequest.setResourceType(WebInspector.resourceTypes[resourceType]);
+
+ this._updateNetworkRequestWithResponse(networkRequest, response);
+
+ this._updateNetworkRequest(networkRequest);
+ this._manager.dispatchEventToListeners(WebInspector.NetworkManager.Events.ResponseReceived, networkRequest);
+ }
+
+ /**
+ * @override
+ * @param {!NetworkAgent.RequestId} requestId
+ * @param {!NetworkAgent.Timestamp} time
+ * @param {number} dataLength
+ * @param {number} encodedDataLength
+ */
+ dataReceived(requestId, time, dataLength, encodedDataLength) {
+ var networkRequest = this._inflightRequestsById[requestId];
+ if (!networkRequest)
+ return;
+
+ networkRequest.resourceSize += dataLength;
+ if (encodedDataLength !== -1)
+ networkRequest.increaseTransferSize(encodedDataLength);
+ networkRequest.endTime = time;
+
+ this._updateNetworkRequest(networkRequest);
+ }
+
+ /**
+ * @override
+ * @param {!NetworkAgent.RequestId} requestId
+ * @param {!NetworkAgent.Timestamp} finishTime
+ * @param {number} encodedDataLength
+ */
+ loadingFinished(requestId, finishTime, encodedDataLength) {
+ var networkRequest = this._inflightRequestsById[requestId];
+ if (!networkRequest)
+ return;
+ this._finishNetworkRequest(networkRequest, finishTime, encodedDataLength);
+ }
+
+ /**
+ * @override
+ * @param {!NetworkAgent.RequestId} requestId
+ * @param {!NetworkAgent.Timestamp} time
+ * @param {!PageAgent.ResourceType} resourceType
+ * @param {string} localizedDescription
+ * @param {boolean=} canceled
+ * @param {!NetworkAgent.BlockedReason=} blockedReason
+ */
+ loadingFailed(requestId, time, resourceType, localizedDescription, canceled, blockedReason) {
+ var networkRequest = this._inflightRequestsById[requestId];
+ if (!networkRequest)
+ return;
+
+ networkRequest.failed = true;
+ networkRequest.setResourceType(WebInspector.resourceTypes[resourceType]);
+ networkRequest.canceled = canceled;
+ if (blockedReason) {
+ networkRequest.setBlockedReason(blockedReason);
+ if (blockedReason === NetworkAgent.BlockedReason.Inspector) {
+ var consoleModel = this._manager._target.consoleModel;
+ consoleModel.addMessage(new WebInspector.ConsoleMessage(
+ consoleModel.target(), WebInspector.ConsoleMessage.MessageSource.Network,
+ WebInspector.ConsoleMessage.MessageLevel.Warning,
+ WebInspector.UIString('Request was blocked by DevTools: "%s".', networkRequest.url),
+ WebInspector.ConsoleMessage.MessageType.Log, '', 0, 0, networkRequest.requestId));
+ }
}
+ networkRequest.localizedFailDescription = localizedDescription;
+ this._finishNetworkRequest(networkRequest, time, -1);
+ }
+
+ /**
+ * @override
+ * @param {!NetworkAgent.RequestId} requestId
+ * @param {string} requestURL
+ * @param {!NetworkAgent.Initiator=} initiator
+ */
+ webSocketCreated(requestId, requestURL, initiator) {
+ var networkRequest =
+ new WebInspector.NetworkRequest(this._manager._target, requestId, requestURL, '', '', '', initiator || null);
+ networkRequest.setResourceType(WebInspector.resourceTypes.WebSocket);
+ this._startNetworkRequest(networkRequest);
+ }
+
+ /**
+ * @override
+ * @param {!NetworkAgent.RequestId} requestId
+ * @param {!NetworkAgent.Timestamp} time
+ * @param {!NetworkAgent.Timestamp} wallTime
+ * @param {!NetworkAgent.WebSocketRequest} request
+ */
+ webSocketWillSendHandshakeRequest(requestId, time, wallTime, request) {
+ var networkRequest = this._inflightRequestsById[requestId];
+ if (!networkRequest)
+ return;
+
+ networkRequest.requestMethod = 'GET';
+ networkRequest.setRequestHeaders(this._headersMapToHeadersArray(request.headers));
+ networkRequest.setIssueTime(time, wallTime);
+
+ this._updateNetworkRequest(networkRequest);
+ }
+
+ /**
+ * @override
+ * @param {!NetworkAgent.RequestId} requestId
+ * @param {!NetworkAgent.Timestamp} time
+ * @param {!NetworkAgent.WebSocketResponse} response
+ */
+ webSocketHandshakeResponseReceived(requestId, time, response) {
+ var networkRequest = this._inflightRequestsById[requestId];
+ if (!networkRequest)
+ return;
+
+ networkRequest.statusCode = response.status;
+ networkRequest.statusText = response.statusText;
+ networkRequest.responseHeaders = this._headersMapToHeadersArray(response.headers);
+ networkRequest.responseHeadersText = response.headersText;
+ if (response.requestHeaders)
+ networkRequest.setRequestHeaders(this._headersMapToHeadersArray(response.requestHeaders));
+ if (response.requestHeadersText)
+ networkRequest.setRequestHeadersText(response.requestHeadersText);
+ networkRequest.responseReceivedTime = time;
+ networkRequest.protocol = 'websocket';
+
+ this._updateNetworkRequest(networkRequest);
+ }
+
+ /**
+ * @override
+ * @param {!NetworkAgent.RequestId} requestId
+ * @param {!NetworkAgent.Timestamp} time
+ * @param {!NetworkAgent.WebSocketFrame} response
+ */
+ webSocketFrameReceived(requestId, time, response) {
+ var networkRequest = this._inflightRequestsById[requestId];
+ if (!networkRequest)
+ return;
+
+ networkRequest.addFrame(response, time);
+ networkRequest.responseReceivedTime = time;
+
+ this._updateNetworkRequest(networkRequest);
+ }
+
+ /**
+ * @override
+ * @param {!NetworkAgent.RequestId} requestId
+ * @param {!NetworkAgent.Timestamp} time
+ * @param {!NetworkAgent.WebSocketFrame} response
+ */
+ webSocketFrameSent(requestId, time, response) {
+ var networkRequest = this._inflightRequestsById[requestId];
+ if (!networkRequest)
+ return;
+
+ networkRequest.addFrame(response, time, true);
+ networkRequest.responseReceivedTime = time;
+
+ this._updateNetworkRequest(networkRequest);
+ }
+
+ /**
+ * @override
+ * @param {!NetworkAgent.RequestId} requestId
+ * @param {!NetworkAgent.Timestamp} time
+ * @param {string} errorMessage
+ */
+ webSocketFrameError(requestId, time, errorMessage) {
+ var networkRequest = this._inflightRequestsById[requestId];
+ if (!networkRequest)
+ return;
+
+ networkRequest.addFrameError(errorMessage, time);
+ networkRequest.responseReceivedTime = time;
+
+ this._updateNetworkRequest(networkRequest);
+ }
+
+ /**
+ * @override
+ * @param {!NetworkAgent.RequestId} requestId
+ * @param {!NetworkAgent.Timestamp} time
+ */
+ webSocketClosed(requestId, time) {
+ var networkRequest = this._inflightRequestsById[requestId];
+ if (!networkRequest)
+ return;
+ this._finishNetworkRequest(networkRequest, time, -1);
+ }
+
+ /**
+ * @override
+ * @param {!NetworkAgent.RequestId} requestId
+ * @param {!NetworkAgent.Timestamp} time
+ * @param {string} eventName
+ * @param {string} eventId
+ * @param {string} data
+ */
+ eventSourceMessageReceived(requestId, time, eventName, eventId, data) {
+ var networkRequest = this._inflightRequestsById[requestId];
+ if (!networkRequest)
+ return;
+ networkRequest.addEventSourceMessage(time, eventName, eventId, data);
+ }
+
+ /**
+ * @param {!NetworkAgent.RequestId} requestId
+ * @param {!NetworkAgent.Timestamp} time
+ * @param {string} redirectURL
+ * @return {!WebInspector.NetworkRequest}
+ */
+ _appendRedirect(requestId, time, redirectURL) {
+ var originalNetworkRequest = this._inflightRequestsById[requestId];
+ var previousRedirects = originalNetworkRequest.redirects || [];
+ originalNetworkRequest.requestId = requestId + ':redirected.' + previousRedirects.length;
+ delete originalNetworkRequest.redirects;
+ if (previousRedirects.length > 0)
+ originalNetworkRequest.redirectSource = previousRedirects[previousRedirects.length - 1];
+ this._finishNetworkRequest(originalNetworkRequest, time, -1);
+ var newNetworkRequest = this._createNetworkRequest(
+ requestId, originalNetworkRequest.frameId, originalNetworkRequest.loaderId, redirectURL,
+ originalNetworkRequest.documentURL, originalNetworkRequest.initiator());
+ newNetworkRequest.redirects = previousRedirects.concat(originalNetworkRequest);
+ return newNetworkRequest;
+ }
+
+ /**
+ * @param {!WebInspector.NetworkRequest} networkRequest
+ */
+ _startNetworkRequest(networkRequest) {
+ this._inflightRequestsById[networkRequest.requestId] = networkRequest;
+ this._inflightRequestsByURL[networkRequest.url] = networkRequest;
+ this._dispatchEventToListeners(WebInspector.NetworkManager.Events.RequestStarted, networkRequest);
+ }
+
+ /**
+ * @param {!WebInspector.NetworkRequest} networkRequest
+ */
+ _updateNetworkRequest(networkRequest) {
+ this._dispatchEventToListeners(WebInspector.NetworkManager.Events.RequestUpdated, networkRequest);
+ }
+
+ /**
+ * @param {!WebInspector.NetworkRequest} networkRequest
+ * @param {!NetworkAgent.Timestamp} finishTime
+ * @param {number} encodedDataLength
+ */
+ _finishNetworkRequest(networkRequest, finishTime, encodedDataLength) {
+ networkRequest.endTime = finishTime;
+ networkRequest.finished = true;
+ if (encodedDataLength >= 0)
+ networkRequest.setTransferSize(encodedDataLength);
+ this._dispatchEventToListeners(WebInspector.NetworkManager.Events.RequestFinished, networkRequest);
+ delete this._inflightRequestsById[networkRequest.requestId];
+ delete this._inflightRequestsByURL[networkRequest.url];
+ }
+
+ /**
+ * @param {string} eventType
+ * @param {!WebInspector.NetworkRequest} networkRequest
+ */
+ _dispatchEventToListeners(eventType, networkRequest) {
+ this._manager.dispatchEventToListeners(eventType, networkRequest);
+ }
+
+ /**
+ * @param {!NetworkAgent.RequestId} requestId
+ * @param {string} frameId
+ * @param {!NetworkAgent.LoaderId} loaderId
+ * @param {string} url
+ * @param {string} documentURL
+ * @param {?NetworkAgent.Initiator} initiator
+ */
+ _createNetworkRequest(requestId, frameId, loaderId, url, documentURL, initiator) {
+ return new WebInspector.NetworkRequest(
+ this._manager._target, requestId, url, documentURL, frameId, loaderId, initiator);
+ }
};
-
/**
- * @constructor
- * @extends {WebInspector.Object}
* @implements {WebInspector.TargetManager.Observer}
+ * @unrestricted
*/
-WebInspector.MultitargetNetworkManager = function()
-{
- WebInspector.Object.call(this);
+WebInspector.MultitargetNetworkManager = class extends WebInspector.Object {
+ constructor() {
+ super();
/** @type {!Set<string>} */
this._blockedURLs = new Set();
- this._blockedSetting = WebInspector.moduleSetting("blockedURLs");
+ this._blockedSetting = WebInspector.moduleSetting('blockedURLs');
this._blockedSetting.addChangeListener(this._updateBlockedURLs, this);
this._blockedSetting.set([]);
this._updateBlockedURLs();
- this._userAgentOverride = "";
+ this._userAgentOverride = '';
/** @type {!Set<!Protocol.NetworkAgent>} */
this._agents = new Set();
/** @type {!WebInspector.NetworkManager.Conditions} */
this._networkConditions = WebInspector.NetworkManager.NoThrottlingConditions;
WebInspector.targetManager.observeTargets(this, WebInspector.Target.Capability.Network);
-};
+ }
-/** @enum {symbol} */
-WebInspector.MultitargetNetworkManager.Events = {
- ConditionsChanged: Symbol("ConditionsChanged"),
- UserAgentChanged: Symbol("UserAgentChanged")
-};
-
-/**
- * @param {string} uaString
- * @return {string}
- */
-WebInspector.MultitargetNetworkManager.patchUserAgentWithChromeVersion = function(uaString)
-{
+ /**
+ * @param {string} uaString
+ * @return {string}
+ */
+ static patchUserAgentWithChromeVersion(uaString) {
// Patches Chrome/CriOS version from user agent ("1.2.3.4" when user agent is: "Chrome/1.2.3.4").
- var chromeRegex = new RegExp("(?:^|\\W)Chrome/(\\S+)");
+ var chromeRegex = new RegExp('(?:^|\\W)Chrome/(\\S+)');
var chromeMatch = navigator.userAgent.match(chromeRegex);
if (chromeMatch && chromeMatch.length > 1)
- return String.sprintf(uaString, chromeMatch[1]);
+ return String.sprintf(uaString, chromeMatch[1]);
return uaString;
-};
-
-WebInspector.MultitargetNetworkManager.prototype = {
- /**
- * @override
- * @param {!WebInspector.Target} target
- */
- targetAdded: function(target)
- {
- var networkAgent = target.networkAgent();
- if (this._extraHeaders)
- networkAgent.setExtraHTTPHeaders(this._extraHeaders);
- if (this._currentUserAgent())
- networkAgent.setUserAgentOverride(this._currentUserAgent());
- for (var url of this._blockedURLs)
- networkAgent.addBlockedURL(url);
- this._agents.add(networkAgent);
- if (this.isThrottling())
- this._updateNetworkConditions(networkAgent);
- },
-
- /**
- * @override
- * @param {!WebInspector.Target} target
- */
- targetRemoved: function(target)
- {
- this._agents.delete(target.networkAgent());
- },
-
- /**
- * @return {boolean}
- */
- isThrottling: function()
- {
- return this._networkConditions.download >= 0 || this._networkConditions.upload >= 0 || this._networkConditions.latency > 0;
- },
-
- /**
- * @return {boolean}
- */
- isOffline: function()
- {
- return !this._networkConditions.download && !this._networkConditions.upload;
- },
-
- /**
- * @param {!WebInspector.NetworkManager.Conditions} conditions
- */
- setNetworkConditions: function(conditions)
- {
- this._networkConditions = conditions;
- for (var agent of this._agents)
- this._updateNetworkConditions(agent);
- this.dispatchEventToListeners(WebInspector.MultitargetNetworkManager.Events.ConditionsChanged);
- },
-
- /**
- * @return {!WebInspector.NetworkManager.Conditions}
- */
- networkConditions: function()
- {
- return this._networkConditions;
- },
-
- /**
- * @param {!Protocol.NetworkAgent} networkAgent
- */
- _updateNetworkConditions: function(networkAgent)
- {
- var conditions = this._networkConditions;
- if (!this.isThrottling()) {
- networkAgent.emulateNetworkConditions(false, 0, 0, 0);
- } else {
- networkAgent.emulateNetworkConditions(this.isOffline(), conditions.latency, conditions.download < 0 ? 0 : conditions.download, conditions.upload < 0 ? 0 : conditions.upload, WebInspector.NetworkManager._connectionType(conditions));
- }
- },
-
- /**
- * @param {!NetworkAgent.Headers} headers
- */
- setExtraHTTPHeaders: function(headers)
- {
- this._extraHeaders = headers;
- for (var agent of this._agents)
- agent.setExtraHTTPHeaders(this._extraHeaders);
- },
-
- /**
- * @return {string}
- */
- _currentUserAgent: function()
- {
- return this._customUserAgent ? this._customUserAgent : this._userAgentOverride;
- },
-
- _updateUserAgentOverride: function()
- {
- var userAgent = this._currentUserAgent();
- WebInspector.ResourceLoader.targetUserAgent = userAgent;
- for (var agent of this._agents)
- agent.setUserAgentOverride(userAgent);
- },
-
- /**
- * @param {string} userAgent
- */
- setUserAgentOverride: function(userAgent)
- {
- if (this._userAgentOverride === userAgent)
- return;
- this._userAgentOverride = userAgent;
- if (!this._customUserAgent)
- this._updateUserAgentOverride();
- this.dispatchEventToListeners(WebInspector.MultitargetNetworkManager.Events.UserAgentChanged);
- },
-
- /**
- * @return {string}
- */
- userAgentOverride: function()
- {
- return this._userAgentOverride;
- },
-
- /**
- * @param {string} userAgent
- */
- setCustomUserAgentOverride: function(userAgent)
- {
- this._customUserAgent = userAgent;
- this._updateUserAgentOverride();
- },
-
- _updateBlockedURLs: function()
- {
- var blocked = this._blockedSetting.get();
- for (var url of blocked) {
- if (!this._blockedURLs.has(url))
- this._addBlockedURL(url);
- }
- for (var url of this._blockedURLs) {
- if (blocked.indexOf(url) === -1)
- this._removeBlockedURL(url);
- }
- },
-
- /**
- * @param {string} url
- */
- _addBlockedURL: function(url)
- {
- this._blockedURLs.add(url);
- for (var agent of this._agents)
- agent.addBlockedURL(url);
- },
-
- /**
- * @param {string} url
- */
- _removeBlockedURL: function(url)
- {
- this._blockedURLs.delete(url);
- for (var agent of this._agents)
- agent.removeBlockedURL(url);
- },
-
- clearBrowserCache: function()
- {
- for (var agent of this._agents)
- agent.clearBrowserCache();
- },
-
- clearBrowserCookies: function()
- {
- for (var agent of this._agents)
- agent.clearBrowserCookies();
- },
-
- /**
- * @param {string} origin
- * @param {function(!Array<string>)} callback
- */
- getCertificate: function(origin, callback)
- {
- var target = WebInspector.targetManager.mainTarget();
- target.networkAgent().getCertificate(origin, mycallback);
-
- /**
- * @param {?Protocol.Error} error
- * @param {!Array<string>} certificate
- */
- function mycallback(error, certificate)
- {
- callback(error ? [] : certificate);
- }
- },
+ }
+
+ /**
+ * @override
+ * @param {!WebInspector.Target} target
+ */
+ targetAdded(target) {
+ var networkAgent = target.networkAgent();
+ if (this._extraHeaders)
+ networkAgent.setExtraHTTPHeaders(this._extraHeaders);
+ if (this._currentUserAgent())
+ networkAgent.setUserAgentOverride(this._currentUserAgent());
+ for (var url of this._blockedURLs)
+ networkAgent.addBlockedURL(url);
+ this._agents.add(networkAgent);
+ if (this.isThrottling())
+ this._updateNetworkConditions(networkAgent);
+ }
+
+ /**
+ * @override
+ * @param {!WebInspector.Target} target
+ */
+ targetRemoved(target) {
+ this._agents.delete(target.networkAgent());
+ }
+
+ /**
+ * @return {boolean}
+ */
+ isThrottling() {
+ return this._networkConditions.download >= 0 || this._networkConditions.upload >= 0 ||
+ this._networkConditions.latency > 0;
+ }
+
+ /**
+ * @return {boolean}
+ */
+ isOffline() {
+ return !this._networkConditions.download && !this._networkConditions.upload;
+ }
+
+ /**
+ * @param {!WebInspector.NetworkManager.Conditions} conditions
+ */
+ setNetworkConditions(conditions) {
+ this._networkConditions = conditions;
+ for (var agent of this._agents)
+ this._updateNetworkConditions(agent);
+ this.dispatchEventToListeners(WebInspector.MultitargetNetworkManager.Events.ConditionsChanged);
+ }
+
+ /**
+ * @return {!WebInspector.NetworkManager.Conditions}
+ */
+ networkConditions() {
+ return this._networkConditions;
+ }
+
+ /**
+ * @param {!Protocol.NetworkAgent} networkAgent
+ */
+ _updateNetworkConditions(networkAgent) {
+ var conditions = this._networkConditions;
+ if (!this.isThrottling()) {
+ networkAgent.emulateNetworkConditions(false, 0, 0, 0);
+ } else {
+ networkAgent.emulateNetworkConditions(
+ this.isOffline(), conditions.latency, conditions.download < 0 ? 0 : conditions.download,
+ conditions.upload < 0 ? 0 : conditions.upload, WebInspector.NetworkManager._connectionType(conditions));
+ }
+ }
+
+ /**
+ * @param {!NetworkAgent.Headers} headers
+ */
+ setExtraHTTPHeaders(headers) {
+ this._extraHeaders = headers;
+ for (var agent of this._agents)
+ agent.setExtraHTTPHeaders(this._extraHeaders);
+ }
+
+ /**
+ * @return {string}
+ */
+ _currentUserAgent() {
+ return this._customUserAgent ? this._customUserAgent : this._userAgentOverride;
+ }
+
+ _updateUserAgentOverride() {
+ var userAgent = this._currentUserAgent();
+ WebInspector.ResourceLoader.targetUserAgent = userAgent;
+ for (var agent of this._agents)
+ agent.setUserAgentOverride(userAgent);
+ }
+
+ /**
+ * @param {string} userAgent
+ */
+ setUserAgentOverride(userAgent) {
+ if (this._userAgentOverride === userAgent)
+ return;
+ this._userAgentOverride = userAgent;
+ if (!this._customUserAgent)
+ this._updateUserAgentOverride();
+ this.dispatchEventToListeners(WebInspector.MultitargetNetworkManager.Events.UserAgentChanged);
+ }
+
+ /**
+ * @return {string}
+ */
+ userAgentOverride() {
+ return this._userAgentOverride;
+ }
+
+ /**
+ * @param {string} userAgent
+ */
+ setCustomUserAgentOverride(userAgent) {
+ this._customUserAgent = userAgent;
+ this._updateUserAgentOverride();
+ }
+
+ _updateBlockedURLs() {
+ var blocked = this._blockedSetting.get();
+ for (var url of blocked) {
+ if (!this._blockedURLs.has(url))
+ this._addBlockedURL(url);
+ }
+ for (var url of this._blockedURLs) {
+ if (blocked.indexOf(url) === -1)
+ this._removeBlockedURL(url);
+ }
+ }
+
+ /**
+ * @param {string} url
+ */
+ _addBlockedURL(url) {
+ this._blockedURLs.add(url);
+ for (var agent of this._agents)
+ agent.addBlockedURL(url);
+ }
+
+ /**
+ * @param {string} url
+ */
+ _removeBlockedURL(url) {
+ this._blockedURLs.delete(url);
+ for (var agent of this._agents)
+ agent.removeBlockedURL(url);
+ }
+
+ clearBrowserCache() {
+ for (var agent of this._agents)
+ agent.clearBrowserCache();
+ }
+
+ clearBrowserCookies() {
+ for (var agent of this._agents)
+ agent.clearBrowserCookies();
+ }
+
+ /**
+ * @param {string} origin
+ * @param {function(!Array<string>)} callback
+ */
+ getCertificate(origin, callback) {
+ var target = WebInspector.targetManager.mainTarget();
+ target.networkAgent().getCertificate(origin, mycallback);
+
+ /**
+ * @param {?Protocol.Error} error
+ * @param {!Array<string>} certificate
+ */
+ function mycallback(error, certificate) {
+ callback(error ? [] : certificate);
+ }
+ }
- /**
- * @param {string} url
- * @param {function(number, !Object.<string, string>, string)} callback
- */
- loadResource: function(url, callback)
- {
- var headers = {};
+ /**
+ * @param {string} url
+ * @param {function(number, !Object.<string, string>, string)} callback
+ */
+ loadResource(url, callback) {
+ var headers = {};
- var currentUserAgent = this._currentUserAgent();
- if (currentUserAgent)
- headers["User-Agent"] = currentUserAgent;
+ var currentUserAgent = this._currentUserAgent();
+ if (currentUserAgent)
+ headers['User-Agent'] = currentUserAgent;
- if (WebInspector.moduleSetting("cacheDisabled").get())
- headers["Cache-Control"] = "no-cache";
+ if (WebInspector.moduleSetting('cacheDisabled').get())
+ headers['Cache-Control'] = 'no-cache';
- WebInspector.ResourceLoader.load(url, headers, callback);
- },
+ WebInspector.ResourceLoader.load(url, headers, callback);
+ }
+};
- __proto__: WebInspector.Object.prototype
+/** @enum {symbol} */
+WebInspector.MultitargetNetworkManager.Events = {
+ ConditionsChanged: Symbol('ConditionsChanged'),
+ UserAgentChanged: Symbol('UserAgentChanged')
};
+
/**
* @type {!WebInspector.MultitargetNetworkManager}
*/

Powered by Google App Engine
This is Rietveld 408576698