Chromium Code Reviews| Index: third_party/WebKit/Source/devtools/front_end/sdk/TargetManager.js |
| diff --git a/third_party/WebKit/Source/devtools/front_end/sdk/TargetManager.js b/third_party/WebKit/Source/devtools/front_end/sdk/TargetManager.js |
| index 7e09dff47441da4e36f267bab42c7633ea003b02..eb897586bc047ce88cb01d9feed5ec74104ab4e4 100644 |
| --- a/third_party/WebKit/Source/devtools/front_end/sdk/TargetManager.js |
| +++ b/third_party/WebKit/Source/devtools/front_end/sdk/TargetManager.js |
| @@ -15,7 +15,7 @@ WebInspector.TargetManager = function() |
| this._targets = []; |
| /** @type {!Array.<!WebInspector.TargetManager.Observer>} */ |
| this._observers = []; |
| - this._observerTypeSymbol = Symbol("observerType"); |
| + this._observerCapabiliesMaskSymbol = Symbol("observerCapabilitiesMask"); |
| /** @type {!Object.<string, !Array.<{modelClass: !Function, thisObject: (!Object|undefined), listener: function(!WebInspector.Event)}>>} */ |
| this._modelListeners = {}; |
| this._isSuspended = false; |
| @@ -163,14 +163,14 @@ WebInspector.TargetManager.prototype = { |
| /** |
| * @param {!WebInspector.TargetManager.Observer} targetObserver |
| - * @param {number=} type |
| + * @param {number=} capabilitiesMask |
| */ |
| - observeTargets: function(targetObserver, type) |
| + observeTargets: function(targetObserver, capabilitiesMask) |
| { |
| - if (this._observerTypeSymbol in targetObserver) |
| + if (this._observerCapabiliesMaskSymbol in targetObserver) |
| throw new Error("Observer can only be registered once"); |
| - targetObserver[this._observerTypeSymbol] = type || 0x7fff; |
| - this.targets(type).forEach(targetObserver.targetAdded.bind(targetObserver)); |
| + targetObserver[this._observerCapabiliesMaskSymbol] = capabilitiesMask || 0; |
| + this.targets(capabilitiesMask).forEach(targetObserver.targetAdded.bind(targetObserver)); |
| this._observers.push(targetObserver); |
| }, |
| @@ -179,26 +179,26 @@ WebInspector.TargetManager.prototype = { |
| */ |
| unobserveTargets: function(targetObserver) |
| { |
| - delete targetObserver[this._observerTypeSymbol]; |
| + delete targetObserver[this._observerCapabiliesMaskSymbol]; |
| this._observers.remove(targetObserver); |
| }, |
| /** |
| * @param {string} name |
| - * @param {number} type |
| + * @param {number} capabilitiesMask |
| * @param {!InspectorBackendClass.Connection} connection |
| * @param {?WebInspector.Target} parentTarget |
| * @return {!WebInspector.Target} |
| */ |
| - createTarget: function(name, type, connection, parentTarget) |
| + createTarget: function(name, capabilitiesMask, connection, parentTarget) |
| { |
| - var target = new WebInspector.Target(this, name, type, connection, parentTarget); |
| + var target = new WebInspector.Target(this, name, capabilitiesMask, connection, parentTarget); |
| /** @type {!WebInspector.ConsoleModel} */ |
| target.consoleModel = new WebInspector.ConsoleModel(target); |
| var networkManager = null; |
| - if (!target.isJSInspector()) |
| + if (target.hasNetworkDomains()) |
| networkManager = new WebInspector.NetworkManager(target); |
| /** @type {!WebInspector.ResourceTreeModel} */ |
| @@ -209,16 +209,16 @@ WebInspector.TargetManager.prototype = { |
| /** @type {!WebInspector.RuntimeModel} */ |
| target.runtimeModel = new WebInspector.RuntimeModel(target); |
| - if (target.hasJSContext()) |
| + if (target.hasJSDomains()) |
| new WebInspector.DebuggerModel(target); |
| - if (target.type() === WebInspector.Target.Type.Page) { |
| + if (target.hasBrowserDomains()) { |
| new WebInspector.DOMModel(target); |
| new WebInspector.CSSModel(target); |
| } |
| /** @type {?WebInspector.WorkerManager} */ |
| - target.workerManager = target.supportsWorkers() ? new WebInspector.WorkerManager(target) : null; |
| + target.workerManager = target.hasWorkerDomains() ? new WebInspector.WorkerManager(target) : null; |
| /** @type {!WebInspector.CPUProfilerModel} */ |
| target.cpuProfilerModel = new WebInspector.CPUProfilerModel(target); |
| /** @type {!WebInspector.HeapProfilerModel} */ |
| @@ -226,7 +226,7 @@ WebInspector.TargetManager.prototype = { |
| target.tracingManager = new WebInspector.TracingManager(target); |
| - if (target.isPage()) |
| + if (target.hasBrowserDomains()) |
| target.serviceWorkerManager = new WebInspector.ServiceWorkerManager(target); |
| this.addTarget(target); |
| @@ -234,14 +234,17 @@ WebInspector.TargetManager.prototype = { |
| }, |
| /** |
| - * @param {number} type |
| + * Returns observers matching the capabilities mask. |
|
dgozman
2016/07/12 00:34:11
We don't usually put comments like this and rely o
eostroukhov-old
2016/07/12 21:46:16
Done.
|
| + * @param {number} capabilitiesMask |
| * @return {!Array<!WebInspector.TargetManager.Observer>} |
| */ |
| - _observersByType: function(type) |
| + _observersForMask: function(capabilitiesMask) |
| { |
| var result = []; |
| for (var observer of this._observers) { |
| - if (observer[this._observerTypeSymbol] & type) |
| + var observerMask = observer[this._observerCapabiliesMaskSymbol]; |
| + // All bits should match |
| + if ((observerMask & capabilitiesMask) === observerMask) |
| result.push(observer); |
| } |
| return result; |
| @@ -260,7 +263,7 @@ WebInspector.TargetManager.prototype = { |
| target.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.PageReloadRequested, this._redispatchEvent, this); |
| target.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.WillReloadPage, this._redispatchEvent, this); |
| } |
| - var copy = this._observersByType(target.type()); |
| + var copy = this._observersForMask(target.capabilitiesMask()); |
| for (var i = 0; i < copy.length; ++i) |
| copy[i].targetAdded(target); |
| @@ -286,7 +289,7 @@ WebInspector.TargetManager.prototype = { |
| target.resourceTreeModel.removeEventListener(WebInspector.ResourceTreeModel.EventTypes.Load, this._redispatchEvent, this); |
| target.resourceTreeModel.removeEventListener(WebInspector.ResourceTreeModel.EventTypes.WillReloadPage, this._redispatchEvent, this); |
| } |
| - var copy = this._observersByType(target.type()); |
| + var copy = this._observersForMask(target.capabilitiesMask()); |
| for (var i = 0; i < copy.length; ++i) |
| copy[i].targetRemoved(target); |
| @@ -301,26 +304,26 @@ WebInspector.TargetManager.prototype = { |
| }, |
| /** |
| - * @param {number=} type |
| + * @param {number=} capabilitiesMask |
| * @return {boolean} |
| */ |
| - hasTargets: function(type) |
| + hasTargets: function(capabilitiesMask) |
| { |
| - return !!this.targets(type).length; |
| + return !!this.targets(capabilitiesMask).length; |
| }, |
| /** |
| - * @param {number=} type |
| + * @param {number=} capabilitiesMask |
| * @return {!Array.<!WebInspector.Target>} |
| */ |
| - targets: function(type) |
| + targets: function(capabilitiesMask) |
| { |
| - if (!type) |
| + if (!capabilitiesMask) |
| return this._targets.slice(); |
| var result = []; |
| for (var target of this._targets) { |
| - if (target.type() & type) |
| + if (target.capabilitiesMask() & capabilitiesMask) |
| result.push(target); |
| } |
| return result; |
| @@ -333,7 +336,7 @@ WebInspector.TargetManager.prototype = { |
| { |
| var result = []; |
| for (var target of this._targets) { |
| - if (target.hasJSContext()) |
| + if (target.hasJSDomains()) |
| result.push(target); |
| } |
| return result; |