15c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)/* 25c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * Copyright (C) 2012 Google Inc. All rights reserved. 35c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * 45c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * Redistribution and use in source and binary forms, with or without 55c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * modification, are permitted provided that the following conditions are 65c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * met: 75c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * 85c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * * Redistributions of source code must retain the above copyright 95c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * notice, this list of conditions and the following disclaimer. 105c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * * Redistributions in binary form must reproduce the above 115c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * copyright notice, this list of conditions and the following disclaimer 125c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * in the documentation and/or other materials provided with the 135c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * distribution. 145c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * * Neither the name of Google Inc. nor the names of its 155c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * contributors may be used to endorse or promote products derived from 165c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * this software without specific prior written permission. 175c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * 185c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 195c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 205c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 215c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 225c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 235c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 245c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 255c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 265c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 275c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 285c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 295c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 305c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 315c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)/** 325c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @constructor 33197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch * @extends {WebInspector.SDKObject} 345c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @implements {WebInspector.ContentProvider} 35a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {!NetworkAgent.RequestId} requestId 36a9984bf9ddc3cf73fdae3f29134a2bab379e7029Ben Murdoch * @param {!WebInspector.Target} target 375c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {string} url 385c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {string} documentURL 39a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {!PageAgent.FrameId} frameId 40a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {!NetworkAgent.LoaderId} loaderId 417242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci * @param {?NetworkAgent.Initiator} initiator 425c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 437242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano TucciWebInspector.NetworkRequest = function(target, requestId, url, documentURL, frameId, loaderId, initiator) 445c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles){ 45197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch WebInspector.SDKObject.call(this, target); 46a9984bf9ddc3cf73fdae3f29134a2bab379e7029Ben Murdoch 475c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._requestId = requestId; 485c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this.url = url; 495c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._documentURL = documentURL; 505c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._frameId = frameId; 515c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._loaderId = loaderId; 527242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci /** @type {?NetworkAgent.Initiator} */ 537242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci this._initiator = initiator; 545c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._startTime = -1; 555c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._endTime = -1; 565c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 575c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this.statusCode = 0; 585c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this.statusText = ""; 595c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this.requestMethod = ""; 605c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this.requestTime = 0; 615c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 625c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._type = WebInspector.resourceTypes.Other; 635c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._contentEncoded = false; 645c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._pendingContentCallbacks = []; 65c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) /** @type {!Array.<!WebInspector.NetworkRequest.WebSocketFrame>} */ 665c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._frames = []; 67591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch 68591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch this._responseHeaderValues = {}; 6909380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) 7009380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) this._remoteAddress = ""; 717242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci 727242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci /** @type {string} */ 737242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci this.connectionId = "0"; 745c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)} 755c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 765c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)WebInspector.NetworkRequest.Events = { 775c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) FinishedLoading: "FinishedLoading", 785c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) TimingChanged: "TimingChanged", 7909380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) RemoteAddressChanged: "RemoteAddressChanged", 805c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) RequestHeadersChanged: "RequestHeadersChanged", 815c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) ResponseHeadersChanged: "ResponseHeadersChanged", 825c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)} 835c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 8453e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)/** @enum {string} */ 85926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)WebInspector.NetworkRequest.InitiatorType = { 86926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) Other: "other", 8753e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles) Parser: "parser", 8853e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles) Redirect: "redirect", 8953e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles) Script: "script" 90926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)} 91926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) 92a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)/** @typedef {!{name: string, value: string}} */ 93926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)WebInspector.NetworkRequest.NameValue; 94926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) 95c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)/** @enum {string} */ 96c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)WebInspector.NetworkRequest.WebSocketFrameType = { 97c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) Send: "send", 98c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) Receive: "receive", 99c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) Error: "error" 100c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)} 101c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) 102c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)/** @typedef {!{type: WebInspector.NetworkRequest.WebSocketFrameType, time: number, text: string, opCode: number, mask: boolean}} */ 103c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)WebInspector.NetworkRequest.WebSocketFrame; 104c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) 1055c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)WebInspector.NetworkRequest.prototype = { 1065c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 107197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch * @param {!WebInspector.NetworkRequest} other 108197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch * @return {number} 109197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch */ 110197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch indentityCompare: function(other) { 111197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch if (this._requestId > other._requestId) 112197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch return 1; 113197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch if (this._requestId < other._requestId) 114197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch return -1; 115197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch return 0; 116197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch }, 117197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch 118197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch /** 119a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @return {!NetworkAgent.RequestId} 1205c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 1215c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) get requestId() 1225c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 1235c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return this._requestId; 1245c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 1255c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 1265c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) set requestId(requestId) 1275c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 1285c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._requestId = requestId; 1295c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 1305c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 1315c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 1325c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @return {string} 1335c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 1345c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) get url() 1355c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 1365c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return this._url; 1375c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 1385c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 1395c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) set url(x) 1405c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 1415c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (this._url === x) 1425c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return; 1435c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 1445c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._url = x; 1455c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._parsedURL = new WebInspector.ParsedURL(x); 14651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles) delete this._queryString; 1475c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) delete this._parsedQueryParameters; 1485c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) delete this._name; 1495c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) delete this._path; 1505c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 1515c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 1525c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 1535c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @return {string} 1545c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 1555c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) get documentURL() 1565c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 1575c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return this._documentURL; 1585c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 1595c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 1605c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) get parsedURL() 1615c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 1625c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return this._parsedURL; 1635c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 1645c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 1655c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 166a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @return {!PageAgent.FrameId} 1675c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 1685c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) get frameId() 1695c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 1705c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return this._frameId; 1715c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 1725c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 1735c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 174a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @return {!NetworkAgent.LoaderId} 1755c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 1765c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) get loaderId() 1775c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 1785c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return this._loaderId; 1795c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 1805c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 1815c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 18209380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) * @param {string} ip 18309380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) * @param {number} port 18409380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) */ 18509380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) setRemoteAddress: function(ip, port) 18609380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) { 187d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) if (ip.indexOf(":") !== -1) 188d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) ip = "[" + ip + "]"; 18909380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) this._remoteAddress = ip + ":" + port; 19009380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) this.dispatchEventToListeners(WebInspector.NetworkRequest.Events.RemoteAddressChanged, this); 19109380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) }, 19209380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) 19309380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) /** 19409380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) * @return {string} 19509380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) */ 19609380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) remoteAddress: function() 19709380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) { 19809380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) return this._remoteAddress; 19909380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) }, 20009380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) 20109380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) /** 2025c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @return {number} 2035c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 2045c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) get startTime() 2055c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 2065c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return this._startTime || -1; 2075c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 2085c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2095c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) set startTime(x) 2105c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 2115c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._startTime = x; 2125c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 2135c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2145c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 2155c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @return {number} 2165c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 2175c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) get responseReceivedTime() 2185c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 2195c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return this._responseReceivedTime || -1; 2205c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 2215c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2225c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) set responseReceivedTime(x) 2235c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 2245c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._responseReceivedTime = x; 2255c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 2265c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2275c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 2285c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @return {number} 2295c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 2305c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) get endTime() 2315c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 2325c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return this._endTime || -1; 2335c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 2345c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2355c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) set endTime(x) 2365c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 2375c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (this.timing && this.timing.requestTime) { 2385c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) // Check against accurate responseReceivedTime. 2395c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._endTime = Math.max(x, this.responseReceivedTime); 2405c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) } else { 2415c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) // Prefer endTime since it might be from the network stack. 2425c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._endTime = x; 2435c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (this._responseReceivedTime > x) 2445c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._responseReceivedTime = x; 2455c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) } 24609380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) this.dispatchEventToListeners(WebInspector.NetworkRequest.Events.TimingChanged, this); 2475c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 2485c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2495c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 2505c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @return {number} 2515c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 2525c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) get duration() 2535c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 2545c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (this._endTime === -1 || this._startTime === -1) 2555c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return -1; 2565c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return this._endTime - this._startTime; 2575c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 2585c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2595c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 2605c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @return {number} 2615c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 2625c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) get latency() 2635c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 2645c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (this._responseReceivedTime === -1 || this._startTime === -1) 2655c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return -1; 2665c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return this._responseReceivedTime - this._startTime; 2675c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 2685c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2695c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 2705c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @return {number} 2715c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 2725c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) get resourceSize() 2735c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 2745c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return this._resourceSize || 0; 2755c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 2765c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2775c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) set resourceSize(x) 2785c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 2795c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._resourceSize = x; 2805c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 2815c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2825c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 2835c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @return {number} 2845c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 2855c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) get transferSize() 2865c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 28709380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) return this._transferSize || 0; 2885c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 2895c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2905c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 2915c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {number} x 2925c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 2935c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) increaseTransferSize: function(x) 2945c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 2955c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._transferSize = (this._transferSize || 0) + x; 2965c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 2975c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2985c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 29909380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) * @param {number} x 30009380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) */ 30109380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) setTransferSize: function(x) 30209380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) { 30309380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) this._transferSize = x; 30409380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) }, 30509380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) 30609380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) /** 3075c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @return {boolean} 3085c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 3095c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) get finished() 3105c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 3115c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return this._finished; 3125c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 3135c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 3145c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) set finished(x) 3155c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 3165c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (this._finished === x) 3175c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return; 3185c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 3195c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._finished = x; 3205c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 3215c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (x) { 3225c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this.dispatchEventToListeners(WebInspector.NetworkRequest.Events.FinishedLoading, this); 3235c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (this._pendingContentCallbacks.length) 3245c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._innerRequestContent(); 3255c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) } 3265c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 3275c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 3285c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 3295c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @return {boolean} 3305c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 3315c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) get failed() 3325c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 3335c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return this._failed; 3345c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 3355c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 3365c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) set failed(x) 3375c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 3385c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._failed = x; 3395c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 3405c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 3415c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 3425c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @return {boolean} 3435c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 3445c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) get canceled() 3455c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 3465c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return this._canceled; 3475c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 3485c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 3495c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) set canceled(x) 3505c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 3515c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._canceled = x; 3525c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 3535c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 3545c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 3555c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @return {boolean} 3565c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 3575c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) get cached() 3585c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 3599bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles) return !!this._cached && !this._transferSize; 3605c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 3615c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 3625c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) set cached(x) 3635c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 3645c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._cached = x; 3655c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (x) 3665c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) delete this._timing; 3675c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 3685c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 3695c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 3709e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles) * @return {boolean} 3719e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles) */ 3729e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles) get fetchedViaServiceWorker() 3739e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles) { 3749e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles) return this._fetchedViaServiceWorker; 3759e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles) }, 3769e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles) 3779e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles) set fetchedViaServiceWorker(x) 3789e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles) { 3799e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles) this._fetchedViaServiceWorker = x; 3809e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles) }, 3819e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles) 3829e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles) /** 383a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @return {!NetworkAgent.ResourceTiming|undefined} 3845c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 3855c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) get timing() 3865c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 3875c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return this._timing; 3885c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 3895c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 3905c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) set timing(x) 3915c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 3925c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (x && !this._cached) { 3935c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) // Take startTime and responseReceivedTime from timing data for better accuracy. 3945c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) // Timing's requestTime is a baseline in seconds, rest of the numbers there are ticks in millis. 3955c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._startTime = x.requestTime; 3965c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._responseReceivedTime = x.requestTime + x.receiveHeadersEnd / 1000.0; 3975c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 3985c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._timing = x; 3995c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this.dispatchEventToListeners(WebInspector.NetworkRequest.Events.TimingChanged, this); 4005c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) } 4015c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 4025c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 4035c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 4045c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @return {string} 4055c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 4065c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) get mimeType() 4075c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 4085c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return this._mimeType; 4095c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 4105c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 4115c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) set mimeType(x) 4125c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 4135c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._mimeType = x; 4145c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 4155c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 4165c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 4175c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @return {string} 4185c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 4195c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) get displayName() 4205c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 4215c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return this._parsedURL.displayName; 4225c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 4235c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 42409380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) /** 42509380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) * @return {string} 42609380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) */ 4275c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) name: function() 4285c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 4295c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (this._name) 4305c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return this._name; 4315c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._parseNameAndPathFromURL(); 4325c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return this._name; 4335c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 4345c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 43509380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) /** 43609380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) * @return {string} 43709380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) */ 4385c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) path: function() 4395c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 4405c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (this._path) 4415c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return this._path; 4425c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._parseNameAndPathFromURL(); 4435c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return this._path; 4445c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 4455c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 4465c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) _parseNameAndPathFromURL: function() 4475c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 4485c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (this._parsedURL.isDataURL()) { 4495c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._name = this._parsedURL.dataURLDisplayName(); 4505c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._path = ""; 4515c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) } else if (this._parsedURL.isAboutBlank()) { 4525c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._name = this._parsedURL.url; 4535c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._path = ""; 4545c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) } else { 4555c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._path = this._parsedURL.host + this._parsedURL.folderPathComponents; 456a9984bf9ddc3cf73fdae3f29134a2bab379e7029Ben Murdoch this._path = this._path.trimURL(this.target().resourceTreeModel.inspectedPageDomain()); 4575c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (this._parsedURL.lastPathComponent || this._parsedURL.queryParams) 4585c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._name = this._parsedURL.lastPathComponent + (this._parsedURL.queryParams ? "?" + this._parsedURL.queryParams : ""); 4595c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) else if (this._parsedURL.folderPathComponents) { 4605c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._name = this._parsedURL.folderPathComponents.substring(this._parsedURL.folderPathComponents.lastIndexOf("/") + 1) + "/"; 4615c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._path = this._path.substring(0, this._path.lastIndexOf("/")); 4625c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) } else { 4635c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._name = this._parsedURL.host; 4645c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._path = ""; 4655c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) } 4665c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) } 4675c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 4685c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 4695c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 4705c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @return {string} 4715c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 4725c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) get folder() 4735c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 4745c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) var path = this._parsedURL.path; 4755c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) var indexOfQuery = path.indexOf("?"); 4765c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (indexOfQuery !== -1) 4775c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) path = path.substring(0, indexOfQuery); 4785c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) var lastSlashIndex = path.lastIndexOf("/"); 4795c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return lastSlashIndex !== -1 ? path.substring(0, lastSlashIndex) : ""; 4805c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 4815c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 4825c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 483a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @return {!WebInspector.ResourceType} 4845c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 4855c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) get type() 4865c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 4875c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return this._type; 4885c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 4895c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 4905c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) set type(x) 4915c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 4925c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._type = x; 4935c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 4945c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 4955c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 496926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * @return {string} 497926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) */ 498926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) get domain() 499926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) { 500926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) return this._parsedURL.host; 501926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) }, 502926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) 503926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) /** 504c0e19a689c8ac22cdc96b291a8d33a5d3b0b34a4Torne (Richard Coles) * @return {string} 505c0e19a689c8ac22cdc96b291a8d33a5d3b0b34a4Torne (Richard Coles) */ 506c0e19a689c8ac22cdc96b291a8d33a5d3b0b34a4Torne (Richard Coles) get scheme() 507c0e19a689c8ac22cdc96b291a8d33a5d3b0b34a4Torne (Richard Coles) { 508c0e19a689c8ac22cdc96b291a8d33a5d3b0b34a4Torne (Richard Coles) return this._parsedURL.scheme; 509c0e19a689c8ac22cdc96b291a8d33a5d3b0b34a4Torne (Richard Coles) }, 510c0e19a689c8ac22cdc96b291a8d33a5d3b0b34a4Torne (Richard Coles) 511c0e19a689c8ac22cdc96b291a8d33a5d3b0b34a4Torne (Richard Coles) /** 512926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * @return {?WebInspector.NetworkRequest} 5135c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 5145c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) get redirectSource() 5155c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 5165c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (this.redirects && this.redirects.length > 0) 5175c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return this.redirects[this.redirects.length - 1]; 5185c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return this._redirectSource; 5195c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 5205c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 5215c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) set redirectSource(x) 5225c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 5235c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._redirectSource = x; 52453e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles) delete this._initiatorInfo; 5255c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 5265c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 5275c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 528926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * @return {!Array.<!WebInspector.NetworkRequest.NameValue>} 5295c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 530f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles) requestHeaders: function() 5315c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 5325c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return this._requestHeaders || []; 5335c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 5345c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 5355c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 536f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles) * @param {!Array.<!WebInspector.NetworkRequest.NameValue>} headers 5375c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 538f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles) setRequestHeaders: function(headers) 5395c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 540f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles) this._requestHeaders = headers; 541f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles) delete this._requestCookies; 5425c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 5435c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this.dispatchEventToListeners(WebInspector.NetworkRequest.Events.RequestHeadersChanged); 5445c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 5455c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 5465c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 547f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles) * @return {string|undefined} 5485c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 549f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles) requestHeadersText: function() 5505c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 551f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles) return this._requestHeadersText; 5525c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 5535c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 5545c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 555f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles) * @param {string} text 5565c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 557f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles) setRequestHeadersText: function(text) 5585c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 559f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles) this._requestHeadersText = text; 5605c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 561f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles) this.dispatchEventToListeners(WebInspector.NetworkRequest.Events.RequestHeadersChanged); 5625c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 5635c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 5645c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 5655c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {string} headerName 5665c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @return {string|undefined} 5675c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 5685c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) requestHeaderValue: function(headerName) 5695c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 570f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles) return this._headerValue(this.requestHeaders(), headerName); 5715c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 5725c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 5735c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 574a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @return {!Array.<!WebInspector.Cookie>} 5755c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 5765c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) get requestCookies() 5775c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 5785c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (!this._requestCookies) 5795c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._requestCookies = WebInspector.CookieParser.parseCookie(this.requestHeaderValue("Cookie")); 5805c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return this._requestCookies; 5815c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 5825c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 5835c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 5845c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @return {string|undefined} 5855c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 5865c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) get requestFormData() 5875c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 5885c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return this._requestFormData; 5895c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 5905c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 5915c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) set requestFormData(x) 5925c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 5935c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._requestFormData = x; 5945c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) delete this._parsedFormParameters; 5955c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 5965c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 5975c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 598197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch * @return {string} 5995c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 600f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles) requestHttpVersion: function() 6015c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 602f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles) var headersText = this.requestHeadersText(); 603197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch if (!headersText) 604197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch return this.requestHeaderValue("version") || this.requestHeaderValue(":version") || "unknown"; 605f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles) var firstLine = headersText.split(/\r\n/)[0]; 6065c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) var match = firstLine.match(/(HTTP\/\d+\.\d+)$/); 607197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch return match ? match[1] : "HTTP/0.9"; 6085c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 6095c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 6105c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 611926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * @return {!Array.<!WebInspector.NetworkRequest.NameValue>} 6125c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 6135c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) get responseHeaders() 6145c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 6155c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return this._responseHeaders || []; 6165c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 6175c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 6185c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) set responseHeaders(x) 6195c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 6205c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._responseHeaders = x; 6215c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) delete this._sortedResponseHeaders; 6225c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) delete this._responseCookies; 623591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch this._responseHeaderValues = {}; 6245c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 6255c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this.dispatchEventToListeners(WebInspector.NetworkRequest.Events.ResponseHeadersChanged); 6265c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 6275c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 6285c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 6295c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @return {string} 6305c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 6315c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) get responseHeadersText() 6325c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 6335c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return this._responseHeadersText; 6345c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 6355c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 6365c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) set responseHeadersText(x) 6375c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 6385c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._responseHeadersText = x; 6395c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 6405c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this.dispatchEventToListeners(WebInspector.NetworkRequest.Events.ResponseHeadersChanged); 6415c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 6425c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 6435c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 644926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * @return {!Array.<!WebInspector.NetworkRequest.NameValue>} 6455c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 6465c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) get sortedResponseHeaders() 6475c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 6485c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (this._sortedResponseHeaders !== undefined) 6495c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return this._sortedResponseHeaders; 650926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) 6515c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._sortedResponseHeaders = this.responseHeaders.slice(); 652926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) this._sortedResponseHeaders.sort(function(a, b) { return a.name.toLowerCase().compareTo(b.name.toLowerCase()); }); 6535c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return this._sortedResponseHeaders; 6545c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 6555c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 6565c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 6575c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {string} headerName 6585c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @return {string|undefined} 6595c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 6605c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) responseHeaderValue: function(headerName) 6615c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 662591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch var value = this._responseHeaderValues[headerName]; 663591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch if (value === undefined) { 664591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch value = this._headerValue(this.responseHeaders, headerName); 665591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch this._responseHeaderValues[headerName] = (value !== undefined) ? value : null; 666591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch } 667591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch return (value !== null) ? value : undefined; 6685c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 6695c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 6705c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 671a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @return {!Array.<!WebInspector.Cookie>} 6725c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 6735c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) get responseCookies() 6745c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 6755c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (!this._responseCookies) 6765c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._responseCookies = WebInspector.CookieParser.parseSetCookie(this.responseHeaderValue("Set-Cookie")); 6775c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return this._responseCookies; 6785c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 6795c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 6805c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 6815c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @return {?string} 6825c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 6835c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) queryString: function() 6845c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 68551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles) if (this._queryString !== undefined) 6865c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return this._queryString; 68751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles) 68851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles) var queryString = null; 68951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles) var url = this.url; 69051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles) var questionMarkPosition = url.indexOf("?"); 69151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles) if (questionMarkPosition !== -1) { 69251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles) queryString = url.substring(questionMarkPosition + 1); 69351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles) var hashSignPosition = queryString.indexOf("#"); 69451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles) if (hashSignPosition !== -1) 69551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles) queryString = queryString.substring(0, hashSignPosition); 69651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles) } 69751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles) this._queryString = queryString; 6985c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return this._queryString; 6995c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 7005c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 7015c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 702926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * @return {?Array.<!WebInspector.NetworkRequest.NameValue>} 7035c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 7045c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) get queryParameters() 7055c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 7065c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (this._parsedQueryParameters) 7075c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return this._parsedQueryParameters; 7085c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) var queryString = this.queryString(); 7095c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (!queryString) 7105c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return null; 7115c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._parsedQueryParameters = this._parseParameters(queryString); 7125c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return this._parsedQueryParameters; 7135c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 7145c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 7155c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 716926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * @return {?Array.<!WebInspector.NetworkRequest.NameValue>} 7175c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 7185c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) get formParameters() 7195c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 7205c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (this._parsedFormParameters) 7215c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return this._parsedFormParameters; 7225c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (!this.requestFormData) 7235c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return null; 7245c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) var requestContentType = this.requestContentType(); 7255c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (!requestContentType || !requestContentType.match(/^application\/x-www-form-urlencoded\s*(;.*)?$/i)) 7265c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return null; 7275c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._parsedFormParameters = this._parseParameters(this.requestFormData); 7285c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return this._parsedFormParameters; 7295c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 7305c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 7315c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 732197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch * @return {string} 7335c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 734197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch responseHttpVersion: function() 7355c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 736d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) var headersText = this._responseHeadersText; 737197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch if (!headersText) 738197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch return this.responseHeaderValue("version") || this.responseHeaderValue(":version") || "unknown"; 739197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch var firstLine = headersText.split(/\r\n/)[0]; 740197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch var match = firstLine.match(/^(HTTP\/\d+\.\d+)/); 741197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch return match ? match[1] : "HTTP/0.9"; 7425c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 7435c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 7445c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 7455c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {string} queryString 746926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * @return {!Array.<!WebInspector.NetworkRequest.NameValue>} 7475c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 7485c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) _parseParameters: function(queryString) 7495c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 7505c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) function parseNameValue(pair) 7515c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 752197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch var position = pair.indexOf("="); 753197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch if (position === -1) 754197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch return {name: pair, value: ""}; 755197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch else 756197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch return {name: pair.substring(0, position), value: pair.substring(position + 1)}; 7575c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) } 7585c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return queryString.split("&").map(parseNameValue); 7595c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 7605c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 7615c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 762926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * @param {!Array.<!WebInspector.NetworkRequest.NameValue>} headers 7635c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {string} headerName 7645c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @return {string|undefined} 7655c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 7665c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) _headerValue: function(headers, headerName) 7675c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 7685c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) headerName = headerName.toLowerCase(); 769926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) 7705c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) var values = []; 7715c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) for (var i = 0; i < headers.length; ++i) { 7725c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (headers[i].name.toLowerCase() === headerName) 7735c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) values.push(headers[i].value); 7745c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) } 775926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) if (!values.length) 776926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) return undefined; 7775c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) // Set-Cookie values should be separated by '\n', not comma, otherwise cookies could not be parsed. 7785c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (headerName === "set-cookie") 7795c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return values.join("\n"); 7805c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return values.join(", "); 7815c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 7825c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 7835c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 7845c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @return {?string|undefined} 7855c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 7865c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) get content() 7875c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 7885c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return this._content; 7895c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 7905c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 7915c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 792d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) * @return {?Protocol.Error|undefined} 793d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) */ 794d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) contentError: function() 795d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) { 796d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) return this._contentError; 797d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) }, 798d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) 799d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) /** 8005c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @return {boolean} 8015c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 8025c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) get contentEncoded() 8035c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 8045c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return this._contentEncoded; 8055c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 8065c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 8075c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 8085c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @return {string} 8095c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 8105c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) contentURL: function() 8115c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 8125c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return this._url; 8135c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 8145c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 8155c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 816a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @return {!WebInspector.ResourceType} 8175c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 8185c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) contentType: function() 8195c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 8205c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return this._type; 8215c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 8225c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 8235c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 8241e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) * @param {function(?string)} callback 8255c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 8265c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) requestContent: function(callback) 8275c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 8285c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) // We do not support content retrieval for WebSockets at the moment. 8295c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) // Since WebSockets are potentially long-living, fail requests immediately 8305c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) // to prevent caller blocking until resource is marked as finished. 8315c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (this.type === WebInspector.resourceTypes.WebSocket) { 8321e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) callback(null); 8335c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return; 8345c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) } 8355c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (typeof this._content !== "undefined") { 8361e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) callback(this.content || null); 8375c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return; 8385c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) } 8395c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._pendingContentCallbacks.push(callback); 8405c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (this.finished) 8415c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._innerRequestContent(); 8425c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 8435c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 8445c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 8455c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {string} query 8465c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {boolean} caseSensitive 8475c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {boolean} isRegex 848a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {function(!Array.<!WebInspector.ContentProvider.SearchMatch>)} callback 8495c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 8505c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) searchInContent: function(query, caseSensitive, isRegex, callback) 8515c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 8525c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) callback([]); 8535c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 8545c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 8555c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 8565c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @return {boolean} 8575c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 8585c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) isHttpFamily: function() 8595c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 8605c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return !!this.url.match(/^https?:/i); 8615c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 8625c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 8635c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 8645c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @return {string|undefined} 8655c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 8665c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) requestContentType: function() 8675c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 8685c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return this.requestHeaderValue("Content-Type"); 8695c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 8705c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 8715c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 8725c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @return {boolean} 8735c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 8745c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) hasErrorStatusCode: function() 8755c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 8765c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return this.statusCode >= 400; 8775c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 8785c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 8795c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 880a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {!Element} image 8815c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 8825c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) populateImageSource: function(image) 8835c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 8845c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 8855c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @this {WebInspector.NetworkRequest} 8865c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {?string} content 8875c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 8881e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) function onResourceContent(content) 8895c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 8905c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) var imageSrc = this.asDataURL(); 8915c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (imageSrc === null) 8925c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) imageSrc = this.url; 8935c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) image.src = imageSrc; 8945c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) } 8955c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 8965c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this.requestContent(onResourceContent.bind(this)); 8975c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 8985c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 8995c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 9005c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @return {?string} 9015c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 9025c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) asDataURL: function() 9035c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 904e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) return WebInspector.Resource.contentAsDataURL(this._content, this.mimeType, this._contentEncoded); 9055c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 9065c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 9075c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) _innerRequestContent: function() 9085c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 9095c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (this._contentRequested) 9105c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return; 9115c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._contentRequested = true; 9125c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 9135c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 9145c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {?Protocol.Error} error 9155c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {string} content 9165c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {boolean} contentEncoded 91709380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) * @this {WebInspector.NetworkRequest} 9185c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 9195c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) function onResourceContent(error, content, contentEncoded) 9205c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 9215c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._content = error ? null : content; 922d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) this._contentError = error; 9235c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._contentEncoded = contentEncoded; 9245c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) var callbacks = this._pendingContentCallbacks.slice(); 9255c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) for (var i = 0; i < callbacks.length; ++i) 9261e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) callbacks[i](this._content); 9275c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._pendingContentCallbacks.length = 0; 9285c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) delete this._contentRequested; 9295c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) } 9305c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) NetworkAgent.getResponseBody(this._requestId, onResourceContent.bind(this)); 9315c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 9325c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 9335c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 9347242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci * @return {?NetworkAgent.Initiator} 9357242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci */ 9367242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci initiator: function() 9377242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci { 9387242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci return this._initiator; 9397242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci }, 9407242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci 9417242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci /** 942d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) * @return {!{type: !WebInspector.NetworkRequest.InitiatorType, url: string, lineNumber: number, columnNumber: number}} 94353e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles) */ 94453e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles) initiatorInfo: function() 94553e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles) { 94653e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles) if (this._initiatorInfo) 94753e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles) return this._initiatorInfo; 94853e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles) 94953e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles) var type = WebInspector.NetworkRequest.InitiatorType.Other; 95053e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles) var url = ""; 95153e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles) var lineNumber = -Infinity; 95253e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles) var columnNumber = -Infinity; 9537242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci var initiator = this._initiator; 95453e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles) 95553e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles) if (this.redirectSource) { 95653e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles) type = WebInspector.NetworkRequest.InitiatorType.Redirect; 95753e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles) url = this.redirectSource.url; 9587242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci } else if (initiator) { 9597242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci if (initiator.type === NetworkAgent.InitiatorType.Parser) { 96053e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles) type = WebInspector.NetworkRequest.InitiatorType.Parser; 9617242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci url = initiator.url ? initiator.url : url; 9627242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci lineNumber = initiator.lineNumber ? initiator.lineNumber : lineNumber; 9637242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci } else if (initiator.type === NetworkAgent.InitiatorType.Script) { 9647242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci var topFrame = initiator.stackTrace[0]; 96553e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles) if (topFrame.url) { 96653e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles) type = WebInspector.NetworkRequest.InitiatorType.Script; 96753e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles) url = topFrame.url; 96853e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles) lineNumber = topFrame.lineNumber; 96953e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles) columnNumber = topFrame.columnNumber; 97053e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles) } 97153e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles) } 97253e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles) } 97353e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles) 974d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) this._initiatorInfo = {type: type, url: url, lineNumber: lineNumber, columnNumber: columnNumber}; 97553e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles) return this._initiatorInfo; 97653e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles) }, 97753e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles) 97853e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles) /** 979c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) * @return {!Array.<!WebInspector.NetworkRequest.WebSocketFrame>} 9805c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 9815c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) frames: function() 9825c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 9835c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return this._frames; 9845c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 9855c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 9865c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 9875c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {string} errorMessage 9885c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {number} time 9895c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 9905c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) addFrameError: function(errorMessage, time) 9915c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 992c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) this._frames.push({ type: WebInspector.NetworkRequest.WebSocketFrameType.Error, text: errorMessage, time: time, opCode: -1, mask: false }); 9935c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 9945c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 9955c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 996926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * @param {!NetworkAgent.WebSocketFrame} response 9975c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {number} time 9985c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {boolean} sent 9995c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 10005c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) addFrame: function(response, time, sent) 10015c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 1002c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) var type = sent ? WebInspector.NetworkRequest.WebSocketFrameType.Send : WebInspector.NetworkRequest.WebSocketFrameType.Receive; 1003c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) this._frames.push({ type: type, text: response.payloadData, time: time, opCode: response.opcode, mask: response.mask }); 10045c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 10055c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 1006f542a0e9557608d421c9d165487573efa35a5f91Ben Murdoch replayXHR: function() 1007f542a0e9557608d421c9d165487573efa35a5f91Ben Murdoch { 1008f542a0e9557608d421c9d165487573efa35a5f91Ben Murdoch this.target().networkAgent().replayXHR(this.requestId); 1009f542a0e9557608d421c9d165487573efa35a5f91Ben Murdoch }, 1010f542a0e9557608d421c9d165487573efa35a5f91Ben Murdoch 1011197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch __proto__: WebInspector.SDKObject.prototype 10125c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)} 1013