Index: third_party/WebKit/Source/devtools/front_end/sdk/ResourceTreeModel.js |
diff --git a/third_party/WebKit/Source/devtools/front_end/sdk/ResourceTreeModel.js b/third_party/WebKit/Source/devtools/front_end/sdk/ResourceTreeModel.js |
index c2a1b3fce8c13ad1115c76c06421aaf11c9ac7fe..0a702784b8230afeae030d6bf2dc22e723b1c35c 100644 |
--- a/third_party/WebKit/Source/devtools/front_end/sdk/ResourceTreeModel.js |
+++ b/third_party/WebKit/Source/devtools/front_end/sdk/ResourceTreeModel.js |
@@ -27,22 +27,22 @@ |
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
*/ |
- |
/** |
- * @constructor |
- * @extends {WebInspector.SDKModel} |
- * @param {!WebInspector.Target} target |
- * @param {?WebInspector.NetworkManager} networkManager |
- * @param {!WebInspector.SecurityOriginManager} securityOriginManager |
+ * @unrestricted |
*/ |
-WebInspector.ResourceTreeModel = function(target, networkManager, securityOriginManager) |
-{ |
- WebInspector.SDKModel.call(this, WebInspector.ResourceTreeModel, target); |
+WebInspector.ResourceTreeModel = class extends WebInspector.SDKModel { |
+ /** |
+ * @param {!WebInspector.Target} target |
+ * @param {?WebInspector.NetworkManager} networkManager |
+ * @param {!WebInspector.SecurityOriginManager} securityOriginManager |
+ */ |
+ constructor(target, networkManager, securityOriginManager) { |
+ super(WebInspector.ResourceTreeModel, target); |
if (networkManager) { |
- networkManager.addEventListener(WebInspector.NetworkManager.Events.RequestFinished, |
- this._onRequestFinished, this); |
- networkManager.addEventListener(WebInspector.NetworkManager.Events.RequestUpdateDropped, |
- this._onRequestUpdateDropped, this); |
+ networkManager.addEventListener( |
+ WebInspector.NetworkManager.Events.RequestFinished, this._onRequestFinished, this); |
+ networkManager.addEventListener( |
+ WebInspector.NetworkManager.Events.RequestUpdateDropped, this._onRequestUpdateDropped, this); |
} |
this._agent = target.pageAgent(); |
@@ -55,449 +55,428 @@ WebInspector.ResourceTreeModel = function(target, networkManager, securityOrigin |
this._pendingReloadOptions = null; |
this._reloadSuspensionCount = 0; |
-}; |
+ } |
-/** @enum {symbol} */ |
-WebInspector.ResourceTreeModel.Events = { |
- FrameAdded: Symbol("FrameAdded"), |
- FrameNavigated: Symbol("FrameNavigated"), |
- FrameDetached: Symbol("FrameDetached"), |
- FrameResized: Symbol("FrameResized"), |
- FrameWillNavigate: Symbol("FrameWillNavigate"), |
- MainFrameNavigated: Symbol("MainFrameNavigated"), |
- ResourceAdded: Symbol("ResourceAdded"), |
- WillLoadCachedResources: Symbol("WillLoadCachedResources"), |
- CachedResourcesLoaded: Symbol("CachedResourcesLoaded"), |
- DOMContentLoaded: Symbol("DOMContentLoaded"), |
- Load: Symbol("Load"), |
- PageReloadRequested: Symbol("PageReloadRequested"), |
- WillReloadPage: Symbol("WillReloadPage"), |
- ScreencastFrame: Symbol("ScreencastFrame"), |
- ScreencastVisibilityChanged: Symbol("ScreencastVisibilityChanged"), |
- ColorPicked: Symbol("ColorPicked"), |
- InterstitialShown: Symbol("InterstitialShown"), |
- InterstitialHidden: Symbol("InterstitialHidden") |
-}; |
- |
-/** |
- * @param {!WebInspector.Target} target |
- * @return {?WebInspector.ResourceTreeModel} |
- */ |
-WebInspector.ResourceTreeModel.fromTarget = function(target) |
-{ |
+ /** |
+ * @param {!WebInspector.Target} target |
+ * @return {?WebInspector.ResourceTreeModel} |
+ */ |
+ static fromTarget(target) { |
return /** @type {?WebInspector.ResourceTreeModel} */ (target.model(WebInspector.ResourceTreeModel)); |
-}; |
+ } |
-/** |
- * @return {!Array.<!WebInspector.ResourceTreeFrame>} |
- */ |
-WebInspector.ResourceTreeModel.frames = function() |
-{ |
+ /** |
+ * @return {!Array.<!WebInspector.ResourceTreeFrame>} |
+ */ |
+ static frames() { |
var result = []; |
for (var target of WebInspector.targetManager.targets(WebInspector.Target.Capability.DOM)) |
- result = result.concat(WebInspector.ResourceTreeModel.fromTarget(target)._frames.valuesArray()); |
+ result = result.concat(WebInspector.ResourceTreeModel.fromTarget(target)._frames.valuesArray()); |
return result; |
-}; |
+ } |
-/** |
- * @param {string} url |
- * @return {?WebInspector.Resource} |
- */ |
-WebInspector.ResourceTreeModel.resourceForURL = function(url) |
-{ |
+ /** |
+ * @param {string} url |
+ * @return {?WebInspector.Resource} |
+ */ |
+ static resourceForURL(url) { |
for (var target of WebInspector.targetManager.targets(WebInspector.Target.Capability.DOM)) { |
- var mainFrame = WebInspector.ResourceTreeModel.fromTarget(target).mainFrame; |
- var result = mainFrame ? mainFrame.resourceForURL(url) : null; |
- if (result) |
- return result; |
+ var mainFrame = WebInspector.ResourceTreeModel.fromTarget(target).mainFrame; |
+ var result = mainFrame ? mainFrame.resourceForURL(url) : null; |
+ if (result) |
+ return result; |
} |
return null; |
-}; |
- |
-WebInspector.ResourceTreeModel.prototype = { |
- _fetchResourceTree: function() |
- { |
- /** @type {!Map<string, !WebInspector.ResourceTreeFrame>} */ |
- this._frames = new Map(); |
- this._cachedResourcesProcessed = false; |
- this._agent.getResourceTree(this._processCachedResources.bind(this)); |
- }, |
- |
- _processCachedResources: function(error, mainFramePayload) |
- { |
- if (!error) { |
- this.dispatchEventToListeners(WebInspector.ResourceTreeModel.Events.WillLoadCachedResources); |
- this._addFramesRecursively(null, mainFramePayload); |
- this.target().setInspectedURL(mainFramePayload.frame.url); |
- } |
- this._cachedResourcesProcessed = true; |
- this.target().runtimeModel.setExecutionContextComparator(this._executionContextComparator.bind(this)); |
- this.target().runtimeModel.fireExecutionContextOrderChanged(); |
- this.dispatchEventToListeners(WebInspector.ResourceTreeModel.Events.CachedResourcesLoaded); |
- }, |
- |
- /** |
- * @return {boolean} |
- */ |
- cachedResourcesLoaded: function() |
- { |
- return this._cachedResourcesProcessed; |
- }, |
+ } |
+ |
+ _fetchResourceTree() { |
+ /** @type {!Map<string, !WebInspector.ResourceTreeFrame>} */ |
+ this._frames = new Map(); |
+ this._cachedResourcesProcessed = false; |
+ this._agent.getResourceTree(this._processCachedResources.bind(this)); |
+ } |
+ |
+ _processCachedResources(error, mainFramePayload) { |
+ if (!error) { |
+ this.dispatchEventToListeners(WebInspector.ResourceTreeModel.Events.WillLoadCachedResources); |
+ this._addFramesRecursively(null, mainFramePayload); |
+ this.target().setInspectedURL(mainFramePayload.frame.url); |
+ } |
+ this._cachedResourcesProcessed = true; |
+ this.target().runtimeModel.setExecutionContextComparator(this._executionContextComparator.bind(this)); |
+ this.target().runtimeModel.fireExecutionContextOrderChanged(); |
+ this.dispatchEventToListeners(WebInspector.ResourceTreeModel.Events.CachedResourcesLoaded); |
+ } |
+ |
+ /** |
+ * @return {boolean} |
+ */ |
+ cachedResourcesLoaded() { |
+ return this._cachedResourcesProcessed; |
+ } |
+ |
+ /** |
+ * @param {!WebInspector.ResourceTreeFrame} frame |
+ * @param {boolean=} aboutToNavigate |
+ */ |
+ _addFrame(frame, aboutToNavigate) { |
+ this._frames.set(frame.id, frame); |
+ if (frame.isMainFrame()) { |
+ this.mainFrame = frame; |
+ this._securityOriginManager.setMainSecurityOrigin(frame.url); |
+ } |
+ this.dispatchEventToListeners(WebInspector.ResourceTreeModel.Events.FrameAdded, frame); |
+ if (!aboutToNavigate) |
+ this._securityOriginManager.addSecurityOrigin(frame.securityOrigin); |
+ } |
+ /** |
+ * @param {!WebInspector.ResourceTreeFrame} mainFrame |
+ */ |
+ _handleMainFrameDetached(mainFrame) { |
/** |
* @param {!WebInspector.ResourceTreeFrame} frame |
- * @param {boolean=} aboutToNavigate |
- */ |
- _addFrame: function(frame, aboutToNavigate) |
- { |
- this._frames.set(frame.id, frame); |
- if (frame.isMainFrame()) { |
- this.mainFrame = frame; |
- this._securityOriginManager.setMainSecurityOrigin(frame.url); |
- } |
- this.dispatchEventToListeners(WebInspector.ResourceTreeModel.Events.FrameAdded, frame); |
- if (!aboutToNavigate) |
- this._securityOriginManager.addSecurityOrigin(frame.securityOrigin); |
- }, |
- |
- /** |
- * @param {!WebInspector.ResourceTreeFrame} mainFrame |
- */ |
- _handleMainFrameDetached: function(mainFrame) |
- { |
- /** |
- * @param {!WebInspector.ResourceTreeFrame} frame |
- * @this {WebInspector.ResourceTreeModel} |
- */ |
- function removeOriginForFrame(frame) |
- { |
- for (var i = 0; i < frame.childFrames.length; ++i) |
- removeOriginForFrame.call(this, frame.childFrames[i]); |
- if (!frame.isMainFrame()) |
- this._securityOriginManager.removeSecurityOrigin(frame.securityOrigin); |
- } |
- removeOriginForFrame.call(this, mainFrame); |
- }, |
- |
- /** |
- * @param {!PageAgent.FrameId} frameId |
- * @param {?PageAgent.FrameId} parentFrameId |
- * @return {?WebInspector.ResourceTreeFrame} |
+ * @this {WebInspector.ResourceTreeModel} |
*/ |
- _frameAttached: function(frameId, parentFrameId) |
- { |
- // Do nothing unless cached resource tree is processed - it will overwrite everything. |
- if (!this._cachedResourcesProcessed && parentFrameId) |
- return null; |
- if (this._frames.has(frameId)) |
- return null; |
- |
- var parentFrame = parentFrameId ? (this._frames.get(parentFrameId) || null) : null; |
- var frame = new WebInspector.ResourceTreeFrame(this, parentFrame, frameId); |
- if (frame.isMainFrame() && this.mainFrame) { |
- this._handleMainFrameDetached(this.mainFrame); |
- // Navigation to the new backend process. |
- this._frameDetached(this.mainFrame.id); |
- } |
- this._addFrame(frame, true); |
- return frame; |
- }, |
- |
- /** |
- * @param {!PageAgent.Frame} framePayload |
- */ |
- _frameNavigated: function(framePayload) |
- { |
- // Do nothing unless cached resource tree is processed - it will overwrite everything. |
- if (!this._cachedResourcesProcessed && framePayload.parentId) |
- return; |
- var frame = this._frames.get(framePayload.id); |
- if (!frame) { |
- // Simulate missed "frameAttached" for a main frame navigation to the new backend process. |
- console.assert(!framePayload.parentId, "Main frame shouldn't have parent frame id."); |
- frame = this._frameAttached(framePayload.id, framePayload.parentId || ""); |
- console.assert(frame); |
- } |
- |
- this.dispatchEventToListeners(WebInspector.ResourceTreeModel.Events.FrameWillNavigate, frame); |
- |
- this._securityOriginManager.removeSecurityOrigin(frame.securityOrigin); |
- frame._navigate(framePayload); |
- var addedOrigin = frame.securityOrigin; |
- |
- this.dispatchEventToListeners(WebInspector.ResourceTreeModel.Events.FrameNavigated, frame); |
- if (frame.isMainFrame()) { |
- this.dispatchEventToListeners(WebInspector.ResourceTreeModel.Events.MainFrameNavigated, frame); |
- if (WebInspector.moduleSetting("preserveConsoleLog").get()) |
- WebInspector.console.log(WebInspector.UIString("Navigated to %s", frame.url)); |
- else |
- this.target().consoleModel.clear(); |
- } |
- if (addedOrigin) |
- this._securityOriginManager.addSecurityOrigin(addedOrigin); |
- |
- // Fill frame with retained resources (the ones loaded using new loader). |
- var resources = frame.resources(); |
- for (var i = 0; i < resources.length; ++i) |
- this.dispatchEventToListeners(WebInspector.ResourceTreeModel.Events.ResourceAdded, resources[i]); |
- |
- if (frame.isMainFrame()) |
- this.target().setInspectedURL(frame.url); |
- }, |
- |
- /** |
- * @param {!PageAgent.FrameId} frameId |
- */ |
- _frameDetached: function(frameId) |
- { |
- // Do nothing unless cached resource tree is processed - it will overwrite everything. |
- if (!this._cachedResourcesProcessed) |
- return; |
- |
- var frame = this._frames.get(frameId); |
- if (!frame) |
- return; |
- |
+ function removeOriginForFrame(frame) { |
+ for (var i = 0; i < frame.childFrames.length; ++i) |
+ removeOriginForFrame.call(this, frame.childFrames[i]); |
+ if (!frame.isMainFrame()) |
this._securityOriginManager.removeSecurityOrigin(frame.securityOrigin); |
- if (frame.parentFrame) |
- frame.parentFrame._removeChildFrame(frame); |
- else |
- frame._remove(); |
- }, |
- |
- /** |
- * @param {!WebInspector.Event} event |
- */ |
- _onRequestFinished: function(event) |
- { |
- if (!this._cachedResourcesProcessed) |
- return; |
- |
- var request = /** @type {!WebInspector.NetworkRequest} */ (event.data); |
- if (request.failed || request.resourceType() === WebInspector.resourceTypes.XHR) |
- return; |
- |
- var frame = this._frames.get(request.frameId); |
- if (frame) |
- frame._addRequest(request); |
- }, |
- |
- /** |
- * @param {!WebInspector.Event} event |
- */ |
- _onRequestUpdateDropped: function(event) |
- { |
- if (!this._cachedResourcesProcessed) |
- return; |
- |
- var frameId = event.data.frameId; |
- var frame = this._frames.get(frameId); |
- if (!frame) |
- return; |
- |
- var url = event.data.url; |
- if (frame._resourcesMap[url]) |
- return; |
- |
- var resource = new WebInspector.Resource(this.target(), null, url, frame.url, frameId, event.data.loaderId, WebInspector.resourceTypes[event.data.resourceType], event.data.mimeType, event.data.lastModified, null); |
- frame.addResource(resource); |
- }, |
+ } |
+ removeOriginForFrame.call(this, mainFrame); |
+ } |
+ |
+ /** |
+ * @param {!PageAgent.FrameId} frameId |
+ * @param {?PageAgent.FrameId} parentFrameId |
+ * @return {?WebInspector.ResourceTreeFrame} |
+ */ |
+ _frameAttached(frameId, parentFrameId) { |
+ // Do nothing unless cached resource tree is processed - it will overwrite everything. |
+ if (!this._cachedResourcesProcessed && parentFrameId) |
+ return null; |
+ if (this._frames.has(frameId)) |
+ return null; |
+ |
+ var parentFrame = parentFrameId ? (this._frames.get(parentFrameId) || null) : null; |
+ var frame = new WebInspector.ResourceTreeFrame(this, parentFrame, frameId); |
+ if (frame.isMainFrame() && this.mainFrame) { |
+ this._handleMainFrameDetached(this.mainFrame); |
+ // Navigation to the new backend process. |
+ this._frameDetached(this.mainFrame.id); |
+ } |
+ this._addFrame(frame, true); |
+ return frame; |
+ } |
+ |
+ /** |
+ * @param {!PageAgent.Frame} framePayload |
+ */ |
+ _frameNavigated(framePayload) { |
+ // Do nothing unless cached resource tree is processed - it will overwrite everything. |
+ if (!this._cachedResourcesProcessed && framePayload.parentId) |
+ return; |
+ var frame = this._frames.get(framePayload.id); |
+ if (!frame) { |
+ // Simulate missed "frameAttached" for a main frame navigation to the new backend process. |
+ console.assert(!framePayload.parentId, 'Main frame shouldn\'t have parent frame id.'); |
+ frame = this._frameAttached(framePayload.id, framePayload.parentId || ''); |
+ console.assert(frame); |
+ } |
- /** |
- * @param {!PageAgent.FrameId} frameId |
- * @return {!WebInspector.ResourceTreeFrame} |
- */ |
- frameForId: function(frameId) |
- { |
- return this._frames.get(frameId); |
- }, |
+ this.dispatchEventToListeners(WebInspector.ResourceTreeModel.Events.FrameWillNavigate, frame); |
- /** |
- * @param {function(!WebInspector.Resource)} callback |
- * @return {boolean} |
- */ |
- forAllResources: function(callback) |
- { |
- if (this.mainFrame) |
- return this.mainFrame._callForFrameResources(callback); |
- return false; |
- }, |
+ this._securityOriginManager.removeSecurityOrigin(frame.securityOrigin); |
+ frame._navigate(framePayload); |
+ var addedOrigin = frame.securityOrigin; |
- /** |
- * @return {!Array<!WebInspector.ResourceTreeFrame>} |
- */ |
- frames: function() |
- { |
- return this._frames.valuesArray(); |
- }, |
+ this.dispatchEventToListeners(WebInspector.ResourceTreeModel.Events.FrameNavigated, frame); |
+ if (frame.isMainFrame()) { |
+ this.dispatchEventToListeners(WebInspector.ResourceTreeModel.Events.MainFrameNavigated, frame); |
+ if (WebInspector.moduleSetting('preserveConsoleLog').get()) |
+ WebInspector.console.log(WebInspector.UIString('Navigated to %s', frame.url)); |
+ else |
+ this.target().consoleModel.clear(); |
+ } |
+ if (addedOrigin) |
+ this._securityOriginManager.addSecurityOrigin(addedOrigin); |
+ |
+ // Fill frame with retained resources (the ones loaded using new loader). |
+ var resources = frame.resources(); |
+ for (var i = 0; i < resources.length; ++i) |
+ this.dispatchEventToListeners(WebInspector.ResourceTreeModel.Events.ResourceAdded, resources[i]); |
+ |
+ if (frame.isMainFrame()) |
+ this.target().setInspectedURL(frame.url); |
+ } |
+ |
+ /** |
+ * @param {!PageAgent.FrameId} frameId |
+ */ |
+ _frameDetached(frameId) { |
+ // Do nothing unless cached resource tree is processed - it will overwrite everything. |
+ if (!this._cachedResourcesProcessed) |
+ return; |
+ |
+ var frame = this._frames.get(frameId); |
+ if (!frame) |
+ return; |
+ |
+ this._securityOriginManager.removeSecurityOrigin(frame.securityOrigin); |
+ if (frame.parentFrame) |
+ frame.parentFrame._removeChildFrame(frame); |
+ else |
+ frame._remove(); |
+ } |
+ |
+ /** |
+ * @param {!WebInspector.Event} event |
+ */ |
+ _onRequestFinished(event) { |
+ if (!this._cachedResourcesProcessed) |
+ return; |
+ |
+ var request = /** @type {!WebInspector.NetworkRequest} */ (event.data); |
+ if (request.failed || request.resourceType() === WebInspector.resourceTypes.XHR) |
+ return; |
+ |
+ var frame = this._frames.get(request.frameId); |
+ if (frame) |
+ frame._addRequest(request); |
+ } |
+ |
+ /** |
+ * @param {!WebInspector.Event} event |
+ */ |
+ _onRequestUpdateDropped(event) { |
+ if (!this._cachedResourcesProcessed) |
+ return; |
+ |
+ var frameId = event.data.frameId; |
+ var frame = this._frames.get(frameId); |
+ if (!frame) |
+ return; |
+ |
+ var url = event.data.url; |
+ if (frame._resourcesMap[url]) |
+ return; |
+ |
+ var resource = new WebInspector.Resource( |
+ this.target(), null, url, frame.url, frameId, event.data.loaderId, |
+ WebInspector.resourceTypes[event.data.resourceType], event.data.mimeType, event.data.lastModified, null); |
+ frame.addResource(resource); |
+ } |
+ |
+ /** |
+ * @param {!PageAgent.FrameId} frameId |
+ * @return {!WebInspector.ResourceTreeFrame} |
+ */ |
+ frameForId(frameId) { |
+ return this._frames.get(frameId); |
+ } |
+ |
+ /** |
+ * @param {function(!WebInspector.Resource)} callback |
+ * @return {boolean} |
+ */ |
+ forAllResources(callback) { |
+ if (this.mainFrame) |
+ return this.mainFrame._callForFrameResources(callback); |
+ return false; |
+ } |
+ |
+ /** |
+ * @return {!Array<!WebInspector.ResourceTreeFrame>} |
+ */ |
+ frames() { |
+ return this._frames.valuesArray(); |
+ } |
+ |
+ /** |
+ * @param {string} url |
+ * @return {?WebInspector.Resource} |
+ */ |
+ resourceForURL(url) { |
+ // Workers call into this with no frames available. |
+ return this.mainFrame ? this.mainFrame.resourceForURL(url) : null; |
+ } |
+ |
+ /** |
+ * @param {?WebInspector.ResourceTreeFrame} parentFrame |
+ * @param {!PageAgent.FrameResourceTree} frameTreePayload |
+ */ |
+ _addFramesRecursively(parentFrame, frameTreePayload) { |
+ var framePayload = frameTreePayload.frame; |
+ var frame = new WebInspector.ResourceTreeFrame(this, parentFrame, framePayload.id, framePayload); |
+ this._addFrame(frame); |
+ |
+ var frameResource = this._createResourceFromFramePayload( |
+ framePayload, framePayload.url, WebInspector.resourceTypes.Document, framePayload.mimeType, null, null); |
+ frame.addResource(frameResource); |
+ |
+ for (var i = 0; frameTreePayload.childFrames && i < frameTreePayload.childFrames.length; ++i) |
+ this._addFramesRecursively(frame, frameTreePayload.childFrames[i]); |
+ |
+ for (var i = 0; i < frameTreePayload.resources.length; ++i) { |
+ var subresource = frameTreePayload.resources[i]; |
+ var resource = this._createResourceFromFramePayload( |
+ framePayload, subresource.url, WebInspector.resourceTypes[subresource.type], subresource.mimeType, |
+ subresource.lastModified || null, subresource.contentSize || null); |
+ frame.addResource(resource); |
+ } |
+ } |
+ |
+ /** |
+ * @param {!PageAgent.Frame} frame |
+ * @param {string} url |
+ * @param {!WebInspector.ResourceType} type |
+ * @param {string} mimeType |
+ * @param {?number} lastModifiedTime |
+ * @param {?number} contentSize |
+ * @return {!WebInspector.Resource} |
+ */ |
+ _createResourceFromFramePayload(frame, url, type, mimeType, lastModifiedTime, contentSize) { |
+ var lastModified = typeof lastModifiedTime === 'number' ? new Date(lastModifiedTime * 1000) : null; |
+ return new WebInspector.Resource( |
+ this.target(), null, url, frame.url, frame.id, frame.loaderId, type, mimeType, lastModified, contentSize); |
+ } |
+ |
+ suspendReload() { |
+ this._reloadSuspensionCount++; |
+ } |
+ |
+ resumeReload() { |
+ this._reloadSuspensionCount--; |
+ console.assert(this._reloadSuspensionCount >= 0, 'Unbalanced call to ResourceTreeModel.resumeReload()'); |
+ if (!this._reloadSuspensionCount && this._pendingReloadOptions) |
+ this.reloadPage.apply(this, this._pendingReloadOptions); |
+ } |
+ |
+ /** |
+ * @param {boolean=} bypassCache |
+ * @param {string=} scriptToEvaluateOnLoad |
+ */ |
+ reloadPage(bypassCache, scriptToEvaluateOnLoad) { |
+ // Only dispatch PageReloadRequested upon first reload request to simplify client logic. |
+ if (!this._pendingReloadOptions) |
+ this.dispatchEventToListeners(WebInspector.ResourceTreeModel.Events.PageReloadRequested); |
+ if (this._reloadSuspensionCount) { |
+ this._pendingReloadOptions = [bypassCache, scriptToEvaluateOnLoad]; |
+ return; |
+ } |
+ this._pendingReloadOptions = null; |
+ this.dispatchEventToListeners(WebInspector.ResourceTreeModel.Events.WillReloadPage); |
+ this._agent.reload(bypassCache, scriptToEvaluateOnLoad); |
+ } |
+ /** |
+ * @param {function(string, ?string,!Array<!PageAgent.AppManifestError>)} callback |
+ */ |
+ fetchAppManifest(callback) { |
+ this._agent.getAppManifest(myCallback); |
/** |
+ * @param {?Protocol.Error} protocolError |
* @param {string} url |
- * @return {?WebInspector.Resource} |
- */ |
- resourceForURL: function(url) |
- { |
- // Workers call into this with no frames available. |
- return this.mainFrame ? this.mainFrame.resourceForURL(url) : null; |
- }, |
- |
+ * @param {!Array<!PageAgent.AppManifestError>} errors |
+ * @param {string=} data |
+ */ |
+ function myCallback(protocolError, url, errors, data) { |
+ if (protocolError) { |
+ callback(url, null, []); |
+ return; |
+ } |
+ callback(url, data || null, errors); |
+ } |
+ } |
+ /** |
+ * @param {!WebInspector.ExecutionContext} a |
+ * @param {!WebInspector.ExecutionContext} b |
+ * @return {number} |
+ */ |
+ _executionContextComparator(a, b) { |
/** |
- * @param {?WebInspector.ResourceTreeFrame} parentFrame |
- * @param {!PageAgent.FrameResourceTree} frameTreePayload |
+ * @param {!WebInspector.ResourceTreeFrame} frame |
*/ |
- _addFramesRecursively: function(parentFrame, frameTreePayload) |
- { |
- var framePayload = frameTreePayload.frame; |
- var frame = new WebInspector.ResourceTreeFrame(this, parentFrame, framePayload.id, framePayload); |
- this._addFrame(frame); |
- |
- var frameResource = this._createResourceFromFramePayload(framePayload, framePayload.url, WebInspector.resourceTypes.Document, framePayload.mimeType, null, null); |
- frame.addResource(frameResource); |
- |
- for (var i = 0; frameTreePayload.childFrames && i < frameTreePayload.childFrames.length; ++i) |
- this._addFramesRecursively(frame, frameTreePayload.childFrames[i]); |
+ function framePath(frame) { |
+ var currentFrame = frame; |
+ var parents = []; |
+ while (currentFrame) { |
+ parents.push(currentFrame); |
+ currentFrame = currentFrame.parentFrame; |
+ } |
+ return parents.reverse(); |
+ } |
- for (var i = 0; i < frameTreePayload.resources.length; ++i) { |
- var subresource = frameTreePayload.resources[i]; |
- var resource = this._createResourceFromFramePayload(framePayload, subresource.url, WebInspector.resourceTypes[subresource.type], subresource.mimeType, subresource.lastModified || null, subresource.contentSize || null); |
- frame.addResource(resource); |
- } |
- }, |
+ var framesA = a.frameId ? framePath(this.frameForId(a.frameId)) : []; |
+ var framesB = b.frameId ? framePath(this.frameForId(b.frameId)) : []; |
+ var frameA; |
+ var frameB; |
+ for (var i = 0;; i++) { |
+ if (!framesA[i] || !framesB[i] || (framesA[i] !== framesB[i])) { |
+ frameA = framesA[i]; |
+ frameB = framesB[i]; |
+ break; |
+ } |
+ } |
+ if (!frameA && frameB) |
+ return -1; |
- /** |
- * @param {!PageAgent.Frame} frame |
- * @param {string} url |
- * @param {!WebInspector.ResourceType} type |
- * @param {string} mimeType |
- * @param {?number} lastModifiedTime |
- * @param {?number} contentSize |
- * @return {!WebInspector.Resource} |
- */ |
- _createResourceFromFramePayload: function(frame, url, type, mimeType, lastModifiedTime, contentSize) |
- { |
- var lastModified = typeof lastModifiedTime === "number" ? new Date(lastModifiedTime * 1000) : null; |
- return new WebInspector.Resource(this.target(), null, url, frame.url, frame.id, frame.loaderId, type, mimeType, lastModified, contentSize); |
- }, |
- |
- suspendReload: function() |
- { |
- this._reloadSuspensionCount++; |
- }, |
- |
- resumeReload: function() |
- { |
- this._reloadSuspensionCount--; |
- console.assert(this._reloadSuspensionCount >= 0, "Unbalanced call to ResourceTreeModel.resumeReload()"); |
- if (!this._reloadSuspensionCount && this._pendingReloadOptions) |
- this.reloadPage.apply(this, this._pendingReloadOptions); |
- }, |
+ if (!frameB && frameA) |
+ return 1; |
- /** |
- * @param {boolean=} bypassCache |
- * @param {string=} scriptToEvaluateOnLoad |
- */ |
- reloadPage: function(bypassCache, scriptToEvaluateOnLoad) |
- { |
- // Only dispatch PageReloadRequested upon first reload request to simplify client logic. |
- if (!this._pendingReloadOptions) |
- this.dispatchEventToListeners(WebInspector.ResourceTreeModel.Events.PageReloadRequested); |
- if (this._reloadSuspensionCount) { |
- this._pendingReloadOptions = [bypassCache, scriptToEvaluateOnLoad]; |
- return; |
- } |
- this._pendingReloadOptions = null; |
- this.dispatchEventToListeners(WebInspector.ResourceTreeModel.Events.WillReloadPage); |
- this._agent.reload(bypassCache, scriptToEvaluateOnLoad); |
- }, |
+ if (frameA && frameB) { |
+ return frameA.id.localeCompare(frameB.id); |
+ } |
+ return WebInspector.ExecutionContext.comparator(a, b); |
+ } |
+}; |
- /** |
- * @param {function(string, ?string,!Array<!PageAgent.AppManifestError>)} callback |
- */ |
- fetchAppManifest: function(callback) |
- { |
- this._agent.getAppManifest(myCallback); |
- /** |
- * @param {?Protocol.Error} protocolError |
- * @param {string} url |
- * @param {!Array<!PageAgent.AppManifestError>} errors |
- * @param {string=} data |
- */ |
- function myCallback(protocolError, url, errors, data) |
- { |
- if (protocolError) { |
- callback(url, null, []); |
- return; |
- } |
- callback(url, data || null, errors); |
- } |
- }, |
- /** |
- * @param {!WebInspector.ExecutionContext} a |
- * @param {!WebInspector.ExecutionContext} b |
- * @return {number} |
- */ |
- _executionContextComparator: function(a,b) |
- { |
- /** |
- * @param {!WebInspector.ResourceTreeFrame} frame |
- */ |
- function framePath(frame) |
- { |
- var currentFrame = frame; |
- var parents = []; |
- while (currentFrame) { |
- parents.push(currentFrame); |
- currentFrame = currentFrame.parentFrame; |
- } |
- return parents.reverse(); |
- } |
- |
- var framesA = a.frameId ? framePath(this.frameForId(a.frameId)) : []; |
- var framesB = b.frameId ? framePath(this.frameForId(b.frameId)) : []; |
- var frameA; |
- var frameB; |
- for (var i = 0; ; i++) { |
- if (!framesA[i] || !framesB[i] || (framesA[i] !== framesB[i])) { |
- frameA = framesA[i]; |
- frameB = framesB[i]; |
- break; |
- } |
- } |
- if (!frameA && frameB) |
- return -1; |
- |
- if (!frameB && frameA) |
- return 1; |
- |
- if (frameA && frameB) { |
- return frameA.id.localeCompare(frameB.id); |
- } |
- return WebInspector.ExecutionContext.comparator(a,b); |
- }, |
- |
- __proto__: WebInspector.SDKModel.prototype |
+/** @enum {symbol} */ |
+WebInspector.ResourceTreeModel.Events = { |
+ FrameAdded: Symbol('FrameAdded'), |
+ FrameNavigated: Symbol('FrameNavigated'), |
+ FrameDetached: Symbol('FrameDetached'), |
+ FrameResized: Symbol('FrameResized'), |
+ FrameWillNavigate: Symbol('FrameWillNavigate'), |
+ MainFrameNavigated: Symbol('MainFrameNavigated'), |
+ ResourceAdded: Symbol('ResourceAdded'), |
+ WillLoadCachedResources: Symbol('WillLoadCachedResources'), |
+ CachedResourcesLoaded: Symbol('CachedResourcesLoaded'), |
+ DOMContentLoaded: Symbol('DOMContentLoaded'), |
+ Load: Symbol('Load'), |
+ PageReloadRequested: Symbol('PageReloadRequested'), |
+ WillReloadPage: Symbol('WillReloadPage'), |
+ ScreencastFrame: Symbol('ScreencastFrame'), |
+ ScreencastVisibilityChanged: Symbol('ScreencastVisibilityChanged'), |
+ ColorPicked: Symbol('ColorPicked'), |
+ InterstitialShown: Symbol('InterstitialShown'), |
+ InterstitialHidden: Symbol('InterstitialHidden') |
}; |
+ |
/** |
- * @constructor |
- * @param {!WebInspector.ResourceTreeModel} model |
- * @param {?WebInspector.ResourceTreeFrame} parentFrame |
- * @param {!PageAgent.FrameId} frameId |
- * @param {!PageAgent.Frame=} payload |
+ * @unrestricted |
*/ |
-WebInspector.ResourceTreeFrame = function(model, parentFrame, frameId, payload) |
-{ |
+WebInspector.ResourceTreeFrame = class { |
+ /** |
+ * @param {!WebInspector.ResourceTreeModel} model |
+ * @param {?WebInspector.ResourceTreeFrame} parentFrame |
+ * @param {!PageAgent.FrameId} frameId |
+ * @param {!PageAgent.Frame=} payload |
+ */ |
+ constructor(model, parentFrame, frameId, payload) { |
this._model = model; |
this._parentFrame = parentFrame; |
this._id = frameId; |
- this._url = ""; |
+ this._url = ''; |
if (payload) { |
- this._loaderId = payload.loaderId; |
- this._name = payload.name; |
- this._url = payload.url; |
- this._securityOrigin = payload.securityOrigin; |
- this._mimeType = payload.mimeType; |
+ this._loaderId = payload.loaderId; |
+ this._name = payload.name; |
+ this._url = payload.url; |
+ this._securityOrigin = payload.securityOrigin; |
+ this._mimeType = payload.mimeType; |
} |
/** |
@@ -511,429 +490,389 @@ WebInspector.ResourceTreeFrame = function(model, parentFrame, frameId, payload) |
this._resourcesMap = {}; |
if (this._parentFrame) |
- this._parentFrame._childFrames.push(this); |
-}; |
- |
-/** |
- * @param {!WebInspector.ExecutionContext|!WebInspector.CSSStyleSheetHeader|!WebInspector.Resource} object |
- * @return {?WebInspector.ResourceTreeFrame} |
- */ |
-WebInspector.ResourceTreeFrame._fromObject = function(object) |
-{ |
+ this._parentFrame._childFrames.push(this); |
+ } |
+ |
+ /** |
+ * @param {!WebInspector.ExecutionContext|!WebInspector.CSSStyleSheetHeader|!WebInspector.Resource} object |
+ * @return {?WebInspector.ResourceTreeFrame} |
+ */ |
+ static _fromObject(object) { |
var resourceTreeModel = WebInspector.ResourceTreeModel.fromTarget(object.target()); |
var frameId = object.frameId; |
if (!resourceTreeModel || !frameId) |
- return null; |
+ return null; |
return resourceTreeModel.frameForId(frameId); |
-}; |
+ } |
-/** |
- * @param {!WebInspector.Script} script |
- * @return {?WebInspector.ResourceTreeFrame} |
- */ |
-WebInspector.ResourceTreeFrame.fromScript = function(script) |
-{ |
+ /** |
+ * @param {!WebInspector.Script} script |
+ * @return {?WebInspector.ResourceTreeFrame} |
+ */ |
+ static fromScript(script) { |
var executionContext = script.executionContext(); |
if (!executionContext) |
- return null; |
+ return null; |
return WebInspector.ResourceTreeFrame._fromObject(executionContext); |
-}; |
+ } |
-/** |
- * @param {!WebInspector.CSSStyleSheetHeader} header |
- * @return {?WebInspector.ResourceTreeFrame} |
- */ |
-WebInspector.ResourceTreeFrame.fromStyleSheet = function(header) |
-{ |
+ /** |
+ * @param {!WebInspector.CSSStyleSheetHeader} header |
+ * @return {?WebInspector.ResourceTreeFrame} |
+ */ |
+ static fromStyleSheet(header) { |
return WebInspector.ResourceTreeFrame._fromObject(header); |
-}; |
+ } |
-/** |
- * @param {!WebInspector.Resource} resource |
- * @return {?WebInspector.ResourceTreeFrame} |
- */ |
-WebInspector.ResourceTreeFrame.fromResource = function(resource) |
-{ |
+ /** |
+ * @param {!WebInspector.Resource} resource |
+ * @return {?WebInspector.ResourceTreeFrame} |
+ */ |
+ static fromResource(resource) { |
return WebInspector.ResourceTreeFrame._fromObject(resource); |
-}; |
- |
-WebInspector.ResourceTreeFrame.prototype = { |
- /** |
- * @return {!WebInspector.Target} |
- */ |
- target: function() |
- { |
- return this._model.target(); |
- }, |
- |
- /** |
- * @return {string} |
- */ |
- get id() |
- { |
- return this._id; |
- }, |
- |
- /** |
- * @return {string} |
- */ |
- get name() |
- { |
- return this._name || ""; |
- }, |
- |
- /** |
- * @return {string} |
- */ |
- get url() |
- { |
- return this._url; |
- }, |
- |
- /** |
- * @return {string} |
- */ |
- get securityOrigin() |
- { |
- return this._securityOrigin; |
- }, |
- |
- /** |
- * @return {string} |
- */ |
- get loaderId() |
- { |
- return this._loaderId; |
- }, |
- |
- /** |
- * @return {?WebInspector.ResourceTreeFrame} |
- */ |
- get parentFrame() |
- { |
- return this._parentFrame; |
- }, |
- |
- /** |
- * @return {!Array.<!WebInspector.ResourceTreeFrame>} |
- */ |
- get childFrames() |
- { |
- return this._childFrames; |
- }, |
- |
- /** |
- * @return {boolean} |
- */ |
- isMainFrame: function() |
- { |
- return !this._parentFrame; |
- }, |
- |
- /** |
- * @param {!PageAgent.Frame} framePayload |
- */ |
- _navigate: function(framePayload) |
- { |
- this._loaderId = framePayload.loaderId; |
- this._name = framePayload.name; |
- this._url = framePayload.url; |
- this._securityOrigin = framePayload.securityOrigin; |
- this._mimeType = framePayload.mimeType; |
- |
- var mainResource = this._resourcesMap[this._url]; |
- this._resourcesMap = {}; |
- this._removeChildFrames(); |
- if (mainResource && mainResource.loaderId === this._loaderId) |
- this.addResource(mainResource); |
- }, |
- |
- /** |
- * @return {!WebInspector.Resource} |
- */ |
- get mainResource() |
- { |
- return this._resourcesMap[this._url]; |
- }, |
- |
- /** |
- * @param {!WebInspector.ResourceTreeFrame} frame |
- */ |
- _removeChildFrame: function(frame) |
- { |
- this._childFrames.remove(frame); |
- frame._remove(); |
- }, |
- |
- _removeChildFrames: function() |
- { |
- var frames = this._childFrames; |
- this._childFrames = []; |
- for (var i = 0; i < frames.length; ++i) |
- frames[i]._remove(); |
- }, |
- |
- _remove: function() |
- { |
- this._removeChildFrames(); |
- this._model._frames.delete(this.id); |
- this._model.dispatchEventToListeners(WebInspector.ResourceTreeModel.Events.FrameDetached, this); |
- }, |
- |
- /** |
- * @param {!WebInspector.Resource} resource |
- */ |
- addResource: function(resource) |
- { |
- if (this._resourcesMap[resource.url] === resource) { |
- // Already in the tree, we just got an extra update. |
- return; |
- } |
- this._resourcesMap[resource.url] = resource; |
- this._model.dispatchEventToListeners(WebInspector.ResourceTreeModel.Events.ResourceAdded, resource); |
- }, |
- |
- /** |
- * @param {!WebInspector.NetworkRequest} request |
- */ |
- _addRequest: function(request) |
- { |
- var resource = this._resourcesMap[request.url]; |
- if (resource && resource.request === request) { |
- // Already in the tree, we just got an extra update. |
- return; |
- } |
- resource = new WebInspector.Resource(this.target(), request, request.url, request.documentURL, request.frameId, request.loaderId, request.resourceType(), request.mimeType, null, null); |
- this._resourcesMap[resource.url] = resource; |
- this._model.dispatchEventToListeners(WebInspector.ResourceTreeModel.Events.ResourceAdded, resource); |
- }, |
- |
- /** |
- * @return {!Array.<!WebInspector.Resource>} |
- */ |
- resources: function() |
- { |
- var result = []; |
- for (var url in this._resourcesMap) |
- result.push(this._resourcesMap[url]); |
- return result; |
- }, |
- |
- /** |
- * @param {string} url |
- * @return {?WebInspector.Resource} |
- */ |
- resourceForURL: function(url) |
- { |
- var resource = this._resourcesMap[url] || null; |
- if (resource) |
- return resource; |
- for (var i = 0; !resource && i < this._childFrames.length; ++i) |
- resource = this._childFrames[i].resourceForURL(url); |
- return resource; |
- }, |
- |
- /** |
- * @param {function(!WebInspector.Resource)} callback |
- * @return {boolean} |
- */ |
- _callForFrameResources: function(callback) |
- { |
- for (var url in this._resourcesMap) { |
- if (callback(this._resourcesMap[url])) |
- return true; |
- } |
- |
- for (var i = 0; i < this._childFrames.length; ++i) { |
- if (this._childFrames[i]._callForFrameResources(callback)) |
- return true; |
- } |
- return false; |
- }, |
+ } |
+ |
+ /** |
+ * @return {!WebInspector.Target} |
+ */ |
+ target() { |
+ return this._model.target(); |
+ } |
+ |
+ /** |
+ * @return {string} |
+ */ |
+ get id() { |
+ return this._id; |
+ } |
+ |
+ /** |
+ * @return {string} |
+ */ |
+ get name() { |
+ return this._name || ''; |
+ } |
+ |
+ /** |
+ * @return {string} |
+ */ |
+ get url() { |
+ return this._url; |
+ } |
+ |
+ /** |
+ * @return {string} |
+ */ |
+ get securityOrigin() { |
+ return this._securityOrigin; |
+ } |
+ |
+ /** |
+ * @return {string} |
+ */ |
+ get loaderId() { |
+ return this._loaderId; |
+ } |
+ |
+ /** |
+ * @return {?WebInspector.ResourceTreeFrame} |
+ */ |
+ get parentFrame() { |
+ return this._parentFrame; |
+ } |
+ |
+ /** |
+ * @return {!Array.<!WebInspector.ResourceTreeFrame>} |
+ */ |
+ get childFrames() { |
+ return this._childFrames; |
+ } |
+ |
+ /** |
+ * @return {boolean} |
+ */ |
+ isMainFrame() { |
+ return !this._parentFrame; |
+ } |
+ |
+ /** |
+ * @param {!PageAgent.Frame} framePayload |
+ */ |
+ _navigate(framePayload) { |
+ this._loaderId = framePayload.loaderId; |
+ this._name = framePayload.name; |
+ this._url = framePayload.url; |
+ this._securityOrigin = framePayload.securityOrigin; |
+ this._mimeType = framePayload.mimeType; |
+ |
+ var mainResource = this._resourcesMap[this._url]; |
+ this._resourcesMap = {}; |
+ this._removeChildFrames(); |
+ if (mainResource && mainResource.loaderId === this._loaderId) |
+ this.addResource(mainResource); |
+ } |
+ |
+ /** |
+ * @return {!WebInspector.Resource} |
+ */ |
+ get mainResource() { |
+ return this._resourcesMap[this._url]; |
+ } |
+ |
+ /** |
+ * @param {!WebInspector.ResourceTreeFrame} frame |
+ */ |
+ _removeChildFrame(frame) { |
+ this._childFrames.remove(frame); |
+ frame._remove(); |
+ } |
+ |
+ _removeChildFrames() { |
+ var frames = this._childFrames; |
+ this._childFrames = []; |
+ for (var i = 0; i < frames.length; ++i) |
+ frames[i]._remove(); |
+ } |
+ |
+ _remove() { |
+ this._removeChildFrames(); |
+ this._model._frames.delete(this.id); |
+ this._model.dispatchEventToListeners(WebInspector.ResourceTreeModel.Events.FrameDetached, this); |
+ } |
+ |
+ /** |
+ * @param {!WebInspector.Resource} resource |
+ */ |
+ addResource(resource) { |
+ if (this._resourcesMap[resource.url] === resource) { |
+ // Already in the tree, we just got an extra update. |
+ return; |
+ } |
+ this._resourcesMap[resource.url] = resource; |
+ this._model.dispatchEventToListeners(WebInspector.ResourceTreeModel.Events.ResourceAdded, resource); |
+ } |
+ |
+ /** |
+ * @param {!WebInspector.NetworkRequest} request |
+ */ |
+ _addRequest(request) { |
+ var resource = this._resourcesMap[request.url]; |
+ if (resource && resource.request === request) { |
+ // Already in the tree, we just got an extra update. |
+ return; |
+ } |
+ resource = new WebInspector.Resource( |
+ this.target(), request, request.url, request.documentURL, request.frameId, request.loaderId, |
+ request.resourceType(), request.mimeType, null, null); |
+ this._resourcesMap[resource.url] = resource; |
+ this._model.dispatchEventToListeners(WebInspector.ResourceTreeModel.Events.ResourceAdded, resource); |
+ } |
+ |
+ /** |
+ * @return {!Array.<!WebInspector.Resource>} |
+ */ |
+ resources() { |
+ var result = []; |
+ for (var url in this._resourcesMap) |
+ result.push(this._resourcesMap[url]); |
+ return result; |
+ } |
+ |
+ /** |
+ * @param {string} url |
+ * @return {?WebInspector.Resource} |
+ */ |
+ resourceForURL(url) { |
+ var resource = this._resourcesMap[url] || null; |
+ if (resource) |
+ return resource; |
+ for (var i = 0; !resource && i < this._childFrames.length; ++i) |
+ resource = this._childFrames[i].resourceForURL(url); |
+ return resource; |
+ } |
+ |
+ /** |
+ * @param {function(!WebInspector.Resource)} callback |
+ * @return {boolean} |
+ */ |
+ _callForFrameResources(callback) { |
+ for (var url in this._resourcesMap) { |
+ if (callback(this._resourcesMap[url])) |
+ return true; |
+ } |
- /** |
- * @return {string} |
- */ |
- displayName: function() |
- { |
- if (!this._parentFrame) |
- return WebInspector.UIString("top"); |
- var subtitle = new WebInspector.ParsedURL(this._url).displayName; |
- if (subtitle) { |
- if (!this._name) |
- return subtitle; |
- return this._name + " (" + subtitle + ")"; |
- } |
- return WebInspector.UIString("<iframe>"); |
+ for (var i = 0; i < this._childFrames.length; ++i) { |
+ if (this._childFrames[i]._callForFrameResources(callback)) |
+ return true; |
+ } |
+ return false; |
+ } |
+ |
+ /** |
+ * @return {string} |
+ */ |
+ displayName() { |
+ if (!this._parentFrame) |
+ return WebInspector.UIString('top'); |
+ var subtitle = new WebInspector.ParsedURL(this._url).displayName; |
+ if (subtitle) { |
+ if (!this._name) |
+ return subtitle; |
+ return this._name + ' (' + subtitle + ')'; |
} |
+ return WebInspector.UIString('<iframe>'); |
+ } |
}; |
+ |
/** |
- * @constructor |
* @implements {PageAgent.Dispatcher} |
+ * @unrestricted |
*/ |
-WebInspector.PageDispatcher = function(resourceTreeModel) |
-{ |
+WebInspector.PageDispatcher = class { |
+ constructor(resourceTreeModel) { |
this._resourceTreeModel = resourceTreeModel; |
-}; |
- |
-WebInspector.PageDispatcher.prototype = { |
- /** |
- * @override |
- * @param {number} time |
- */ |
- domContentEventFired: function(time) |
- { |
- this._resourceTreeModel.dispatchEventToListeners(WebInspector.ResourceTreeModel.Events.DOMContentLoaded, time); |
- }, |
- |
- /** |
- * @override |
- * @param {number} time |
- */ |
- loadEventFired: function(time) |
- { |
- this._resourceTreeModel.dispatchEventToListeners(WebInspector.ResourceTreeModel.Events.Load, time); |
- }, |
- |
- /** |
- * @override |
- * @param {!PageAgent.FrameId} frameId |
- * @param {!PageAgent.FrameId} parentFrameId |
- */ |
- frameAttached: function(frameId, parentFrameId) |
- { |
- this._resourceTreeModel._frameAttached(frameId, parentFrameId); |
- }, |
- |
- /** |
- * @override |
- * @param {!PageAgent.Frame} frame |
- */ |
- frameNavigated: function(frame) |
- { |
- this._resourceTreeModel._frameNavigated(frame); |
- }, |
- |
- /** |
- * @override |
- * @param {!PageAgent.FrameId} frameId |
- */ |
- frameDetached: function(frameId) |
- { |
- this._resourceTreeModel._frameDetached(frameId); |
- }, |
- |
- /** |
- * @override |
- * @param {!PageAgent.FrameId} frameId |
- */ |
- frameStartedLoading: function(frameId) |
- { |
- }, |
- |
- /** |
- * @override |
- * @param {!PageAgent.FrameId} frameId |
- */ |
- frameStoppedLoading: function(frameId) |
- { |
- }, |
- |
- /** |
- * @override |
- * @param {!PageAgent.FrameId} frameId |
- * @param {number} delay |
- */ |
- frameScheduledNavigation: function(frameId, delay) |
- { |
- }, |
- |
- /** |
- * @override |
- * @param {!PageAgent.FrameId} frameId |
- */ |
- frameClearedScheduledNavigation: function(frameId) |
- { |
- }, |
- |
- /** |
- * @override |
- */ |
- frameResized: function() |
- { |
- this._resourceTreeModel.dispatchEventToListeners(WebInspector.ResourceTreeModel.Events.FrameResized, null); |
- }, |
- |
- /** |
- * @override |
- * @param {string} message |
- * @param {string} dialogType |
- */ |
- javascriptDialogOpening: function(message, dialogType) |
- { |
- }, |
- |
- /** |
- * @override |
- * @param {boolean} result |
- */ |
- javascriptDialogClosed: function(result) |
- { |
- }, |
- |
- /** |
- * @override |
- * @param {string} data |
- * @param {!PageAgent.ScreencastFrameMetadata=} metadata |
- * @param {number=} sessionId |
- */ |
- screencastFrame: function(data, metadata, sessionId) |
- { |
- this._resourceTreeModel._agent.screencastFrameAck(sessionId); |
- this._resourceTreeModel.dispatchEventToListeners(WebInspector.ResourceTreeModel.Events.ScreencastFrame, { data: data, metadata: metadata }); |
- }, |
- |
- /** |
- * @override |
- * @param {boolean} visible |
- */ |
- screencastVisibilityChanged: function(visible) |
- { |
- this._resourceTreeModel.dispatchEventToListeners(WebInspector.ResourceTreeModel.Events.ScreencastVisibilityChanged, { visible: visible }); |
- }, |
- |
- /** |
- * @override |
- * @param {!DOMAgent.RGBA} color |
- */ |
- colorPicked: function(color) |
- { |
- this._resourceTreeModel.dispatchEventToListeners(WebInspector.ResourceTreeModel.Events.ColorPicked, color); |
- }, |
- |
- /** |
- * @override |
- */ |
- interstitialShown: function() |
- { |
- this._resourceTreeModel.dispatchEventToListeners(WebInspector.ResourceTreeModel.Events.InterstitialShown); |
- }, |
- |
- /** |
- * @override |
- */ |
- interstitialHidden: function() |
- { |
- this._resourceTreeModel.dispatchEventToListeners(WebInspector.ResourceTreeModel.Events.InterstitialHidden); |
- }, |
- |
- /** |
- * @override |
- */ |
- navigationRequested: function() |
- { |
- // Frontend is not interested in when navigations are requested. |
- } |
- |
+ } |
+ |
+ /** |
+ * @override |
+ * @param {number} time |
+ */ |
+ domContentEventFired(time) { |
+ this._resourceTreeModel.dispatchEventToListeners(WebInspector.ResourceTreeModel.Events.DOMContentLoaded, time); |
+ } |
+ |
+ /** |
+ * @override |
+ * @param {number} time |
+ */ |
+ loadEventFired(time) { |
+ this._resourceTreeModel.dispatchEventToListeners(WebInspector.ResourceTreeModel.Events.Load, time); |
+ } |
+ |
+ /** |
+ * @override |
+ * @param {!PageAgent.FrameId} frameId |
+ * @param {!PageAgent.FrameId} parentFrameId |
+ */ |
+ frameAttached(frameId, parentFrameId) { |
+ this._resourceTreeModel._frameAttached(frameId, parentFrameId); |
+ } |
+ |
+ /** |
+ * @override |
+ * @param {!PageAgent.Frame} frame |
+ */ |
+ frameNavigated(frame) { |
+ this._resourceTreeModel._frameNavigated(frame); |
+ } |
+ |
+ /** |
+ * @override |
+ * @param {!PageAgent.FrameId} frameId |
+ */ |
+ frameDetached(frameId) { |
+ this._resourceTreeModel._frameDetached(frameId); |
+ } |
+ |
+ /** |
+ * @override |
+ * @param {!PageAgent.FrameId} frameId |
+ */ |
+ frameStartedLoading(frameId) { |
+ } |
+ |
+ /** |
+ * @override |
+ * @param {!PageAgent.FrameId} frameId |
+ */ |
+ frameStoppedLoading(frameId) { |
+ } |
+ |
+ /** |
+ * @override |
+ * @param {!PageAgent.FrameId} frameId |
+ * @param {number} delay |
+ */ |
+ frameScheduledNavigation(frameId, delay) { |
+ } |
+ |
+ /** |
+ * @override |
+ * @param {!PageAgent.FrameId} frameId |
+ */ |
+ frameClearedScheduledNavigation(frameId) { |
+ } |
+ |
+ /** |
+ * @override |
+ */ |
+ frameResized() { |
+ this._resourceTreeModel.dispatchEventToListeners(WebInspector.ResourceTreeModel.Events.FrameResized, null); |
+ } |
+ |
+ /** |
+ * @override |
+ * @param {string} message |
+ * @param {string} dialogType |
+ */ |
+ javascriptDialogOpening(message, dialogType) { |
+ } |
+ |
+ /** |
+ * @override |
+ * @param {boolean} result |
+ */ |
+ javascriptDialogClosed(result) { |
+ } |
+ |
+ /** |
+ * @override |
+ * @param {string} data |
+ * @param {!PageAgent.ScreencastFrameMetadata=} metadata |
+ * @param {number=} sessionId |
+ */ |
+ screencastFrame(data, metadata, sessionId) { |
+ this._resourceTreeModel._agent.screencastFrameAck(sessionId); |
+ this._resourceTreeModel.dispatchEventToListeners( |
+ WebInspector.ResourceTreeModel.Events.ScreencastFrame, {data: data, metadata: metadata}); |
+ } |
+ |
+ /** |
+ * @override |
+ * @param {boolean} visible |
+ */ |
+ screencastVisibilityChanged(visible) { |
+ this._resourceTreeModel.dispatchEventToListeners( |
+ WebInspector.ResourceTreeModel.Events.ScreencastVisibilityChanged, {visible: visible}); |
+ } |
+ |
+ /** |
+ * @override |
+ * @param {!DOMAgent.RGBA} color |
+ */ |
+ colorPicked(color) { |
+ this._resourceTreeModel.dispatchEventToListeners(WebInspector.ResourceTreeModel.Events.ColorPicked, color); |
+ } |
+ |
+ /** |
+ * @override |
+ */ |
+ interstitialShown() { |
+ this._resourceTreeModel.dispatchEventToListeners(WebInspector.ResourceTreeModel.Events.InterstitialShown); |
+ } |
+ |
+ /** |
+ * @override |
+ */ |
+ interstitialHidden() { |
+ this._resourceTreeModel.dispatchEventToListeners(WebInspector.ResourceTreeModel.Events.InterstitialHidden); |
+ } |
+ |
+ /** |
+ * @override |
+ */ |
+ navigationRequested() { |
+ // Frontend is not interested in when navigations are requested. |
+ } |
}; |