| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2011 Google Inc. All rights reserved. | 2 * Copyright (C) 2011 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 13 matching lines...) Expand all Loading... |
| 24 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | 24 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
| 25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | 25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
| 26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
| 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
| 28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| 29 */ | 29 */ |
| 30 | 30 |
| 31 /** | 31 /** |
| 32 * @unrestricted | 32 * @unrestricted |
| 33 */ | 33 */ |
| 34 WebInspector.ResourceTreeModel = class extends WebInspector.SDKModel { | 34 SDK.ResourceTreeModel = class extends SDK.SDKModel { |
| 35 /** | 35 /** |
| 36 * @param {!WebInspector.Target} target | 36 * @param {!SDK.Target} target |
| 37 * @param {?WebInspector.NetworkManager} networkManager | 37 * @param {?SDK.NetworkManager} networkManager |
| 38 * @param {!WebInspector.SecurityOriginManager} securityOriginManager | 38 * @param {!SDK.SecurityOriginManager} securityOriginManager |
| 39 */ | 39 */ |
| 40 constructor(target, networkManager, securityOriginManager) { | 40 constructor(target, networkManager, securityOriginManager) { |
| 41 super(WebInspector.ResourceTreeModel, target); | 41 super(SDK.ResourceTreeModel, target); |
| 42 if (networkManager) { | 42 if (networkManager) { |
| 43 networkManager.addEventListener( | 43 networkManager.addEventListener( |
| 44 WebInspector.NetworkManager.Events.RequestFinished, this._onRequestFin
ished, this); | 44 SDK.NetworkManager.Events.RequestFinished, this._onRequestFinished, th
is); |
| 45 networkManager.addEventListener( | 45 networkManager.addEventListener( |
| 46 WebInspector.NetworkManager.Events.RequestUpdateDropped, this._onReque
stUpdateDropped, this); | 46 SDK.NetworkManager.Events.RequestUpdateDropped, this._onRequestUpdateD
ropped, this); |
| 47 } | 47 } |
| 48 | 48 |
| 49 this._agent = target.pageAgent(); | 49 this._agent = target.pageAgent(); |
| 50 this._agent.enable(); | 50 this._agent.enable(); |
| 51 this._securityOriginManager = securityOriginManager; | 51 this._securityOriginManager = securityOriginManager; |
| 52 | 52 |
| 53 this._fetchResourceTree(); | 53 this._fetchResourceTree(); |
| 54 | 54 |
| 55 target.registerPageDispatcher(new WebInspector.PageDispatcher(this)); | 55 target.registerPageDispatcher(new SDK.PageDispatcher(this)); |
| 56 | 56 |
| 57 this._pendingReloadOptions = null; | 57 this._pendingReloadOptions = null; |
| 58 this._reloadSuspensionCount = 0; | 58 this._reloadSuspensionCount = 0; |
| 59 } | 59 } |
| 60 | 60 |
| 61 /** | 61 /** |
| 62 * @param {!WebInspector.Target} target | 62 * @param {!SDK.Target} target |
| 63 * @return {?WebInspector.ResourceTreeModel} | 63 * @return {?SDK.ResourceTreeModel} |
| 64 */ | 64 */ |
| 65 static fromTarget(target) { | 65 static fromTarget(target) { |
| 66 return /** @type {?WebInspector.ResourceTreeModel} */ (target.model(WebInspe
ctor.ResourceTreeModel)); | 66 return /** @type {?SDK.ResourceTreeModel} */ (target.model(SDK.ResourceTreeM
odel)); |
| 67 } | 67 } |
| 68 | 68 |
| 69 /** | 69 /** |
| 70 * @return {!Array.<!WebInspector.ResourceTreeFrame>} | 70 * @return {!Array.<!SDK.ResourceTreeFrame>} |
| 71 */ | 71 */ |
| 72 static frames() { | 72 static frames() { |
| 73 var result = []; | 73 var result = []; |
| 74 for (var target of WebInspector.targetManager.targets(WebInspector.Target.Ca
pability.DOM)) | 74 for (var target of SDK.targetManager.targets(SDK.Target.Capability.DOM)) |
| 75 result = result.concat(WebInspector.ResourceTreeModel.fromTarget(target)._
frames.valuesArray()); | 75 result = result.concat(SDK.ResourceTreeModel.fromTarget(target)._frames.va
luesArray()); |
| 76 return result; | 76 return result; |
| 77 } | 77 } |
| 78 | 78 |
| 79 /** | 79 /** |
| 80 * @param {string} url | 80 * @param {string} url |
| 81 * @return {?WebInspector.Resource} | 81 * @return {?SDK.Resource} |
| 82 */ | 82 */ |
| 83 static resourceForURL(url) { | 83 static resourceForURL(url) { |
| 84 for (var target of WebInspector.targetManager.targets(WebInspector.Target.Ca
pability.DOM)) { | 84 for (var target of SDK.targetManager.targets(SDK.Target.Capability.DOM)) { |
| 85 var mainFrame = WebInspector.ResourceTreeModel.fromTarget(target).mainFram
e; | 85 var mainFrame = SDK.ResourceTreeModel.fromTarget(target).mainFrame; |
| 86 var result = mainFrame ? mainFrame.resourceForURL(url) : null; | 86 var result = mainFrame ? mainFrame.resourceForURL(url) : null; |
| 87 if (result) | 87 if (result) |
| 88 return result; | 88 return result; |
| 89 } | 89 } |
| 90 return null; | 90 return null; |
| 91 } | 91 } |
| 92 | 92 |
| 93 _fetchResourceTree() { | 93 _fetchResourceTree() { |
| 94 /** @type {!Map<string, !WebInspector.ResourceTreeFrame>} */ | 94 /** @type {!Map<string, !SDK.ResourceTreeFrame>} */ |
| 95 this._frames = new Map(); | 95 this._frames = new Map(); |
| 96 this._cachedResourcesProcessed = false; | 96 this._cachedResourcesProcessed = false; |
| 97 this._agent.getResourceTree(this._processCachedResources.bind(this)); | 97 this._agent.getResourceTree(this._processCachedResources.bind(this)); |
| 98 } | 98 } |
| 99 | 99 |
| 100 _processCachedResources(error, mainFramePayload) { | 100 _processCachedResources(error, mainFramePayload) { |
| 101 if (!error) { | 101 if (!error) { |
| 102 this.dispatchEventToListeners(WebInspector.ResourceTreeModel.Events.WillLo
adCachedResources); | 102 this.dispatchEventToListeners(SDK.ResourceTreeModel.Events.WillLoadCachedR
esources); |
| 103 this._addFramesRecursively(null, mainFramePayload); | 103 this._addFramesRecursively(null, mainFramePayload); |
| 104 this.target().setInspectedURL(mainFramePayload.frame.url); | 104 this.target().setInspectedURL(mainFramePayload.frame.url); |
| 105 } | 105 } |
| 106 this._cachedResourcesProcessed = true; | 106 this._cachedResourcesProcessed = true; |
| 107 this.target().runtimeModel.setExecutionContextComparator(this._executionCont
extComparator.bind(this)); | 107 this.target().runtimeModel.setExecutionContextComparator(this._executionCont
extComparator.bind(this)); |
| 108 this.target().runtimeModel.fireExecutionContextOrderChanged(); | 108 this.target().runtimeModel.fireExecutionContextOrderChanged(); |
| 109 this.dispatchEventToListeners(WebInspector.ResourceTreeModel.Events.CachedRe
sourcesLoaded); | 109 this.dispatchEventToListeners(SDK.ResourceTreeModel.Events.CachedResourcesLo
aded); |
| 110 } | 110 } |
| 111 | 111 |
| 112 /** | 112 /** |
| 113 * @return {boolean} | 113 * @return {boolean} |
| 114 */ | 114 */ |
| 115 cachedResourcesLoaded() { | 115 cachedResourcesLoaded() { |
| 116 return this._cachedResourcesProcessed; | 116 return this._cachedResourcesProcessed; |
| 117 } | 117 } |
| 118 | 118 |
| 119 /** | 119 /** |
| 120 * @param {!WebInspector.ResourceTreeFrame} frame | 120 * @param {!SDK.ResourceTreeFrame} frame |
| 121 * @param {boolean=} aboutToNavigate | 121 * @param {boolean=} aboutToNavigate |
| 122 */ | 122 */ |
| 123 _addFrame(frame, aboutToNavigate) { | 123 _addFrame(frame, aboutToNavigate) { |
| 124 this._frames.set(frame.id, frame); | 124 this._frames.set(frame.id, frame); |
| 125 if (frame.isMainFrame()) { | 125 if (frame.isMainFrame()) { |
| 126 this.mainFrame = frame; | 126 this.mainFrame = frame; |
| 127 this._securityOriginManager.setMainSecurityOrigin(frame.url); | 127 this._securityOriginManager.setMainSecurityOrigin(frame.url); |
| 128 } | 128 } |
| 129 this.dispatchEventToListeners(WebInspector.ResourceTreeModel.Events.FrameAdd
ed, frame); | 129 this.dispatchEventToListeners(SDK.ResourceTreeModel.Events.FrameAdded, frame
); |
| 130 if (!aboutToNavigate) | 130 if (!aboutToNavigate) |
| 131 this._securityOriginManager.addSecurityOrigin(frame.securityOrigin); | 131 this._securityOriginManager.addSecurityOrigin(frame.securityOrigin); |
| 132 } | 132 } |
| 133 | 133 |
| 134 /** | 134 /** |
| 135 * @param {!WebInspector.ResourceTreeFrame} mainFrame | 135 * @param {!SDK.ResourceTreeFrame} mainFrame |
| 136 */ | 136 */ |
| 137 _handleMainFrameDetached(mainFrame) { | 137 _handleMainFrameDetached(mainFrame) { |
| 138 /** | 138 /** |
| 139 * @param {!WebInspector.ResourceTreeFrame} frame | 139 * @param {!SDK.ResourceTreeFrame} frame |
| 140 * @this {WebInspector.ResourceTreeModel} | 140 * @this {SDK.ResourceTreeModel} |
| 141 */ | 141 */ |
| 142 function removeOriginForFrame(frame) { | 142 function removeOriginForFrame(frame) { |
| 143 for (var i = 0; i < frame.childFrames.length; ++i) | 143 for (var i = 0; i < frame.childFrames.length; ++i) |
| 144 removeOriginForFrame.call(this, frame.childFrames[i]); | 144 removeOriginForFrame.call(this, frame.childFrames[i]); |
| 145 if (!frame.isMainFrame()) | 145 if (!frame.isMainFrame()) |
| 146 this._securityOriginManager.removeSecurityOrigin(frame.securityOrigin); | 146 this._securityOriginManager.removeSecurityOrigin(frame.securityOrigin); |
| 147 } | 147 } |
| 148 removeOriginForFrame.call(this, mainFrame); | 148 removeOriginForFrame.call(this, mainFrame); |
| 149 } | 149 } |
| 150 | 150 |
| 151 /** | 151 /** |
| 152 * @param {!Protocol.Page.FrameId} frameId | 152 * @param {!Protocol.Page.FrameId} frameId |
| 153 * @param {?Protocol.Page.FrameId} parentFrameId | 153 * @param {?Protocol.Page.FrameId} parentFrameId |
| 154 * @return {?WebInspector.ResourceTreeFrame} | 154 * @return {?SDK.ResourceTreeFrame} |
| 155 */ | 155 */ |
| 156 _frameAttached(frameId, parentFrameId) { | 156 _frameAttached(frameId, parentFrameId) { |
| 157 // Do nothing unless cached resource tree is processed - it will overwrite e
verything. | 157 // Do nothing unless cached resource tree is processed - it will overwrite e
verything. |
| 158 if (!this._cachedResourcesProcessed && parentFrameId) | 158 if (!this._cachedResourcesProcessed && parentFrameId) |
| 159 return null; | 159 return null; |
| 160 if (this._frames.has(frameId)) | 160 if (this._frames.has(frameId)) |
| 161 return null; | 161 return null; |
| 162 | 162 |
| 163 var parentFrame = parentFrameId ? (this._frames.get(parentFrameId) || null)
: null; | 163 var parentFrame = parentFrameId ? (this._frames.get(parentFrameId) || null)
: null; |
| 164 var frame = new WebInspector.ResourceTreeFrame(this, parentFrame, frameId); | 164 var frame = new SDK.ResourceTreeFrame(this, parentFrame, frameId); |
| 165 if (frame.isMainFrame() && this.mainFrame) { | 165 if (frame.isMainFrame() && this.mainFrame) { |
| 166 this._handleMainFrameDetached(this.mainFrame); | 166 this._handleMainFrameDetached(this.mainFrame); |
| 167 // Navigation to the new backend process. | 167 // Navigation to the new backend process. |
| 168 this._frameDetached(this.mainFrame.id); | 168 this._frameDetached(this.mainFrame.id); |
| 169 } | 169 } |
| 170 this._addFrame(frame, true); | 170 this._addFrame(frame, true); |
| 171 return frame; | 171 return frame; |
| 172 } | 172 } |
| 173 | 173 |
| 174 /** | 174 /** |
| 175 * @param {!Protocol.Page.Frame} framePayload | 175 * @param {!Protocol.Page.Frame} framePayload |
| 176 */ | 176 */ |
| 177 _frameNavigated(framePayload) { | 177 _frameNavigated(framePayload) { |
| 178 // Do nothing unless cached resource tree is processed - it will overwrite e
verything. | 178 // Do nothing unless cached resource tree is processed - it will overwrite e
verything. |
| 179 if (!this._cachedResourcesProcessed && framePayload.parentId) | 179 if (!this._cachedResourcesProcessed && framePayload.parentId) |
| 180 return; | 180 return; |
| 181 var frame = this._frames.get(framePayload.id); | 181 var frame = this._frames.get(framePayload.id); |
| 182 if (!frame) { | 182 if (!frame) { |
| 183 // Simulate missed "frameAttached" for a main frame navigation to the new
backend process. | 183 // Simulate missed "frameAttached" for a main frame navigation to the new
backend process. |
| 184 console.assert(!framePayload.parentId, 'Main frame shouldn\'t have parent
frame id.'); | 184 console.assert(!framePayload.parentId, 'Main frame shouldn\'t have parent
frame id.'); |
| 185 frame = this._frameAttached(framePayload.id, framePayload.parentId || ''); | 185 frame = this._frameAttached(framePayload.id, framePayload.parentId || ''); |
| 186 console.assert(frame); | 186 console.assert(frame); |
| 187 } | 187 } |
| 188 | 188 |
| 189 this.dispatchEventToListeners(WebInspector.ResourceTreeModel.Events.FrameWil
lNavigate, frame); | 189 this.dispatchEventToListeners(SDK.ResourceTreeModel.Events.FrameWillNavigate
, frame); |
| 190 | 190 |
| 191 this._securityOriginManager.removeSecurityOrigin(frame.securityOrigin); | 191 this._securityOriginManager.removeSecurityOrigin(frame.securityOrigin); |
| 192 frame._navigate(framePayload); | 192 frame._navigate(framePayload); |
| 193 var addedOrigin = frame.securityOrigin; | 193 var addedOrigin = frame.securityOrigin; |
| 194 | 194 |
| 195 this.dispatchEventToListeners(WebInspector.ResourceTreeModel.Events.FrameNav
igated, frame); | 195 this.dispatchEventToListeners(SDK.ResourceTreeModel.Events.FrameNavigated, f
rame); |
| 196 if (frame.isMainFrame()) { | 196 if (frame.isMainFrame()) { |
| 197 this.dispatchEventToListeners(WebInspector.ResourceTreeModel.Events.MainFr
ameNavigated, frame); | 197 this.dispatchEventToListeners(SDK.ResourceTreeModel.Events.MainFrameNaviga
ted, frame); |
| 198 if (WebInspector.moduleSetting('preserveConsoleLog').get()) | 198 if (Common.moduleSetting('preserveConsoleLog').get()) |
| 199 WebInspector.console.log(WebInspector.UIString('Navigated to %s', frame.
url)); | 199 Common.console.log(Common.UIString('Navigated to %s', frame.url)); |
| 200 else | 200 else |
| 201 this.target().consoleModel.clear(); | 201 this.target().consoleModel.clear(); |
| 202 } | 202 } |
| 203 if (addedOrigin) | 203 if (addedOrigin) |
| 204 this._securityOriginManager.addSecurityOrigin(addedOrigin); | 204 this._securityOriginManager.addSecurityOrigin(addedOrigin); |
| 205 | 205 |
| 206 // Fill frame with retained resources (the ones loaded using new loader). | 206 // Fill frame with retained resources (the ones loaded using new loader). |
| 207 var resources = frame.resources(); | 207 var resources = frame.resources(); |
| 208 for (var i = 0; i < resources.length; ++i) | 208 for (var i = 0; i < resources.length; ++i) |
| 209 this.dispatchEventToListeners(WebInspector.ResourceTreeModel.Events.Resour
ceAdded, resources[i]); | 209 this.dispatchEventToListeners(SDK.ResourceTreeModel.Events.ResourceAdded,
resources[i]); |
| 210 | 210 |
| 211 if (frame.isMainFrame()) | 211 if (frame.isMainFrame()) |
| 212 this.target().setInspectedURL(frame.url); | 212 this.target().setInspectedURL(frame.url); |
| 213 } | 213 } |
| 214 | 214 |
| 215 /** | 215 /** |
| 216 * @param {!Protocol.Page.FrameId} frameId | 216 * @param {!Protocol.Page.FrameId} frameId |
| 217 */ | 217 */ |
| 218 _frameDetached(frameId) { | 218 _frameDetached(frameId) { |
| 219 // Do nothing unless cached resource tree is processed - it will overwrite e
verything. | 219 // Do nothing unless cached resource tree is processed - it will overwrite e
verything. |
| 220 if (!this._cachedResourcesProcessed) | 220 if (!this._cachedResourcesProcessed) |
| 221 return; | 221 return; |
| 222 | 222 |
| 223 var frame = this._frames.get(frameId); | 223 var frame = this._frames.get(frameId); |
| 224 if (!frame) | 224 if (!frame) |
| 225 return; | 225 return; |
| 226 | 226 |
| 227 this._securityOriginManager.removeSecurityOrigin(frame.securityOrigin); | 227 this._securityOriginManager.removeSecurityOrigin(frame.securityOrigin); |
| 228 if (frame.parentFrame) | 228 if (frame.parentFrame) |
| 229 frame.parentFrame._removeChildFrame(frame); | 229 frame.parentFrame._removeChildFrame(frame); |
| 230 else | 230 else |
| 231 frame._remove(); | 231 frame._remove(); |
| 232 } | 232 } |
| 233 | 233 |
| 234 /** | 234 /** |
| 235 * @param {!WebInspector.Event} event | 235 * @param {!Common.Event} event |
| 236 */ | 236 */ |
| 237 _onRequestFinished(event) { | 237 _onRequestFinished(event) { |
| 238 if (!this._cachedResourcesProcessed) | 238 if (!this._cachedResourcesProcessed) |
| 239 return; | 239 return; |
| 240 | 240 |
| 241 var request = /** @type {!WebInspector.NetworkRequest} */ (event.data); | 241 var request = /** @type {!SDK.NetworkRequest} */ (event.data); |
| 242 if (request.failed || request.resourceType() === WebInspector.resourceTypes.
XHR) | 242 if (request.failed || request.resourceType() === Common.resourceTypes.XHR) |
| 243 return; | 243 return; |
| 244 | 244 |
| 245 var frame = this._frames.get(request.frameId); | 245 var frame = this._frames.get(request.frameId); |
| 246 if (frame) | 246 if (frame) |
| 247 frame._addRequest(request); | 247 frame._addRequest(request); |
| 248 } | 248 } |
| 249 | 249 |
| 250 /** | 250 /** |
| 251 * @param {!WebInspector.Event} event | 251 * @param {!Common.Event} event |
| 252 */ | 252 */ |
| 253 _onRequestUpdateDropped(event) { | 253 _onRequestUpdateDropped(event) { |
| 254 if (!this._cachedResourcesProcessed) | 254 if (!this._cachedResourcesProcessed) |
| 255 return; | 255 return; |
| 256 | 256 |
| 257 var frameId = event.data.frameId; | 257 var frameId = event.data.frameId; |
| 258 var frame = this._frames.get(frameId); | 258 var frame = this._frames.get(frameId); |
| 259 if (!frame) | 259 if (!frame) |
| 260 return; | 260 return; |
| 261 | 261 |
| 262 var url = event.data.url; | 262 var url = event.data.url; |
| 263 if (frame._resourcesMap[url]) | 263 if (frame._resourcesMap[url]) |
| 264 return; | 264 return; |
| 265 | 265 |
| 266 var resource = new WebInspector.Resource( | 266 var resource = new SDK.Resource( |
| 267 this.target(), null, url, frame.url, frameId, event.data.loaderId, | 267 this.target(), null, url, frame.url, frameId, event.data.loaderId, |
| 268 WebInspector.resourceTypes[event.data.resourceType], event.data.mimeType
, event.data.lastModified, null); | 268 Common.resourceTypes[event.data.resourceType], event.data.mimeType, even
t.data.lastModified, null); |
| 269 frame.addResource(resource); | 269 frame.addResource(resource); |
| 270 } | 270 } |
| 271 | 271 |
| 272 /** | 272 /** |
| 273 * @param {!Protocol.Page.FrameId} frameId | 273 * @param {!Protocol.Page.FrameId} frameId |
| 274 * @return {!WebInspector.ResourceTreeFrame} | 274 * @return {!SDK.ResourceTreeFrame} |
| 275 */ | 275 */ |
| 276 frameForId(frameId) { | 276 frameForId(frameId) { |
| 277 return this._frames.get(frameId); | 277 return this._frames.get(frameId); |
| 278 } | 278 } |
| 279 | 279 |
| 280 /** | 280 /** |
| 281 * @param {function(!WebInspector.Resource)} callback | 281 * @param {function(!SDK.Resource)} callback |
| 282 * @return {boolean} | 282 * @return {boolean} |
| 283 */ | 283 */ |
| 284 forAllResources(callback) { | 284 forAllResources(callback) { |
| 285 if (this.mainFrame) | 285 if (this.mainFrame) |
| 286 return this.mainFrame._callForFrameResources(callback); | 286 return this.mainFrame._callForFrameResources(callback); |
| 287 return false; | 287 return false; |
| 288 } | 288 } |
| 289 | 289 |
| 290 /** | 290 /** |
| 291 * @return {!Array<!WebInspector.ResourceTreeFrame>} | 291 * @return {!Array<!SDK.ResourceTreeFrame>} |
| 292 */ | 292 */ |
| 293 frames() { | 293 frames() { |
| 294 return this._frames.valuesArray(); | 294 return this._frames.valuesArray(); |
| 295 } | 295 } |
| 296 | 296 |
| 297 /** | 297 /** |
| 298 * @param {string} url | 298 * @param {string} url |
| 299 * @return {?WebInspector.Resource} | 299 * @return {?SDK.Resource} |
| 300 */ | 300 */ |
| 301 resourceForURL(url) { | 301 resourceForURL(url) { |
| 302 // Workers call into this with no frames available. | 302 // Workers call into this with no frames available. |
| 303 return this.mainFrame ? this.mainFrame.resourceForURL(url) : null; | 303 return this.mainFrame ? this.mainFrame.resourceForURL(url) : null; |
| 304 } | 304 } |
| 305 | 305 |
| 306 /** | 306 /** |
| 307 * @param {?WebInspector.ResourceTreeFrame} parentFrame | 307 * @param {?SDK.ResourceTreeFrame} parentFrame |
| 308 * @param {!Protocol.Page.FrameResourceTree} frameTreePayload | 308 * @param {!Protocol.Page.FrameResourceTree} frameTreePayload |
| 309 */ | 309 */ |
| 310 _addFramesRecursively(parentFrame, frameTreePayload) { | 310 _addFramesRecursively(parentFrame, frameTreePayload) { |
| 311 var framePayload = frameTreePayload.frame; | 311 var framePayload = frameTreePayload.frame; |
| 312 var frame = new WebInspector.ResourceTreeFrame(this, parentFrame, framePaylo
ad.id, framePayload); | 312 var frame = new SDK.ResourceTreeFrame(this, parentFrame, framePayload.id, fr
amePayload); |
| 313 this._addFrame(frame); | 313 this._addFrame(frame); |
| 314 | 314 |
| 315 var frameResource = this._createResourceFromFramePayload( | 315 var frameResource = this._createResourceFromFramePayload( |
| 316 framePayload, framePayload.url, WebInspector.resourceTypes.Document, fra
mePayload.mimeType, null, null); | 316 framePayload, framePayload.url, Common.resourceTypes.Document, framePayl
oad.mimeType, null, null); |
| 317 frame.addResource(frameResource); | 317 frame.addResource(frameResource); |
| 318 | 318 |
| 319 for (var i = 0; frameTreePayload.childFrames && i < frameTreePayload.childFr
ames.length; ++i) | 319 for (var i = 0; frameTreePayload.childFrames && i < frameTreePayload.childFr
ames.length; ++i) |
| 320 this._addFramesRecursively(frame, frameTreePayload.childFrames[i]); | 320 this._addFramesRecursively(frame, frameTreePayload.childFrames[i]); |
| 321 | 321 |
| 322 for (var i = 0; i < frameTreePayload.resources.length; ++i) { | 322 for (var i = 0; i < frameTreePayload.resources.length; ++i) { |
| 323 var subresource = frameTreePayload.resources[i]; | 323 var subresource = frameTreePayload.resources[i]; |
| 324 var resource = this._createResourceFromFramePayload( | 324 var resource = this._createResourceFromFramePayload( |
| 325 framePayload, subresource.url, WebInspector.resourceTypes[subresource.
type], subresource.mimeType, | 325 framePayload, subresource.url, Common.resourceTypes[subresource.type],
subresource.mimeType, |
| 326 subresource.lastModified || null, subresource.contentSize || null); | 326 subresource.lastModified || null, subresource.contentSize || null); |
| 327 frame.addResource(resource); | 327 frame.addResource(resource); |
| 328 } | 328 } |
| 329 } | 329 } |
| 330 | 330 |
| 331 /** | 331 /** |
| 332 * @param {!Protocol.Page.Frame} frame | 332 * @param {!Protocol.Page.Frame} frame |
| 333 * @param {string} url | 333 * @param {string} url |
| 334 * @param {!WebInspector.ResourceType} type | 334 * @param {!Common.ResourceType} type |
| 335 * @param {string} mimeType | 335 * @param {string} mimeType |
| 336 * @param {?number} lastModifiedTime | 336 * @param {?number} lastModifiedTime |
| 337 * @param {?number} contentSize | 337 * @param {?number} contentSize |
| 338 * @return {!WebInspector.Resource} | 338 * @return {!SDK.Resource} |
| 339 */ | 339 */ |
| 340 _createResourceFromFramePayload(frame, url, type, mimeType, lastModifiedTime,
contentSize) { | 340 _createResourceFromFramePayload(frame, url, type, mimeType, lastModifiedTime,
contentSize) { |
| 341 var lastModified = typeof lastModifiedTime === 'number' ? new Date(lastModif
iedTime * 1000) : null; | 341 var lastModified = typeof lastModifiedTime === 'number' ? new Date(lastModif
iedTime * 1000) : null; |
| 342 return new WebInspector.Resource( | 342 return new SDK.Resource( |
| 343 this.target(), null, url, frame.url, frame.id, frame.loaderId, type, mim
eType, lastModified, contentSize); | 343 this.target(), null, url, frame.url, frame.id, frame.loaderId, type, mim
eType, lastModified, contentSize); |
| 344 } | 344 } |
| 345 | 345 |
| 346 suspendReload() { | 346 suspendReload() { |
| 347 this._reloadSuspensionCount++; | 347 this._reloadSuspensionCount++; |
| 348 } | 348 } |
| 349 | 349 |
| 350 resumeReload() { | 350 resumeReload() { |
| 351 this._reloadSuspensionCount--; | 351 this._reloadSuspensionCount--; |
| 352 console.assert(this._reloadSuspensionCount >= 0, 'Unbalanced call to Resourc
eTreeModel.resumeReload()'); | 352 console.assert(this._reloadSuspensionCount >= 0, 'Unbalanced call to Resourc
eTreeModel.resumeReload()'); |
| 353 if (!this._reloadSuspensionCount && this._pendingReloadOptions) | 353 if (!this._reloadSuspensionCount && this._pendingReloadOptions) |
| 354 this.reloadPage.apply(this, this._pendingReloadOptions); | 354 this.reloadPage.apply(this, this._pendingReloadOptions); |
| 355 } | 355 } |
| 356 | 356 |
| 357 /** | 357 /** |
| 358 * @param {boolean=} bypassCache | 358 * @param {boolean=} bypassCache |
| 359 * @param {string=} scriptToEvaluateOnLoad | 359 * @param {string=} scriptToEvaluateOnLoad |
| 360 */ | 360 */ |
| 361 reloadPage(bypassCache, scriptToEvaluateOnLoad) { | 361 reloadPage(bypassCache, scriptToEvaluateOnLoad) { |
| 362 // Only dispatch PageReloadRequested upon first reload request to simplify c
lient logic. | 362 // Only dispatch PageReloadRequested upon first reload request to simplify c
lient logic. |
| 363 if (!this._pendingReloadOptions) | 363 if (!this._pendingReloadOptions) |
| 364 this.dispatchEventToListeners(WebInspector.ResourceTreeModel.Events.PageRe
loadRequested); | 364 this.dispatchEventToListeners(SDK.ResourceTreeModel.Events.PageReloadReque
sted); |
| 365 if (this._reloadSuspensionCount) { | 365 if (this._reloadSuspensionCount) { |
| 366 this._pendingReloadOptions = [bypassCache, scriptToEvaluateOnLoad]; | 366 this._pendingReloadOptions = [bypassCache, scriptToEvaluateOnLoad]; |
| 367 return; | 367 return; |
| 368 } | 368 } |
| 369 this._pendingReloadOptions = null; | 369 this._pendingReloadOptions = null; |
| 370 this.dispatchEventToListeners(WebInspector.ResourceTreeModel.Events.WillRelo
adPage); | 370 this.dispatchEventToListeners(SDK.ResourceTreeModel.Events.WillReloadPage); |
| 371 this._agent.reload(bypassCache, scriptToEvaluateOnLoad); | 371 this._agent.reload(bypassCache, scriptToEvaluateOnLoad); |
| 372 } | 372 } |
| 373 | 373 |
| 374 /** | 374 /** |
| 375 * @param {function(string, ?string,!Array<!Protocol.Page.AppManifestError>)}
callback | 375 * @param {function(string, ?string,!Array<!Protocol.Page.AppManifestError>)}
callback |
| 376 */ | 376 */ |
| 377 fetchAppManifest(callback) { | 377 fetchAppManifest(callback) { |
| 378 this._agent.getAppManifest(myCallback); | 378 this._agent.getAppManifest(myCallback); |
| 379 /** | 379 /** |
| 380 * @param {?Protocol.Error} protocolError | 380 * @param {?Protocol.Error} protocolError |
| 381 * @param {string} url | 381 * @param {string} url |
| 382 * @param {!Array<!Protocol.Page.AppManifestError>} errors | 382 * @param {!Array<!Protocol.Page.AppManifestError>} errors |
| 383 * @param {string=} data | 383 * @param {string=} data |
| 384 */ | 384 */ |
| 385 function myCallback(protocolError, url, errors, data) { | 385 function myCallback(protocolError, url, errors, data) { |
| 386 if (protocolError) { | 386 if (protocolError) { |
| 387 callback(url, null, []); | 387 callback(url, null, []); |
| 388 return; | 388 return; |
| 389 } | 389 } |
| 390 callback(url, data || null, errors); | 390 callback(url, data || null, errors); |
| 391 } | 391 } |
| 392 } | 392 } |
| 393 /** | 393 /** |
| 394 * @param {!WebInspector.ExecutionContext} a | 394 * @param {!SDK.ExecutionContext} a |
| 395 * @param {!WebInspector.ExecutionContext} b | 395 * @param {!SDK.ExecutionContext} b |
| 396 * @return {number} | 396 * @return {number} |
| 397 */ | 397 */ |
| 398 _executionContextComparator(a, b) { | 398 _executionContextComparator(a, b) { |
| 399 /** | 399 /** |
| 400 * @param {!WebInspector.ResourceTreeFrame} frame | 400 * @param {!SDK.ResourceTreeFrame} frame |
| 401 */ | 401 */ |
| 402 function framePath(frame) { | 402 function framePath(frame) { |
| 403 var currentFrame = frame; | 403 var currentFrame = frame; |
| 404 var parents = []; | 404 var parents = []; |
| 405 while (currentFrame) { | 405 while (currentFrame) { |
| 406 parents.push(currentFrame); | 406 parents.push(currentFrame); |
| 407 currentFrame = currentFrame.parentFrame; | 407 currentFrame = currentFrame.parentFrame; |
| 408 } | 408 } |
| 409 return parents.reverse(); | 409 return parents.reverse(); |
| 410 } | 410 } |
| (...skipping 11 matching lines...) Expand all Loading... |
| 422 } | 422 } |
| 423 if (!frameA && frameB) | 423 if (!frameA && frameB) |
| 424 return -1; | 424 return -1; |
| 425 | 425 |
| 426 if (!frameB && frameA) | 426 if (!frameB && frameA) |
| 427 return 1; | 427 return 1; |
| 428 | 428 |
| 429 if (frameA && frameB) { | 429 if (frameA && frameB) { |
| 430 return frameA.id.localeCompare(frameB.id); | 430 return frameA.id.localeCompare(frameB.id); |
| 431 } | 431 } |
| 432 return WebInspector.ExecutionContext.comparator(a, b); | 432 return SDK.ExecutionContext.comparator(a, b); |
| 433 } | 433 } |
| 434 }; | 434 }; |
| 435 | 435 |
| 436 /** @enum {symbol} */ | 436 /** @enum {symbol} */ |
| 437 WebInspector.ResourceTreeModel.Events = { | 437 SDK.ResourceTreeModel.Events = { |
| 438 FrameAdded: Symbol('FrameAdded'), | 438 FrameAdded: Symbol('FrameAdded'), |
| 439 FrameNavigated: Symbol('FrameNavigated'), | 439 FrameNavigated: Symbol('FrameNavigated'), |
| 440 FrameDetached: Symbol('FrameDetached'), | 440 FrameDetached: Symbol('FrameDetached'), |
| 441 FrameResized: Symbol('FrameResized'), | 441 FrameResized: Symbol('FrameResized'), |
| 442 FrameWillNavigate: Symbol('FrameWillNavigate'), | 442 FrameWillNavigate: Symbol('FrameWillNavigate'), |
| 443 MainFrameNavigated: Symbol('MainFrameNavigated'), | 443 MainFrameNavigated: Symbol('MainFrameNavigated'), |
| 444 ResourceAdded: Symbol('ResourceAdded'), | 444 ResourceAdded: Symbol('ResourceAdded'), |
| 445 WillLoadCachedResources: Symbol('WillLoadCachedResources'), | 445 WillLoadCachedResources: Symbol('WillLoadCachedResources'), |
| 446 CachedResourcesLoaded: Symbol('CachedResourcesLoaded'), | 446 CachedResourcesLoaded: Symbol('CachedResourcesLoaded'), |
| 447 DOMContentLoaded: Symbol('DOMContentLoaded'), | 447 DOMContentLoaded: Symbol('DOMContentLoaded'), |
| 448 Load: Symbol('Load'), | 448 Load: Symbol('Load'), |
| 449 PageReloadRequested: Symbol('PageReloadRequested'), | 449 PageReloadRequested: Symbol('PageReloadRequested'), |
| 450 WillReloadPage: Symbol('WillReloadPage'), | 450 WillReloadPage: Symbol('WillReloadPage'), |
| 451 ScreencastFrame: Symbol('ScreencastFrame'), | 451 ScreencastFrame: Symbol('ScreencastFrame'), |
| 452 ScreencastVisibilityChanged: Symbol('ScreencastVisibilityChanged'), | 452 ScreencastVisibilityChanged: Symbol('ScreencastVisibilityChanged'), |
| 453 ColorPicked: Symbol('ColorPicked'), | 453 ColorPicked: Symbol('ColorPicked'), |
| 454 InterstitialShown: Symbol('InterstitialShown'), | 454 InterstitialShown: Symbol('InterstitialShown'), |
| 455 InterstitialHidden: Symbol('InterstitialHidden') | 455 InterstitialHidden: Symbol('InterstitialHidden') |
| 456 }; | 456 }; |
| 457 | 457 |
| 458 | 458 |
| 459 /** | 459 /** |
| 460 * @unrestricted | 460 * @unrestricted |
| 461 */ | 461 */ |
| 462 WebInspector.ResourceTreeFrame = class { | 462 SDK.ResourceTreeFrame = class { |
| 463 /** | 463 /** |
| 464 * @param {!WebInspector.ResourceTreeModel} model | 464 * @param {!SDK.ResourceTreeModel} model |
| 465 * @param {?WebInspector.ResourceTreeFrame} parentFrame | 465 * @param {?SDK.ResourceTreeFrame} parentFrame |
| 466 * @param {!Protocol.Page.FrameId} frameId | 466 * @param {!Protocol.Page.FrameId} frameId |
| 467 * @param {!Protocol.Page.Frame=} payload | 467 * @param {!Protocol.Page.Frame=} payload |
| 468 */ | 468 */ |
| 469 constructor(model, parentFrame, frameId, payload) { | 469 constructor(model, parentFrame, frameId, payload) { |
| 470 this._model = model; | 470 this._model = model; |
| 471 this._parentFrame = parentFrame; | 471 this._parentFrame = parentFrame; |
| 472 this._id = frameId; | 472 this._id = frameId; |
| 473 this._url = ''; | 473 this._url = ''; |
| 474 | 474 |
| 475 if (payload) { | 475 if (payload) { |
| 476 this._loaderId = payload.loaderId; | 476 this._loaderId = payload.loaderId; |
| 477 this._name = payload.name; | 477 this._name = payload.name; |
| 478 this._url = payload.url; | 478 this._url = payload.url; |
| 479 this._securityOrigin = payload.securityOrigin; | 479 this._securityOrigin = payload.securityOrigin; |
| 480 this._mimeType = payload.mimeType; | 480 this._mimeType = payload.mimeType; |
| 481 } | 481 } |
| 482 | 482 |
| 483 /** | 483 /** |
| 484 * @type {!Array.<!WebInspector.ResourceTreeFrame>} | 484 * @type {!Array.<!SDK.ResourceTreeFrame>} |
| 485 */ | 485 */ |
| 486 this._childFrames = []; | 486 this._childFrames = []; |
| 487 | 487 |
| 488 /** | 488 /** |
| 489 * @type {!Object.<string, !WebInspector.Resource>} | 489 * @type {!Object.<string, !SDK.Resource>} |
| 490 */ | 490 */ |
| 491 this._resourcesMap = {}; | 491 this._resourcesMap = {}; |
| 492 | 492 |
| 493 if (this._parentFrame) | 493 if (this._parentFrame) |
| 494 this._parentFrame._childFrames.push(this); | 494 this._parentFrame._childFrames.push(this); |
| 495 } | 495 } |
| 496 | 496 |
| 497 /** | 497 /** |
| 498 * @param {!WebInspector.ExecutionContext|!WebInspector.CSSStyleSheetHeader|!W
ebInspector.Resource} object | 498 * @param {!SDK.ExecutionContext|!SDK.CSSStyleSheetHeader|!SDK.Resource} objec
t |
| 499 * @return {?WebInspector.ResourceTreeFrame} | 499 * @return {?SDK.ResourceTreeFrame} |
| 500 */ | 500 */ |
| 501 static _fromObject(object) { | 501 static _fromObject(object) { |
| 502 var resourceTreeModel = WebInspector.ResourceTreeModel.fromTarget(object.tar
get()); | 502 var resourceTreeModel = SDK.ResourceTreeModel.fromTarget(object.target()); |
| 503 var frameId = object.frameId; | 503 var frameId = object.frameId; |
| 504 if (!resourceTreeModel || !frameId) | 504 if (!resourceTreeModel || !frameId) |
| 505 return null; | 505 return null; |
| 506 return resourceTreeModel.frameForId(frameId); | 506 return resourceTreeModel.frameForId(frameId); |
| 507 } | 507 } |
| 508 | 508 |
| 509 /** | 509 /** |
| 510 * @param {!WebInspector.Script} script | 510 * @param {!SDK.Script} script |
| 511 * @return {?WebInspector.ResourceTreeFrame} | 511 * @return {?SDK.ResourceTreeFrame} |
| 512 */ | 512 */ |
| 513 static fromScript(script) { | 513 static fromScript(script) { |
| 514 var executionContext = script.executionContext(); | 514 var executionContext = script.executionContext(); |
| 515 if (!executionContext) | 515 if (!executionContext) |
| 516 return null; | 516 return null; |
| 517 return WebInspector.ResourceTreeFrame._fromObject(executionContext); | 517 return SDK.ResourceTreeFrame._fromObject(executionContext); |
| 518 } | 518 } |
| 519 | 519 |
| 520 /** | 520 /** |
| 521 * @param {!WebInspector.CSSStyleSheetHeader} header | 521 * @param {!SDK.CSSStyleSheetHeader} header |
| 522 * @return {?WebInspector.ResourceTreeFrame} | 522 * @return {?SDK.ResourceTreeFrame} |
| 523 */ | 523 */ |
| 524 static fromStyleSheet(header) { | 524 static fromStyleSheet(header) { |
| 525 return WebInspector.ResourceTreeFrame._fromObject(header); | 525 return SDK.ResourceTreeFrame._fromObject(header); |
| 526 } | 526 } |
| 527 | 527 |
| 528 /** | 528 /** |
| 529 * @param {!WebInspector.Resource} resource | 529 * @param {!SDK.Resource} resource |
| 530 * @return {?WebInspector.ResourceTreeFrame} | 530 * @return {?SDK.ResourceTreeFrame} |
| 531 */ | 531 */ |
| 532 static fromResource(resource) { | 532 static fromResource(resource) { |
| 533 return WebInspector.ResourceTreeFrame._fromObject(resource); | 533 return SDK.ResourceTreeFrame._fromObject(resource); |
| 534 } | 534 } |
| 535 | 535 |
| 536 /** | 536 /** |
| 537 * @return {!WebInspector.Target} | 537 * @return {!SDK.Target} |
| 538 */ | 538 */ |
| 539 target() { | 539 target() { |
| 540 return this._model.target(); | 540 return this._model.target(); |
| 541 } | 541 } |
| 542 | 542 |
| 543 /** | 543 /** |
| 544 * @return {string} | 544 * @return {string} |
| 545 */ | 545 */ |
| 546 get id() { | 546 get id() { |
| 547 return this._id; | 547 return this._id; |
| (...skipping 21 matching lines...) Expand all Loading... |
| 569 } | 569 } |
| 570 | 570 |
| 571 /** | 571 /** |
| 572 * @return {string} | 572 * @return {string} |
| 573 */ | 573 */ |
| 574 get loaderId() { | 574 get loaderId() { |
| 575 return this._loaderId; | 575 return this._loaderId; |
| 576 } | 576 } |
| 577 | 577 |
| 578 /** | 578 /** |
| 579 * @return {?WebInspector.ResourceTreeFrame} | 579 * @return {?SDK.ResourceTreeFrame} |
| 580 */ | 580 */ |
| 581 get parentFrame() { | 581 get parentFrame() { |
| 582 return this._parentFrame; | 582 return this._parentFrame; |
| 583 } | 583 } |
| 584 | 584 |
| 585 /** | 585 /** |
| 586 * @return {!Array.<!WebInspector.ResourceTreeFrame>} | 586 * @return {!Array.<!SDK.ResourceTreeFrame>} |
| 587 */ | 587 */ |
| 588 get childFrames() { | 588 get childFrames() { |
| 589 return this._childFrames; | 589 return this._childFrames; |
| 590 } | 590 } |
| 591 | 591 |
| 592 /** | 592 /** |
| 593 * @return {boolean} | 593 * @return {boolean} |
| 594 */ | 594 */ |
| 595 isMainFrame() { | 595 isMainFrame() { |
| 596 return !this._parentFrame; | 596 return !this._parentFrame; |
| (...skipping 10 matching lines...) Expand all Loading... |
| 607 this._mimeType = framePayload.mimeType; | 607 this._mimeType = framePayload.mimeType; |
| 608 | 608 |
| 609 var mainResource = this._resourcesMap[this._url]; | 609 var mainResource = this._resourcesMap[this._url]; |
| 610 this._resourcesMap = {}; | 610 this._resourcesMap = {}; |
| 611 this._removeChildFrames(); | 611 this._removeChildFrames(); |
| 612 if (mainResource && mainResource.loaderId === this._loaderId) | 612 if (mainResource && mainResource.loaderId === this._loaderId) |
| 613 this.addResource(mainResource); | 613 this.addResource(mainResource); |
| 614 } | 614 } |
| 615 | 615 |
| 616 /** | 616 /** |
| 617 * @return {!WebInspector.Resource} | 617 * @return {!SDK.Resource} |
| 618 */ | 618 */ |
| 619 get mainResource() { | 619 get mainResource() { |
| 620 return this._resourcesMap[this._url]; | 620 return this._resourcesMap[this._url]; |
| 621 } | 621 } |
| 622 | 622 |
| 623 /** | 623 /** |
| 624 * @param {!WebInspector.ResourceTreeFrame} frame | 624 * @param {!SDK.ResourceTreeFrame} frame |
| 625 */ | 625 */ |
| 626 _removeChildFrame(frame) { | 626 _removeChildFrame(frame) { |
| 627 this._childFrames.remove(frame); | 627 this._childFrames.remove(frame); |
| 628 frame._remove(); | 628 frame._remove(); |
| 629 } | 629 } |
| 630 | 630 |
| 631 _removeChildFrames() { | 631 _removeChildFrames() { |
| 632 var frames = this._childFrames; | 632 var frames = this._childFrames; |
| 633 this._childFrames = []; | 633 this._childFrames = []; |
| 634 for (var i = 0; i < frames.length; ++i) | 634 for (var i = 0; i < frames.length; ++i) |
| 635 frames[i]._remove(); | 635 frames[i]._remove(); |
| 636 } | 636 } |
| 637 | 637 |
| 638 _remove() { | 638 _remove() { |
| 639 this._removeChildFrames(); | 639 this._removeChildFrames(); |
| 640 this._model._frames.delete(this.id); | 640 this._model._frames.delete(this.id); |
| 641 this._model.dispatchEventToListeners(WebInspector.ResourceTreeModel.Events.F
rameDetached, this); | 641 this._model.dispatchEventToListeners(SDK.ResourceTreeModel.Events.FrameDetac
hed, this); |
| 642 } | 642 } |
| 643 | 643 |
| 644 /** | 644 /** |
| 645 * @param {!WebInspector.Resource} resource | 645 * @param {!SDK.Resource} resource |
| 646 */ | 646 */ |
| 647 addResource(resource) { | 647 addResource(resource) { |
| 648 if (this._resourcesMap[resource.url] === resource) { | 648 if (this._resourcesMap[resource.url] === resource) { |
| 649 // Already in the tree, we just got an extra update. | 649 // Already in the tree, we just got an extra update. |
| 650 return; | 650 return; |
| 651 } | 651 } |
| 652 this._resourcesMap[resource.url] = resource; | 652 this._resourcesMap[resource.url] = resource; |
| 653 this._model.dispatchEventToListeners(WebInspector.ResourceTreeModel.Events.R
esourceAdded, resource); | 653 this._model.dispatchEventToListeners(SDK.ResourceTreeModel.Events.ResourceAd
ded, resource); |
| 654 } | 654 } |
| 655 | 655 |
| 656 /** | 656 /** |
| 657 * @param {!WebInspector.NetworkRequest} request | 657 * @param {!SDK.NetworkRequest} request |
| 658 */ | 658 */ |
| 659 _addRequest(request) { | 659 _addRequest(request) { |
| 660 var resource = this._resourcesMap[request.url]; | 660 var resource = this._resourcesMap[request.url]; |
| 661 if (resource && resource.request === request) { | 661 if (resource && resource.request === request) { |
| 662 // Already in the tree, we just got an extra update. | 662 // Already in the tree, we just got an extra update. |
| 663 return; | 663 return; |
| 664 } | 664 } |
| 665 resource = new WebInspector.Resource( | 665 resource = new SDK.Resource( |
| 666 this.target(), request, request.url, request.documentURL, request.frameI
d, request.loaderId, | 666 this.target(), request, request.url, request.documentURL, request.frameI
d, request.loaderId, |
| 667 request.resourceType(), request.mimeType, null, null); | 667 request.resourceType(), request.mimeType, null, null); |
| 668 this._resourcesMap[resource.url] = resource; | 668 this._resourcesMap[resource.url] = resource; |
| 669 this._model.dispatchEventToListeners(WebInspector.ResourceTreeModel.Events.R
esourceAdded, resource); | 669 this._model.dispatchEventToListeners(SDK.ResourceTreeModel.Events.ResourceAd
ded, resource); |
| 670 } | 670 } |
| 671 | 671 |
| 672 /** | 672 /** |
| 673 * @return {!Array.<!WebInspector.Resource>} | 673 * @return {!Array.<!SDK.Resource>} |
| 674 */ | 674 */ |
| 675 resources() { | 675 resources() { |
| 676 var result = []; | 676 var result = []; |
| 677 for (var url in this._resourcesMap) | 677 for (var url in this._resourcesMap) |
| 678 result.push(this._resourcesMap[url]); | 678 result.push(this._resourcesMap[url]); |
| 679 return result; | 679 return result; |
| 680 } | 680 } |
| 681 | 681 |
| 682 /** | 682 /** |
| 683 * @param {string} url | 683 * @param {string} url |
| 684 * @return {?WebInspector.Resource} | 684 * @return {?SDK.Resource} |
| 685 */ | 685 */ |
| 686 resourceForURL(url) { | 686 resourceForURL(url) { |
| 687 var resource = this._resourcesMap[url] || null; | 687 var resource = this._resourcesMap[url] || null; |
| 688 if (resource) | 688 if (resource) |
| 689 return resource; | 689 return resource; |
| 690 for (var i = 0; !resource && i < this._childFrames.length; ++i) | 690 for (var i = 0; !resource && i < this._childFrames.length; ++i) |
| 691 resource = this._childFrames[i].resourceForURL(url); | 691 resource = this._childFrames[i].resourceForURL(url); |
| 692 return resource; | 692 return resource; |
| 693 } | 693 } |
| 694 | 694 |
| 695 /** | 695 /** |
| 696 * @param {function(!WebInspector.Resource)} callback | 696 * @param {function(!SDK.Resource)} callback |
| 697 * @return {boolean} | 697 * @return {boolean} |
| 698 */ | 698 */ |
| 699 _callForFrameResources(callback) { | 699 _callForFrameResources(callback) { |
| 700 for (var url in this._resourcesMap) { | 700 for (var url in this._resourcesMap) { |
| 701 if (callback(this._resourcesMap[url])) | 701 if (callback(this._resourcesMap[url])) |
| 702 return true; | 702 return true; |
| 703 } | 703 } |
| 704 | 704 |
| 705 for (var i = 0; i < this._childFrames.length; ++i) { | 705 for (var i = 0; i < this._childFrames.length; ++i) { |
| 706 if (this._childFrames[i]._callForFrameResources(callback)) | 706 if (this._childFrames[i]._callForFrameResources(callback)) |
| 707 return true; | 707 return true; |
| 708 } | 708 } |
| 709 return false; | 709 return false; |
| 710 } | 710 } |
| 711 | 711 |
| 712 /** | 712 /** |
| 713 * @return {string} | 713 * @return {string} |
| 714 */ | 714 */ |
| 715 displayName() { | 715 displayName() { |
| 716 if (!this._parentFrame) | 716 if (!this._parentFrame) |
| 717 return WebInspector.UIString('top'); | 717 return Common.UIString('top'); |
| 718 var subtitle = new WebInspector.ParsedURL(this._url).displayName; | 718 var subtitle = new Common.ParsedURL(this._url).displayName; |
| 719 if (subtitle) { | 719 if (subtitle) { |
| 720 if (!this._name) | 720 if (!this._name) |
| 721 return subtitle; | 721 return subtitle; |
| 722 return this._name + ' (' + subtitle + ')'; | 722 return this._name + ' (' + subtitle + ')'; |
| 723 } | 723 } |
| 724 return WebInspector.UIString('<iframe>'); | 724 return Common.UIString('<iframe>'); |
| 725 } | 725 } |
| 726 }; | 726 }; |
| 727 | 727 |
| 728 | 728 |
| 729 /** | 729 /** |
| 730 * @implements {Protocol.PageDispatcher} | 730 * @implements {Protocol.PageDispatcher} |
| 731 * @unrestricted | 731 * @unrestricted |
| 732 */ | 732 */ |
| 733 WebInspector.PageDispatcher = class { | 733 SDK.PageDispatcher = class { |
| 734 constructor(resourceTreeModel) { | 734 constructor(resourceTreeModel) { |
| 735 this._resourceTreeModel = resourceTreeModel; | 735 this._resourceTreeModel = resourceTreeModel; |
| 736 } | 736 } |
| 737 | 737 |
| 738 /** | 738 /** |
| 739 * @override | 739 * @override |
| 740 * @param {number} time | 740 * @param {number} time |
| 741 */ | 741 */ |
| 742 domContentEventFired(time) { | 742 domContentEventFired(time) { |
| 743 this._resourceTreeModel.dispatchEventToListeners(WebInspector.ResourceTreeMo
del.Events.DOMContentLoaded, time); | 743 this._resourceTreeModel.dispatchEventToListeners(SDK.ResourceTreeModel.Event
s.DOMContentLoaded, time); |
| 744 } | 744 } |
| 745 | 745 |
| 746 /** | 746 /** |
| 747 * @override | 747 * @override |
| 748 * @param {number} time | 748 * @param {number} time |
| 749 */ | 749 */ |
| 750 loadEventFired(time) { | 750 loadEventFired(time) { |
| 751 this._resourceTreeModel.dispatchEventToListeners(WebInspector.ResourceTreeMo
del.Events.Load, time); | 751 this._resourceTreeModel.dispatchEventToListeners(SDK.ResourceTreeModel.Event
s.Load, time); |
| 752 } | 752 } |
| 753 | 753 |
| 754 /** | 754 /** |
| 755 * @override | 755 * @override |
| 756 * @param {!Protocol.Page.FrameId} frameId | 756 * @param {!Protocol.Page.FrameId} frameId |
| 757 * @param {!Protocol.Page.FrameId} parentFrameId | 757 * @param {!Protocol.Page.FrameId} parentFrameId |
| 758 */ | 758 */ |
| 759 frameAttached(frameId, parentFrameId) { | 759 frameAttached(frameId, parentFrameId) { |
| 760 this._resourceTreeModel._frameAttached(frameId, parentFrameId); | 760 this._resourceTreeModel._frameAttached(frameId, parentFrameId); |
| 761 } | 761 } |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 802 * @override | 802 * @override |
| 803 * @param {!Protocol.Page.FrameId} frameId | 803 * @param {!Protocol.Page.FrameId} frameId |
| 804 */ | 804 */ |
| 805 frameClearedScheduledNavigation(frameId) { | 805 frameClearedScheduledNavigation(frameId) { |
| 806 } | 806 } |
| 807 | 807 |
| 808 /** | 808 /** |
| 809 * @override | 809 * @override |
| 810 */ | 810 */ |
| 811 frameResized() { | 811 frameResized() { |
| 812 this._resourceTreeModel.dispatchEventToListeners(WebInspector.ResourceTreeMo
del.Events.FrameResized, null); | 812 this._resourceTreeModel.dispatchEventToListeners(SDK.ResourceTreeModel.Event
s.FrameResized, null); |
| 813 } | 813 } |
| 814 | 814 |
| 815 /** | 815 /** |
| 816 * @override | 816 * @override |
| 817 * @param {string} message | 817 * @param {string} message |
| 818 * @param {string} dialogType | 818 * @param {string} dialogType |
| 819 */ | 819 */ |
| 820 javascriptDialogOpening(message, dialogType) { | 820 javascriptDialogOpening(message, dialogType) { |
| 821 } | 821 } |
| 822 | 822 |
| 823 /** | 823 /** |
| 824 * @override | 824 * @override |
| 825 * @param {boolean} result | 825 * @param {boolean} result |
| 826 */ | 826 */ |
| 827 javascriptDialogClosed(result) { | 827 javascriptDialogClosed(result) { |
| 828 } | 828 } |
| 829 | 829 |
| 830 /** | 830 /** |
| 831 * @override | 831 * @override |
| 832 * @param {string} data | 832 * @param {string} data |
| 833 * @param {!Protocol.Page.ScreencastFrameMetadata=} metadata | 833 * @param {!Protocol.Page.ScreencastFrameMetadata=} metadata |
| 834 * @param {number=} sessionId | 834 * @param {number=} sessionId |
| 835 */ | 835 */ |
| 836 screencastFrame(data, metadata, sessionId) { | 836 screencastFrame(data, metadata, sessionId) { |
| 837 this._resourceTreeModel._agent.screencastFrameAck(sessionId); | 837 this._resourceTreeModel._agent.screencastFrameAck(sessionId); |
| 838 this._resourceTreeModel.dispatchEventToListeners( | 838 this._resourceTreeModel.dispatchEventToListeners( |
| 839 WebInspector.ResourceTreeModel.Events.ScreencastFrame, {data: data, meta
data: metadata}); | 839 SDK.ResourceTreeModel.Events.ScreencastFrame, {data: data, metadata: met
adata}); |
| 840 } | 840 } |
| 841 | 841 |
| 842 /** | 842 /** |
| 843 * @override | 843 * @override |
| 844 * @param {boolean} visible | 844 * @param {boolean} visible |
| 845 */ | 845 */ |
| 846 screencastVisibilityChanged(visible) { | 846 screencastVisibilityChanged(visible) { |
| 847 this._resourceTreeModel.dispatchEventToListeners( | 847 this._resourceTreeModel.dispatchEventToListeners( |
| 848 WebInspector.ResourceTreeModel.Events.ScreencastVisibilityChanged, {visi
ble: visible}); | 848 SDK.ResourceTreeModel.Events.ScreencastVisibilityChanged, {visible: visi
ble}); |
| 849 } | 849 } |
| 850 | 850 |
| 851 /** | 851 /** |
| 852 * @override | 852 * @override |
| 853 * @param {!Protocol.DOM.RGBA} color | 853 * @param {!Protocol.DOM.RGBA} color |
| 854 */ | 854 */ |
| 855 colorPicked(color) { | 855 colorPicked(color) { |
| 856 this._resourceTreeModel.dispatchEventToListeners(WebInspector.ResourceTreeMo
del.Events.ColorPicked, color); | 856 this._resourceTreeModel.dispatchEventToListeners(SDK.ResourceTreeModel.Event
s.ColorPicked, color); |
| 857 } | 857 } |
| 858 | 858 |
| 859 /** | 859 /** |
| 860 * @override | 860 * @override |
| 861 */ | 861 */ |
| 862 interstitialShown() { | 862 interstitialShown() { |
| 863 this._resourceTreeModel.dispatchEventToListeners(WebInspector.ResourceTreeMo
del.Events.InterstitialShown); | 863 this._resourceTreeModel.dispatchEventToListeners(SDK.ResourceTreeModel.Event
s.InterstitialShown); |
| 864 } | 864 } |
| 865 | 865 |
| 866 /** | 866 /** |
| 867 * @override | 867 * @override |
| 868 */ | 868 */ |
| 869 interstitialHidden() { | 869 interstitialHidden() { |
| 870 this._resourceTreeModel.dispatchEventToListeners(WebInspector.ResourceTreeMo
del.Events.InterstitialHidden); | 870 this._resourceTreeModel.dispatchEventToListeners(SDK.ResourceTreeModel.Event
s.InterstitialHidden); |
| 871 } | 871 } |
| 872 | 872 |
| 873 /** | 873 /** |
| 874 * @override | 874 * @override |
| 875 */ | 875 */ |
| 876 navigationRequested() { | 876 navigationRequested() { |
| 877 // Frontend is not interested in when navigations are requested. | 877 // Frontend is not interested in when navigations are requested. |
| 878 } | 878 } |
| 879 }; | 879 }; |
| OLD | NEW |