Chromium Code Reviews| 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 13 matching lines...) Expand all Loading... | |
| 24 WebInspector.TargetManager.Events = { | 24 WebInspector.TargetManager.Events = { |
| 25 InspectedURLChanged: "InspectedURLChanged", | 25 InspectedURLChanged: "InspectedURLChanged", |
| 26 MainFrameNavigated: "MainFrameNavigated", | 26 MainFrameNavigated: "MainFrameNavigated", |
| 27 Load: "Load", | 27 Load: "Load", |
| 28 PageReloadRequested: "PageReloadRequested", | 28 PageReloadRequested: "PageReloadRequested", |
| 29 WillReloadPage: "WillReloadPage", | 29 WillReloadPage: "WillReloadPage", |
| 30 TargetDisposed: "TargetDisposed", | 30 TargetDisposed: "TargetDisposed", |
| 31 SuspendStateChanged: "SuspendStateChanged" | 31 SuspendStateChanged: "SuspendStateChanged" |
| 32 } | 32 } |
| 33 | 33 |
| 34 WebInspector.TargetManager._ListenersSymbol = Symbol("WebInspector.TargetManager .Listeners"); | |
|
dgozman
2016/08/19 20:23:37
style: _listenersSymbol
eostroukhov
2016/08/20 01:22:31
Done.
| |
| 35 | |
| 34 WebInspector.TargetManager.prototype = { | 36 WebInspector.TargetManager.prototype = { |
| 35 suspendAllTargets: function() | 37 suspendAllTargets: function() |
| 36 { | 38 { |
| 37 if (this._isSuspended) | 39 if (this._isSuspended) |
| 38 return; | 40 return; |
| 39 this._isSuspended = true; | 41 this._isSuspended = true; |
| 40 this.dispatchEventToListeners(WebInspector.TargetManager.Events.SuspendS tateChanged); | 42 this.dispatchEventToListeners(WebInspector.TargetManager.Events.SuspendS tateChanged); |
| 41 | 43 |
| 42 for (var i = 0; i < this._targets.length; ++i) { | 44 for (var i = 0; i < this._targets.length; ++i) { |
| 43 for (var model of this._targets[i].models()) | 45 for (var model of this._targets[i].models()) |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 92 { | 94 { |
| 93 this.dispatchEventToListeners(event.type, event.data); | 95 this.dispatchEventToListeners(event.type, event.data); |
| 94 }, | 96 }, |
| 95 | 97 |
| 96 /** | 98 /** |
| 97 * @param {boolean=} bypassCache | 99 * @param {boolean=} bypassCache |
| 98 * @param {string=} injectedScript | 100 * @param {string=} injectedScript |
| 99 */ | 101 */ |
| 100 reloadPage: function(bypassCache, injectedScript) | 102 reloadPage: function(bypassCache, injectedScript) |
| 101 { | 103 { |
| 102 if (this._targets.length) | 104 if (!this._targets.length) |
| 103 this._targets[0].resourceTreeModel.reloadPage(bypassCache, injectedS cript); | 105 return; |
| 106 | |
| 107 var resourceTreeModel = WebInspector.ResourceTreeModel.fromTarget(this._ targets[0]); | |
| 108 if (!resourceTreeModel) | |
| 109 return; | |
| 110 | |
| 111 resourceTreeModel.reloadPage(bypassCache, injectedScript); | |
| 104 }, | 112 }, |
| 105 | 113 |
| 106 /** | 114 /** |
| 107 * @param {!Function} modelClass | 115 * @param {!Function} modelClass |
| 108 * @param {string} eventType | 116 * @param {string} eventType |
| 109 * @param {function(!WebInspector.Event)} listener | 117 * @param {function(!WebInspector.Event)} listener |
| 110 * @param {!Object=} thisObject | 118 * @param {!Object=} thisObject |
| 111 */ | 119 */ |
| 112 addModelListener: function(modelClass, eventType, listener, thisObject) | 120 addModelListener: function(modelClass, eventType, listener, thisObject) |
| 113 { | 121 { |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 179 createTarget: function(name, capabilitiesMask, connection, parentTarget) | 187 createTarget: function(name, capabilitiesMask, connection, parentTarget) |
| 180 { | 188 { |
| 181 var target = new WebInspector.Target(this, name, capabilitiesMask, conne ction, parentTarget); | 189 var target = new WebInspector.Target(this, name, capabilitiesMask, conne ction, parentTarget); |
| 182 | 190 |
| 183 /** @type {!WebInspector.ConsoleModel} */ | 191 /** @type {!WebInspector.ConsoleModel} */ |
| 184 target.consoleModel = new WebInspector.ConsoleModel(target); | 192 target.consoleModel = new WebInspector.ConsoleModel(target); |
| 185 /** @type {!WebInspector.RuntimeModel} */ | 193 /** @type {!WebInspector.RuntimeModel} */ |
| 186 target.runtimeModel = new WebInspector.RuntimeModel(target); | 194 target.runtimeModel = new WebInspector.RuntimeModel(target); |
| 187 | 195 |
| 188 var networkManager = null; | 196 var networkManager = null; |
| 189 if (target.hasNetworkCapability()) | 197 var resourceTreeModel = null; |
| 198 if (target.hasNetworkCapability()) { | |
| 190 networkManager = new WebInspector.NetworkManager(target); | 199 networkManager = new WebInspector.NetworkManager(target); |
| 191 | 200 if (target.hasDOMCapability()) { |
| 192 var securityOriginManager = WebInspector.SecurityOriginManager.fromTarge t(target); | 201 var securityOriginManager = WebInspector.SecurityOriginManager.f romTarget(target); |
|
dgozman
2016/08/19 20:23:37
Inline this one?
eostroukhov
2016/08/20 01:22:31
Done.
| |
| 193 /** @type {!WebInspector.ResourceTreeModel} */ | 202 resourceTreeModel = new WebInspector.ResourceTreeModel(target, n etworkManager, securityOriginManager); |
| 194 target.resourceTreeModel = new WebInspector.ResourceTreeModel(target, ne tworkManager, securityOriginManager); | 203 new WebInspector.NetworkLog(target, resourceTreeModel, networkMa nager); |
|
dgozman
2016/08/19 20:23:37
nit: let's avoid nested if's here. Instead I propo
eostroukhov
2016/08/20 01:22:31
Done.
| |
| 195 | 204 } |
| 196 if (networkManager) | 205 } |
| 197 new WebInspector.NetworkLog(target, target.resourceTreeModel, networ kManager); | |
| 198 | 206 |
| 199 if (target.hasJSCapability()) | 207 if (target.hasJSCapability()) |
| 200 new WebInspector.DebuggerModel(target); | 208 new WebInspector.DebuggerModel(target); |
| 201 | 209 |
| 202 if (target.hasDOMCapability()) { | 210 if (resourceTreeModel) { |
|
dgozman
2016/08/19 20:23:37
Why this change? If DOMModel or CSSModel cannot wo
eostroukhov
2016/08/20 01:22:31
I was trying to do this in an earlier CL - ultimat
dgozman
2016/08/20 01:32:00
Let's add a TODO here then.
eostroukhov-old
2016/08/22 17:55:41
Done.
| |
| 203 var domModel = new WebInspector.DOMModel(target); | 211 var domModel = new WebInspector.DOMModel(target); |
| 204 new WebInspector.CSSModel(target, domModel); | 212 new WebInspector.CSSModel(target, domModel); |
| 205 } | 213 } |
| 206 | 214 |
| 207 /** @type {?WebInspector.WorkerManager} */ | 215 /** @type {?WebInspector.WorkerManager} */ |
| 208 target.workerManager = target.hasWorkerCapability() ? new WebInspector.W orkerManager(target) : null; | 216 target.workerManager = target.hasWorkerCapability() ? new WebInspector.W orkerManager(target) : null; |
| 209 /** @type {!WebInspector.CPUProfilerModel} */ | 217 /** @type {!WebInspector.CPUProfilerModel} */ |
| 210 target.cpuProfilerModel = new WebInspector.CPUProfilerModel(target); | 218 target.cpuProfilerModel = new WebInspector.CPUProfilerModel(target); |
| 211 /** @type {!WebInspector.HeapProfilerModel} */ | 219 /** @type {!WebInspector.HeapProfilerModel} */ |
| 212 target.heapProfilerModel = new WebInspector.HeapProfilerModel(target); | 220 target.heapProfilerModel = new WebInspector.HeapProfilerModel(target); |
| (...skipping 16 matching lines...) Expand all Loading... | |
| 229 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)); |
| 230 }, | 238 }, |
| 231 | 239 |
| 232 /** | 240 /** |
| 233 * @param {!WebInspector.Target} target | 241 * @param {!WebInspector.Target} target |
| 234 */ | 242 */ |
| 235 addTarget: function(target) | 243 addTarget: function(target) |
| 236 { | 244 { |
| 237 this._targets.push(target); | 245 this._targets.push(target); |
| 238 if (this._targets.length === 1) { | 246 if (this._targets.length === 1) { |
| 239 target.resourceTreeModel.addEventListener(WebInspector.ResourceTreeM odel.EventTypes.MainFrameNavigated, this._redispatchEvent, this); | 247 var resourceTreeModel = WebInspector.ResourceTreeModel.fromTarget(ta rget); |
| 240 target.resourceTreeModel.addEventListener(WebInspector.ResourceTreeM odel.EventTypes.Load, this._redispatchEvent, this); | 248 if (resourceTreeModel) { |
| 241 target.resourceTreeModel.addEventListener(WebInspector.ResourceTreeM odel.EventTypes.PageReloadRequested, this._redispatchEvent, this); | 249 var listeners = []; |
| 242 target.resourceTreeModel.addEventListener(WebInspector.ResourceTreeM odel.EventTypes.WillReloadPage, this._redispatchEvent, this); | 250 listeners.push(resourceTreeModel.addEventListener(WebInspector.R esourceTreeModel.EventTypes.MainFrameNavigated, this._redispatchEvent, this)); |
|
dgozman
2016/08/19 20:23:37
nit: instead of push, we can inline:
resourceTreeM
eostroukhov
2016/08/20 01:22:31
Done.
| |
| 251 listeners.push(resourceTreeModel.addEventListener(WebInspector.R esourceTreeModel.EventTypes.Load, this._redispatchEvent, this)); | |
| 252 listeners.push(resourceTreeModel.addEventListener(WebInspector.R esourceTreeModel.EventTypes.PageReloadRequested, this._redispatchEvent, this)); | |
| 253 listeners.push(resourceTreeModel.addEventListener(WebInspector.R esourceTreeModel.EventTypes.WillReloadPage, this._redispatchEvent, this)); | |
| 254 resourceTreeModel[WebInspector.TargetManager._ListenersSymbol] = listeners; | |
| 255 } | |
| 243 } | 256 } |
| 244 var copy = this._observersForTarget(target); | 257 var copy = this._observersForTarget(target); |
| 245 for (var i = 0; i < copy.length; ++i) | 258 for (var i = 0; i < copy.length; ++i) |
| 246 copy[i].targetAdded(target); | 259 copy[i].targetAdded(target); |
| 247 | 260 |
| 248 for (var eventType in this._modelListeners) { | 261 for (var eventType in this._modelListeners) { |
| 249 var listeners = this._modelListeners[eventType]; | 262 var listeners = this._modelListeners[eventType]; |
| 250 for (var i = 0; i < listeners.length; ++i) { | 263 for (var i = 0; i < listeners.length; ++i) { |
| 251 var model = target.model(listeners[i].modelClass); | 264 var model = target.model(listeners[i].modelClass); |
| 252 if (model) | 265 if (model) |
| 253 model.addEventListener(eventType, listeners[i].listener, lis teners[i].thisObject); | 266 model.addEventListener(eventType, listeners[i].listener, lis teners[i].thisObject); |
| 254 } | 267 } |
| 255 } | 268 } |
| 256 }, | 269 }, |
| 257 | 270 |
| 258 /** | 271 /** |
| 259 * @param {!WebInspector.Target} target | 272 * @param {!WebInspector.Target} target |
| 260 */ | 273 */ |
| 261 removeTarget: function(target) | 274 removeTarget: function(target) |
| 262 { | 275 { |
| 263 this._targets.remove(target); | 276 this._targets.remove(target); |
| 264 if (this._targets.length === 0) { | 277 var resourceTreeModel = WebInspector.ResourceTreeModel.fromTarget(target ); |
| 265 target.resourceTreeModel.removeEventListener(WebInspector.ResourceTr eeModel.EventTypes.MainFrameNavigated, this._redispatchEvent, this); | 278 var treeModelListeners = resourceTreeModel && resourceTreeModel[WebInspe ctor.TargetManager._ListenersSymbol]; |
| 266 target.resourceTreeModel.removeEventListener(WebInspector.ResourceTr eeModel.EventTypes.Load, this._redispatchEvent, this); | 279 if (treeModelListeners) |
| 267 target.resourceTreeModel.removeEventListener(WebInspector.ResourceTr eeModel.EventTypes.WillReloadPage, this._redispatchEvent, this); | 280 WebInspector.EventTarget.removeEventListeners(treeModelListeners); |
| 268 } | 281 |
| 269 var copy = this._observersForTarget(target); | 282 var copy = this._observersForTarget(target); |
| 270 for (var i = 0; i < copy.length; ++i) | 283 for (var i = 0; i < copy.length; ++i) |
| 271 copy[i].targetRemoved(target); | 284 copy[i].targetRemoved(target); |
| 272 | 285 |
| 273 for (var eventType in this._modelListeners) { | 286 for (var eventType in this._modelListeners) { |
| 274 var listeners = this._modelListeners[eventType]; | 287 var listeners = this._modelListeners[eventType]; |
| 275 for (var i = 0; i < listeners.length; ++i) { | 288 for (var i = 0; i < listeners.length; ++i) { |
| 276 var model = target.model(listeners[i].modelClass); | 289 var model = target.model(listeners[i].modelClass); |
| 277 if (model) | 290 if (model) |
| 278 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... | |
| 353 /** | 366 /** |
| 354 * @param {!WebInspector.Target} target | 367 * @param {!WebInspector.Target} target |
| 355 */ | 368 */ |
| 356 targetRemoved: function(target) { }, | 369 targetRemoved: function(target) { }, |
| 357 } | 370 } |
| 358 | 371 |
| 359 /** | 372 /** |
| 360 * @type {!WebInspector.TargetManager} | 373 * @type {!WebInspector.TargetManager} |
| 361 */ | 374 */ |
| 362 WebInspector.targetManager = new WebInspector.TargetManager(); | 375 WebInspector.targetManager = new WebInspector.TargetManager(); |
| OLD | NEW |