Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1884)

Unified Diff: Source/devtools/front_end/sdk/Target.js

Issue 485713002: DevTools: Use targetManager.inspectedPageUrl() instead of resourceTreeModel.inspectedPageUrl() (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Addrss comments Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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
}
/**
« no previous file with comments | « Source/devtools/front_end/network/NetworkPanel.js ('k') | Source/devtools/front_end/sources/NavigatorView.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698