| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2014 The Chromium Authors. All rights reserved. | 2 * Copyright 2014 The Chromium Authors. All rights reserved. |
| 3 * Use of this source code is governed by a BSD-style license that can be | 3 * Use of this source code is governed by a BSD-style license that can be |
| 4 * found in the LICENSE file. | 4 * found in the LICENSE file. |
| 5 */ | 5 */ |
| 6 | 6 |
| 7 /** | 7 /** |
| 8 * @constructor | 8 * @constructor |
| 9 * @extends {WebInspector.Object} | 9 * @extends {WebInspector.Object} |
| 10 */ | 10 */ |
| (...skipping 14 matching lines...) Expand all Loading... |
| 25 WebInspector.TargetManager.Events = { | 25 WebInspector.TargetManager.Events = { |
| 26 InspectedURLChanged: Symbol("InspectedURLChanged"), | 26 InspectedURLChanged: Symbol("InspectedURLChanged"), |
| 27 MainFrameNavigated: Symbol("MainFrameNavigated"), | 27 MainFrameNavigated: Symbol("MainFrameNavigated"), |
| 28 Load: Symbol("Load"), | 28 Load: Symbol("Load"), |
| 29 PageReloadRequested: Symbol("PageReloadRequested"), | 29 PageReloadRequested: Symbol("PageReloadRequested"), |
| 30 WillReloadPage: Symbol("WillReloadPage"), | 30 WillReloadPage: Symbol("WillReloadPage"), |
| 31 TargetDisposed: Symbol("TargetDisposed"), | 31 TargetDisposed: Symbol("TargetDisposed"), |
| 32 SuspendStateChanged: Symbol("SuspendStateChanged") | 32 SuspendStateChanged: Symbol("SuspendStateChanged") |
| 33 } | 33 } |
| 34 | 34 |
| 35 WebInspector.TargetManager._listenersSymbol = Symbol("WebInspector.TargetManager
.Listeners"); |
| 36 |
| 35 WebInspector.TargetManager.prototype = { | 37 WebInspector.TargetManager.prototype = { |
| 36 suspendAllTargets: function() | 38 suspendAllTargets: function() |
| 37 { | 39 { |
| 38 if (this._isSuspended) | 40 if (this._isSuspended) |
| 39 return; | 41 return; |
| 40 this._isSuspended = true; | 42 this._isSuspended = true; |
| 41 this.dispatchEventToListeners(WebInspector.TargetManager.Events.SuspendS
tateChanged); | 43 this.dispatchEventToListeners(WebInspector.TargetManager.Events.SuspendS
tateChanged); |
| 42 | 44 |
| 43 for (var i = 0; i < this._targets.length; ++i) { | 45 for (var i = 0; i < this._targets.length; ++i) { |
| 44 for (var model of this._targets[i].models()) | 46 for (var model of this._targets[i].models()) |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 93 { | 95 { |
| 94 this.dispatchEventToListeners(event.type, event.data); | 96 this.dispatchEventToListeners(event.type, event.data); |
| 95 }, | 97 }, |
| 96 | 98 |
| 97 /** | 99 /** |
| 98 * @param {boolean=} bypassCache | 100 * @param {boolean=} bypassCache |
| 99 * @param {string=} injectedScript | 101 * @param {string=} injectedScript |
| 100 */ | 102 */ |
| 101 reloadPage: function(bypassCache, injectedScript) | 103 reloadPage: function(bypassCache, injectedScript) |
| 102 { | 104 { |
| 103 if (this._targets.length) | 105 if (!this._targets.length) |
| 104 this._targets[0].resourceTreeModel.reloadPage(bypassCache, injectedS
cript); | 106 return; |
| 107 |
| 108 var resourceTreeModel = WebInspector.ResourceTreeModel.fromTarget(this._
targets[0]); |
| 109 if (!resourceTreeModel) |
| 110 return; |
| 111 |
| 112 resourceTreeModel.reloadPage(bypassCache, injectedScript); |
| 105 }, | 113 }, |
| 106 | 114 |
| 107 /** | 115 /** |
| 108 * @param {!Function} modelClass | 116 * @param {!Function} modelClass |
| 109 * @param {string} eventType | 117 * @param {string} eventType |
| 110 * @param {function(!WebInspector.Event)} listener | 118 * @param {function(!WebInspector.Event)} listener |
| 111 * @param {!Object=} thisObject | 119 * @param {!Object=} thisObject |
| 112 */ | 120 */ |
| 113 addModelListener: function(modelClass, eventType, listener, thisObject) | 121 addModelListener: function(modelClass, eventType, listener, thisObject) |
| 114 { | 122 { |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 180 createTarget: function(name, capabilitiesMask, connection, parentTarget) | 188 createTarget: function(name, capabilitiesMask, connection, parentTarget) |
| 181 { | 189 { |
| 182 var target = new WebInspector.Target(this, name, capabilitiesMask, conne
ction, parentTarget); | 190 var target = new WebInspector.Target(this, name, capabilitiesMask, conne
ction, parentTarget); |
| 183 | 191 |
| 184 /** @type {!WebInspector.ConsoleModel} */ | 192 /** @type {!WebInspector.ConsoleModel} */ |
| 185 target.consoleModel = new WebInspector.ConsoleModel(target); | 193 target.consoleModel = new WebInspector.ConsoleModel(target); |
| 186 /** @type {!WebInspector.RuntimeModel} */ | 194 /** @type {!WebInspector.RuntimeModel} */ |
| 187 target.runtimeModel = new WebInspector.RuntimeModel(target); | 195 target.runtimeModel = new WebInspector.RuntimeModel(target); |
| 188 | 196 |
| 189 var networkManager = null; | 197 var networkManager = null; |
| 198 var resourceTreeModel = null; |
| 190 if (target.hasNetworkCapability()) | 199 if (target.hasNetworkCapability()) |
| 191 networkManager = new WebInspector.NetworkManager(target); | 200 networkManager = new WebInspector.NetworkManager(target); |
| 192 | 201 if (networkManager && target.hasDOMCapability()) { |
| 193 var securityOriginManager = WebInspector.SecurityOriginManager.fromTarge
t(target); | 202 resourceTreeModel = new WebInspector.ResourceTreeModel(target, netwo
rkManager, WebInspector.SecurityOriginManager.fromTarget(target)); |
| 194 /** @type {!WebInspector.ResourceTreeModel} */ | 203 new WebInspector.NetworkLog(target, resourceTreeModel, networkManage
r); |
| 195 target.resourceTreeModel = new WebInspector.ResourceTreeModel(target, ne
tworkManager, securityOriginManager); | 204 } |
| 196 | |
| 197 if (networkManager) | |
| 198 new WebInspector.NetworkLog(target, target.resourceTreeModel, networ
kManager); | |
| 199 | 205 |
| 200 if (target.hasJSCapability()) | 206 if (target.hasJSCapability()) |
| 201 new WebInspector.DebuggerModel(target); | 207 new WebInspector.DebuggerModel(target); |
| 202 | 208 |
| 203 if (target.hasDOMCapability()) { | 209 if (resourceTreeModel) { |
| 204 var domModel = new WebInspector.DOMModel(target); | 210 var domModel = new WebInspector.DOMModel(target); |
| 211 // TODO(eostroukhov) CSSModel should not depend on RTM |
| 205 new WebInspector.CSSModel(target, domModel); | 212 new WebInspector.CSSModel(target, domModel); |
| 206 } | 213 } |
| 207 | 214 |
| 208 /** @type {?WebInspector.WorkerManager} */ | 215 /** @type {?WebInspector.WorkerManager} */ |
| 209 target.workerManager = target.hasWorkerCapability() ? new WebInspector.W
orkerManager(target) : null; | 216 target.workerManager = target.hasWorkerCapability() ? new WebInspector.W
orkerManager(target) : null; |
| 210 /** @type {!WebInspector.CPUProfilerModel} */ | 217 /** @type {!WebInspector.CPUProfilerModel} */ |
| 211 target.cpuProfilerModel = new WebInspector.CPUProfilerModel(target); | 218 target.cpuProfilerModel = new WebInspector.CPUProfilerModel(target); |
| 212 /** @type {!WebInspector.HeapProfilerModel} */ | 219 /** @type {!WebInspector.HeapProfilerModel} */ |
| 213 target.heapProfilerModel = new WebInspector.HeapProfilerModel(target); | 220 target.heapProfilerModel = new WebInspector.HeapProfilerModel(target); |
| 214 | 221 |
| (...skipping 14 matching lines...) Expand all Loading... |
| 229 { | 236 { |
| 230 return this._observers.filter((observer) => target.hasAllCapabilities(ob
server[this._observerCapabiliesMaskSymbol] || 0)); | 237 return this._observers.filter((observer) => target.hasAllCapabilities(ob
server[this._observerCapabiliesMaskSymbol] || 0)); |
| 231 }, | 238 }, |
| 232 | 239 |
| 233 /** | 240 /** |
| 234 * @param {!WebInspector.Target} target | 241 * @param {!WebInspector.Target} target |
| 235 */ | 242 */ |
| 236 addTarget: function(target) | 243 addTarget: function(target) |
| 237 { | 244 { |
| 238 this._targets.push(target); | 245 this._targets.push(target); |
| 239 if (this._targets.length === 1) { | 246 var resourceTreeModel = WebInspector.ResourceTreeModel.fromTarget(target
); |
| 240 target.resourceTreeModel.addEventListener(WebInspector.ResourceTreeM
odel.EventTypes.MainFrameNavigated, this._redispatchEvent, this); | 247 if (this._targets.length === 1 && resourceTreeModel) { |
| 241 target.resourceTreeModel.addEventListener(WebInspector.ResourceTreeM
odel.EventTypes.Load, this._redispatchEvent, this); | 248 var events = [ |
| 242 target.resourceTreeModel.addEventListener(WebInspector.ResourceTreeM
odel.EventTypes.PageReloadRequested, this._redispatchEvent, this); | 249 WebInspector.ResourceTreeModel.EventTypes.MainFrameNavigated, |
| 243 target.resourceTreeModel.addEventListener(WebInspector.ResourceTreeM
odel.EventTypes.WillReloadPage, this._redispatchEvent, this); | 250 WebInspector.ResourceTreeModel.EventTypes.Load, |
| 251 WebInspector.ResourceTreeModel.EventTypes.PageReloadRequested, |
| 252 WebInspector.ResourceTreeModel.EventTypes.WillReloadPage |
| 253 ]; |
| 254 resourceTreeModel[WebInspector.TargetManager._listenersSymbol] = |
| 255 events.map((event) => resourceTreeModel.addEventListener(event,
this._redispatchEvent, this)); |
| 244 } | 256 } |
| 245 var copy = this._observersForTarget(target); | 257 var copy = this._observersForTarget(target); |
| 246 for (var i = 0; i < copy.length; ++i) | 258 for (var i = 0; i < copy.length; ++i) |
| 247 copy[i].targetAdded(target); | 259 copy[i].targetAdded(target); |
| 248 | 260 |
| 249 for (var eventType in this._modelListeners) { | 261 for (var eventType in this._modelListeners) { |
| 250 var listeners = this._modelListeners[eventType]; | 262 var listeners = this._modelListeners[eventType]; |
| 251 for (var i = 0; i < listeners.length; ++i) { | 263 for (var i = 0; i < listeners.length; ++i) { |
| 252 var model = target.model(listeners[i].modelClass); | 264 var model = target.model(listeners[i].modelClass); |
| 253 if (model) | 265 if (model) |
| 254 model.addEventListener(eventType, listeners[i].listener, lis
teners[i].thisObject); | 266 model.addEventListener(eventType, listeners[i].listener, lis
teners[i].thisObject); |
| 255 } | 267 } |
| 256 } | 268 } |
| 257 }, | 269 }, |
| 258 | 270 |
| 259 /** | 271 /** |
| 260 * @param {!WebInspector.Target} target | 272 * @param {!WebInspector.Target} target |
| 261 */ | 273 */ |
| 262 removeTarget: function(target) | 274 removeTarget: function(target) |
| 263 { | 275 { |
| 264 this._targets.remove(target); | 276 this._targets.remove(target); |
| 265 if (this._targets.length === 0) { | 277 var resourceTreeModel = WebInspector.ResourceTreeModel.fromTarget(target
); |
| 266 target.resourceTreeModel.removeEventListener(WebInspector.ResourceTr
eeModel.EventTypes.MainFrameNavigated, this._redispatchEvent, this); | 278 var treeModelListeners = resourceTreeModel && resourceTreeModel[WebInspe
ctor.TargetManager._listenersSymbol]; |
| 267 target.resourceTreeModel.removeEventListener(WebInspector.ResourceTr
eeModel.EventTypes.Load, this._redispatchEvent, this); | 279 if (treeModelListeners) |
| 268 target.resourceTreeModel.removeEventListener(WebInspector.ResourceTr
eeModel.EventTypes.WillReloadPage, this._redispatchEvent, this); | 280 WebInspector.EventTarget.removeEventListeners(treeModelListeners); |
| 269 } | 281 |
| 270 var copy = this._observersForTarget(target); | 282 var copy = this._observersForTarget(target); |
| 271 for (var i = 0; i < copy.length; ++i) | 283 for (var i = 0; i < copy.length; ++i) |
| 272 copy[i].targetRemoved(target); | 284 copy[i].targetRemoved(target); |
| 273 | 285 |
| 274 for (var eventType in this._modelListeners) { | 286 for (var eventType in this._modelListeners) { |
| 275 var listeners = this._modelListeners[eventType]; | 287 var listeners = this._modelListeners[eventType]; |
| 276 for (var i = 0; i < listeners.length; ++i) { | 288 for (var i = 0; i < listeners.length; ++i) { |
| 277 var model = target.model(listeners[i].modelClass); | 289 var model = target.model(listeners[i].modelClass); |
| 278 if (model) | 290 if (model) |
| 279 model.removeEventListener(eventType, listeners[i].listener,
listeners[i].thisObject); | 291 model.removeEventListener(eventType, listeners[i].listener,
listeners[i].thisObject); |
| (...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 354 /** | 366 /** |
| 355 * @param {!WebInspector.Target} target | 367 * @param {!WebInspector.Target} target |
| 356 */ | 368 */ |
| 357 targetRemoved: function(target) { }, | 369 targetRemoved: function(target) { }, |
| 358 } | 370 } |
| 359 | 371 |
| 360 /** | 372 /** |
| 361 * @type {!WebInspector.TargetManager} | 373 * @type {!WebInspector.TargetManager} |
| 362 */ | 374 */ |
| 363 WebInspector.targetManager = new WebInspector.TargetManager(); | 375 WebInspector.targetManager = new WebInspector.TargetManager(); |
| OLD | NEW |