15c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)/* 25c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * Copyright (C) 2007, 2008 Apple 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 65c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * are met: 75c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * 85c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * 1. Redistributions of source code must retain the above copyright 95c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * notice, this list of conditions and the following disclaimer. 105c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * 2. Redistributions in binary form must reproduce the above copyright 115c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * notice, this list of conditions and the following disclaimer in the 125c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * documentation and/or other materials provided with the distribution. 135c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of 145c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * its contributors may be used to endorse or promote products derived 155c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * from this software without specific prior written permission. 165c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * 175c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY 185c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 195c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 205c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY 215c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 225c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 235c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 245c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 255c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 265c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 275c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 285c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 295c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)/** 305c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @constructor 31197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch * @extends {WebInspector.SDKObject} 325c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @implements {WebInspector.ContentProvider} 33197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch * @param {!WebInspector.Target} target 345c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {?WebInspector.NetworkRequest} request 355c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {string} url 365c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {string} documentURL 37a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {!PageAgent.FrameId} frameId 38a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {!NetworkAgent.LoaderId} loaderId 39a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {!WebInspector.ResourceType} type 405c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {string} mimeType 415c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {boolean=} isHidden 425c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 43197021e6b966cfb06891637935ef33fff06433d1Ben MurdochWebInspector.Resource = function(target, request, url, documentURL, frameId, loaderId, type, mimeType, isHidden) 445c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles){ 45197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch WebInspector.SDKObject.call(this, target); 465c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._request = request; 475c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this.url = url; 485c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._documentURL = documentURL; 495c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._frameId = frameId; 505c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._loaderId = loaderId; 515c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._type = type || WebInspector.resourceTypes.Other; 525c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._mimeType = mimeType; 535c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._isHidden = isHidden; 545c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 555c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** @type {?string} */ this._content; 565c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** @type {boolean} */ this._contentEncoded; 575c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._pendingContentCallbacks = []; 585c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (this._request && !this._request.finished) 595c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._request.addEventListener(WebInspector.NetworkRequest.Events.FinishedLoading, this._requestFinished, this); 605c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)} 615c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 625c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)WebInspector.Resource.Events = { 635c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) MessageAdded: "message-added", 645c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) MessagesCleared: "messages-cleared", 655c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)} 665c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 67e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles)/** 68e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) * @param {?string} content 69e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) * @param {string} mimeType 70e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) * @param {boolean} contentEncoded 71e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) * @return {?string} 72e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) */ 73e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles)WebInspector.Resource.contentAsDataURL = function(content, mimeType, contentEncoded) 74e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles){ 75e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) const maxDataUrlSize = 1024 * 1024; 76e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) if (content === null || content.length > maxDataUrlSize) 77e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) return null; 78e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) 79e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) return "data:" + mimeType + (contentEncoded ? ";base64," : ",") + content; 80e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles)} 81e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) 825c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)WebInspector.Resource.prototype = { 835c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 845c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @return {?WebInspector.NetworkRequest} 855c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 865c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) get request() 875c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 885c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return this._request; 895c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 905c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 915c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 925c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @return {string} 935c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 945c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) get url() 955c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 965c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return this._url; 975c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 985c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 995c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) set url(x) 1005c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 1015c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._url = x; 1025c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._parsedURL = new WebInspector.ParsedURL(x); 1035c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 1045c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 1055c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) get parsedURL() 1065c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 1075c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return this._parsedURL; 1085c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 1095c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 1105c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 1115c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @return {string} 1125c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 1135c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) get documentURL() 1145c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 1155c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return this._documentURL; 1165c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 1175c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 1185c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 119a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @return {!PageAgent.FrameId} 1205c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 1215c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) get frameId() 1225c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 1235c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return this._frameId; 1245c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 1255c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 1265c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 127a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @return {!NetworkAgent.LoaderId} 1285c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 1295c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) get loaderId() 1305c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 1315c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return this._loaderId; 1325c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 1335c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 1345c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 1355c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @return {string} 1365c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 1375c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) get displayName() 1385c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 1395c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return this._parsedURL.displayName; 1405c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 1415c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 1425c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 143a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @return {!WebInspector.ResourceType} 1445c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 1455c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) get type() 1465c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 1475c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return this._request ? this._request.type : this._type; 1485c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 1495c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 1505c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 1515c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @return {string} 1525c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 1535c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) get mimeType() 1545c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 1555c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return this._request ? this._request.mimeType : this._mimeType; 1565c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 1575c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 1585c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 159a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @return {!Array.<!WebInspector.ConsoleMessage>} 1605c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 1615c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) get messages() 1625c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 1635c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return this._messages || []; 1645c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 1655c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 1665c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 167a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {!WebInspector.ConsoleMessage} msg 1685c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 1695c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) addMessage: function(msg) 1705c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 171d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) if (!msg.isErrorOrWarning() || !msg.messageText) 1725c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return; 1735c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 1745c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (!this._messages) 1755c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._messages = []; 1765c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._messages.push(msg); 1775c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this.dispatchEventToListeners(WebInspector.Resource.Events.MessageAdded, msg); 1785c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 1795c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 1805c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 1815c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @return {number} 1825c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 1835c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) get errors() 1845c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 1855c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return this._errors || 0; 1865c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 1875c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 1885c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) set errors(x) 1895c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 1905c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._errors = x; 1915c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 1925c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 1935c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 1945c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @return {number} 1955c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 1965c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) get warnings() 1975c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 1985c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return this._warnings || 0; 1995c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 2005c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2015c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) set warnings(x) 2025c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 2035c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._warnings = x; 2045c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 2055c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2065c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) clearErrorsAndWarnings: function() 2075c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 2085c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._messages = []; 2095c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._warnings = 0; 2105c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._errors = 0; 2115c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this.dispatchEventToListeners(WebInspector.Resource.Events.MessagesCleared); 2125c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 2135c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2145c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 2155c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @return {?string} 2165c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 2175c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) get content() 2185c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 2195c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return this._content; 2205c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 2215c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2225c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 2235c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @return {boolean} 2245c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 2255c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) get contentEncoded() 2265c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 2275c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return this._contentEncoded; 2285c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 2295c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2305c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 2315c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @return {string} 2325c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 2335c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) contentURL: function() 2345c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 2355c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return this._url; 2365c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 2375c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2385c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 239a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @return {!WebInspector.ResourceType} 2405c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 2415c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) contentType: function() 2425c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 2435c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return this.type; 2445c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 2455c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2465c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 2471e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) * @param {function(?string)} callback 2485c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 2495c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) requestContent: function(callback) 2505c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 2515c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (typeof this._content !== "undefined") { 2521e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) callback(this._content); 2535c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return; 2545c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) } 2555c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2565c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._pendingContentCallbacks.push(callback); 2575c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (!this._request || this._request.finished) 2585c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._innerRequestContent(); 2595c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 2605c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 26109380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) /** 26209380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) * @return {string} 26309380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) */ 2645c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) canonicalMimeType: function() 2655c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 2665c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return this.type.canonicalMimeType() || this.mimeType; 2675c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 2685c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2695c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 2705c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {string} query 2715c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {boolean} caseSensitive 2725c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {boolean} isRegex 273a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {function(!Array.<!WebInspector.ContentProvider.SearchMatch>)} callback 2745c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 2755c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) searchInContent: function(query, caseSensitive, isRegex, callback) 2765c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 2775c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 2785c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {?Protocol.Error} error 279a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {!Array.<!PageAgent.SearchMatch>} searchMatches 2805c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 2815c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) function callbackWrapper(error, searchMatches) 2825c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 2835c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) callback(searchMatches || []); 2845c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) } 2855c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 286521d96ec04ace82590870fb04353ec4f82bb150fTorne (Richard Coles) if (this.type === WebInspector.resourceTypes.Document) { 28709380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) callback([]); 288521d96ec04ace82590870fb04353ec4f82bb150fTorne (Richard Coles) return; 289521d96ec04ace82590870fb04353ec4f82bb150fTorne (Richard Coles) } 290521d96ec04ace82590870fb04353ec4f82bb150fTorne (Richard Coles) 2915c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (this.frameId) 292197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch this.target().pageAgent().searchInResource(this.frameId, this.url, query, caseSensitive, isRegex, callbackWrapper); 2935c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) else 2945c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) callback([]); 2955c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 2965c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2975c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 298a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {!Element} image 2995c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 3005c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) populateImageSource: function(image) 3015c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 3021e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) /** 3031e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) * @param {?string} content 30409380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) * @this {WebInspector.Resource} 3051e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) */ 3061e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) function onResourceContent(content) 3075c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 308e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) var imageSrc = WebInspector.Resource.contentAsDataURL(this._content, this.mimeType, this._contentEncoded); 3095c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (imageSrc === null) 3105c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) imageSrc = this.url; 3115c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) image.src = imageSrc; 3125c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) } 3135c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 3145c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this.requestContent(onResourceContent.bind(this)); 3155c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 3165c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 3175c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) _requestFinished: function() 3185c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 3195c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._request.removeEventListener(WebInspector.NetworkRequest.Events.FinishedLoading, this._requestFinished, this); 3205c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (this._pendingContentCallbacks.length) 3215c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._innerRequestContent(); 3225c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 3235c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 3245c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 3255c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) _innerRequestContent: function() 3265c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 3275c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (this._contentRequested) 3285c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return; 3295c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._contentRequested = true; 3305c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 3315c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 332e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch * @param {?Protocol.Error} error 333e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch * @param {?string} content 334e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch * @param {boolean} contentEncoded 33509380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) * @this {WebInspector.Resource} 336e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch */ 337e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch function contentLoaded(error, content, contentEncoded) 338e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch { 339e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch if (error || content === null) { 34009380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) replyWithContent.call(this, null, false); 341e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch return; 342e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch } 343e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch replyWithContent.call(this, content, contentEncoded); 344e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch } 345e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch 346e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch /** 3475c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {?string} content 3485c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {boolean} contentEncoded 34909380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) * @this {WebInspector.Resource} 3505c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 351e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch function replyWithContent(content, contentEncoded) 3525c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 3535c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._content = content; 3545c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._contentEncoded = contentEncoded; 3555c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) var callbacks = this._pendingContentCallbacks.slice(); 3565c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) for (var i = 0; i < callbacks.length; ++i) 3571e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) callbacks[i](this._content); 3585c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._pendingContentCallbacks.length = 0; 3595c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) delete this._contentRequested; 3605c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) } 3615c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 3625c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 3635c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {?Protocol.Error} error 3645c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {string} content 3655c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {boolean} contentEncoded 36609380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) * @this {WebInspector.Resource} 3675c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 3685c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) function resourceContentLoaded(error, content, contentEncoded) 3695c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 370e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch contentLoaded.call(this, error, content, contentEncoded); 3715c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) } 372521d96ec04ace82590870fb04353ec4f82bb150fTorne (Richard Coles) 3735c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (this.request) { 3745c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this.request.requestContent(requestContentLoaded.bind(this)); 3755c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return; 3765c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) } 377a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) 378a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) /** 379a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {?string} content 38009380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) * @this {WebInspector.Resource} 381a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) */ 382a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) function requestContentLoaded(content) 383a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) { 384a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) contentLoaded.call(this, null, content, this.request.contentEncoded); 385a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) } 386a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) 387197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch this.target().pageAgent().getResourceContent(this.frameId, this.url, resourceContentLoaded.bind(this)); 3885c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 3895c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 3905c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 3915c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @return {boolean} 3925c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 3935c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) isHidden: function() 3945c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 3955c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return !!this._isHidden; 3965c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 3975c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 398197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch __proto__: WebInspector.SDKObject.prototype 3995c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)} 4005c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 401