| Index: Source/devtools/front_end/sdk/Target.js
|
| diff --git a/Source/devtools/front_end/sdk/Target.js b/Source/devtools/front_end/sdk/Target.js
|
| index 6066f7048124722d14af2210b71b389893c9e1ae..70711fca43f6c8cbf8b85cca8221056e466a803e 100644
|
| --- a/Source/devtools/front_end/sdk/Target.js
|
| +++ b/Source/devtools/front_end/sdk/Target.js
|
| @@ -260,6 +260,7 @@ WebInspector.SDKModel.prototype = {
|
|
|
| /**
|
| * @constructor
|
| + * @extends {WebInspector.Object}
|
| */
|
| WebInspector.TargetManager = function()
|
| {
|
| @@ -268,11 +269,45 @@ WebInspector.TargetManager = function()
|
| /** @type {!Array.<!WebInspector.TargetManager.Observer>} */
|
| this._observers = [];
|
| /** @type {!Object.<string, !Array.<{modelClass: !Function, thisObject: (!Object|undefined), listener: function(!WebInspector.Event)}>>} */
|
| - this._listeners = {};
|
| + this._modelListeners = {};
|
| +}
|
| +
|
| +WebInspector.TargetManager.Events = {
|
| + InspectedURLChanged: "InspectedURLChanged"
|
| }
|
|
|
| WebInspector.TargetManager.prototype = {
|
| /**
|
| + * @return {string}
|
| + */
|
| + inspectedPageURL: function()
|
| + {
|
| + if (!this._targets.length)
|
| + return "";
|
| +
|
| + return this._targets[0].resourceTreeModel.inspectedPageURL();
|
| + },
|
| +
|
| + /**
|
| + * @return {string}
|
| + */
|
| + inspectedPageDomain: function()
|
| + {
|
| + if (!this._targets.length)
|
| + return "";
|
| +
|
| + return this._targets[0].resourceTreeModel.inspectedPageDomain();
|
| + },
|
| +
|
| + /**
|
| + * @param {!WebInspector.Event} event
|
| + */
|
| + _dispatchInspectedURLChanged: function(event)
|
| + {
|
| + this.dispatchEventToListeners(WebInspector.TargetManager.Events.InspectedURLChanged, event.data);
|
| + },
|
| +
|
| + /**
|
| * @param {!Function} modelClass
|
| * @param {string} eventType
|
| * @param {function(!WebInspector.Event)} listener
|
| @@ -284,9 +319,9 @@ WebInspector.TargetManager.prototype = {
|
| var model = this._targets[i]._modelByConstructor.get(modelClass);
|
| model.addEventListener(eventType, listener, thisObject);
|
| }
|
| - if (!this._listeners[eventType])
|
| - this._listeners[eventType] = [];
|
| - this._listeners[eventType].push({ modelClass: modelClass, thisObject: thisObject, listener: listener });
|
| + if (!this._modelListeners[eventType])
|
| + this._modelListeners[eventType] = [];
|
| + this._modelListeners[eventType].push({ modelClass: modelClass, thisObject: thisObject, listener: listener });
|
| },
|
|
|
| /**
|
| @@ -297,7 +332,7 @@ WebInspector.TargetManager.prototype = {
|
| */
|
| removeModelListener: function(modelClass, eventType, listener, thisObject)
|
| {
|
| - if (!this._listeners[eventType])
|
| + if (!this._modelListeners[eventType])
|
| return;
|
|
|
| for (var i = 0; i < this._targets.length; ++i) {
|
| @@ -305,13 +340,13 @@ WebInspector.TargetManager.prototype = {
|
| model.removeEventListener(eventType, listener, thisObject);
|
| }
|
|
|
| - var listeners = this._listeners[eventType];
|
| + var listeners = this._modelListeners[eventType];
|
| for (var i = 0; i < listeners.length; ++i) {
|
| if (listeners[i].modelClass === modelClass && listeners[i].listener === listener && listeners[i].thisObject === thisObject)
|
| listeners.splice(i--, 1);
|
| }
|
| if (!listeners.length)
|
| - delete this._listeners[eventType];
|
| + delete this._modelListeners[eventType];
|
| },
|
|
|
| /**
|
| @@ -358,12 +393,15 @@ WebInspector.TargetManager.prototype = {
|
| addTarget: function(target)
|
| {
|
| this._targets.push(target);
|
| + if (this._targets.length === 1)
|
| + target.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.InspectedURLChanged, this._dispatchInspectedURLChanged, this);
|
| +
|
| var copy = this._observers.slice();
|
| for (var i = 0; i < copy.length; ++i)
|
| copy[i].targetAdded(target);
|
|
|
| - for (var eventType in this._listeners) {
|
| - var listeners = this._listeners[eventType];
|
| + for (var eventType in this._modelListeners) {
|
| + var listeners = this._modelListeners[eventType];
|
| for (var i = 0; i < listeners.length; ++i) {
|
| var model = target._modelByConstructor.get(listeners[i].modelClass);
|
| model.addEventListener(eventType, listeners[i].listener, listeners[i].thisObject);
|
| @@ -377,12 +415,15 @@ WebInspector.TargetManager.prototype = {
|
| removeTarget: function(target)
|
| {
|
| this._targets.remove(target);
|
| + if (this._targets.length === 0)
|
| + target.resourceTreeModel.removeEventListener(WebInspector.ResourceTreeModel.EventTypes.InspectedURLChanged, this._dispatchInspectedURLChanged, this);
|
| +
|
| var copy = this._observers.slice();
|
| for (var i = 0; i < copy.length; ++i)
|
| copy[i].targetRemoved(target);
|
|
|
| - for (var eventType in this._listeners) {
|
| - var listeners = this._listeners[eventType];
|
| + for (var eventType in this._modelListeners) {
|
| + var listeners = this._modelListeners[eventType];
|
| for (var i = 0; i < listeners.length; ++i) {
|
| var model = target._modelByConstructor.get(listeners[i].modelClass);
|
| model.removeEventListener(eventType, listeners[i].listener, listeners[i].thisObject);
|
| @@ -404,7 +445,9 @@ WebInspector.TargetManager.prototype = {
|
| mainTarget: function()
|
| {
|
| return this._targets[0];
|
| - }
|
| + },
|
| +
|
| + __proto__: WebInspector.Object.prototype
|
| }
|
|
|
| /**
|
|
|