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

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

Issue 1801293003: DevTools: Extract TargetManager into its own file (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: only public interfaces for target properties Created 4 years, 9 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: third_party/WebKit/Source/devtools/front_end/sdk/Target.js
diff --git a/third_party/WebKit/Source/devtools/front_end/sdk/Target.js b/third_party/WebKit/Source/devtools/front_end/sdk/Target.js
index ccb48e424692ea43737cd1ce7227e686e1f4d7f6..a39636d1632cb96d639a4f32d057abc2e65e87a4 100644
--- a/third_party/WebKit/Source/devtools/front_end/sdk/Target.js
+++ b/third_party/WebKit/Source/devtools/front_end/sdk/Target.js
@@ -26,37 +26,6 @@ WebInspector.Target = function(targetManager, name, type, connection, parentTarg
/** @type {!Map.<!Function, !WebInspector.SDKModel>} */
this._modelByConstructor = new Map();
-
- /** @type {!WebInspector.ConsoleModel} */
- this.consoleModel = new WebInspector.ConsoleModel(this);
- /** @type {!WebInspector.NetworkManager} */
- this.networkManager = new WebInspector.NetworkManager(this);
- /** @type {!WebInspector.ResourceTreeModel} */
- this.resourceTreeModel = new WebInspector.ResourceTreeModel(this);
- /** @type {!WebInspector.NetworkLog} */
- this.networkLog = new WebInspector.NetworkLog(this);
-
- /** @type {!WebInspector.RuntimeModel} */
- this.runtimeModel = new WebInspector.RuntimeModel(this);
- if (this.hasJSContext())
- new WebInspector.DebuggerModel(this);
-
- if (this._type === WebInspector.Target.Type.Page) {
- new WebInspector.DOMModel(this);
- new WebInspector.CSSModel(this);
- }
-
- /** @type {?WebInspector.WorkerManager} */
- this.workerManager = !this.isDedicatedWorker() ? new WebInspector.WorkerManager(this) : null;
- /** @type {!WebInspector.CPUProfilerModel} */
- this.cpuProfilerModel = new WebInspector.CPUProfilerModel(this);
- /** @type {!WebInspector.HeapProfilerModel} */
- this.heapProfilerModel = new WebInspector.HeapProfilerModel(this);
-
- this.tracingManager = new WebInspector.TracingManager(this);
-
- if (this.isPage())
- this.serviceWorkerManager = new WebInspector.ServiceWorkerManager(this);
}
/**
@@ -90,6 +59,15 @@ WebInspector.Target.prototype = {
/**
*
+ * @return {number}
+ */
+ type: function()
+ {
+ return this._type;
+ },
+
+ /**
+ *
* @return {!WebInspector.TargetManager}
*/
targetManager: function()
@@ -254,351 +232,3 @@ WebInspector.SDKModel.prototype = {
__proto__: WebInspector.SDKObject.prototype
}
-
-/**
- * @constructor
- * @extends {WebInspector.Object}
- */
-WebInspector.TargetManager = function()
-{
- WebInspector.Object.call(this);
- /** @type {!Array.<!WebInspector.Target>} */
- this._targets = [];
- /** @type {!Array.<!WebInspector.TargetManager.Observer>} */
- this._observers = [];
- this._observerTypeSymbol = Symbol("observerType");
- /** @type {!Object.<string, !Array.<{modelClass: !Function, thisObject: (!Object|undefined), listener: function(!WebInspector.Event)}>>} */
- this._modelListeners = {};
- this._isSuspended = false;
-}
-
-WebInspector.TargetManager.Events = {
- InspectedURLChanged: "InspectedURLChanged",
- MainFrameNavigated: "MainFrameNavigated",
- Load: "Load",
- PageReloadRequested: "PageReloadRequested",
- WillReloadPage: "WillReloadPage",
- TargetDisposed: "TargetDisposed",
- SuspendStateChanged: "SuspendStateChanged"
-}
-
-WebInspector.TargetManager.prototype = {
- suspendAllTargets: function()
- {
- if (this._isSuspended)
- return;
- this._isSuspended = true;
- this.dispatchEventToListeners(WebInspector.TargetManager.Events.SuspendStateChanged);
-
- for (var i = 0; i < this._targets.length; ++i) {
- for (var model of this._targets[i]._modelByConstructor.values())
- model.suspendModel();
- }
- },
-
- /**
- * @return {!Promise}
- */
- resumeAllTargets: function()
- {
- if (!this._isSuspended)
- throw new Error("Not suspended");
- this._isSuspended = false;
- this.dispatchEventToListeners(WebInspector.TargetManager.Events.SuspendStateChanged);
-
- var promises = [];
- for (var i = 0; i < this._targets.length; ++i) {
- for (var model of this._targets[i]._modelByConstructor.values())
- promises.push(model.resumeModel());
- }
- return Promise.all(promises);
- },
-
- suspendAndResumeAllTargets: function()
- {
- this.suspendAllTargets();
- this.resumeAllTargets();
- },
-
- /**
- * @return {boolean}
- */
- allTargetsSuspended: function()
- {
- return this._isSuspended;
- },
-
- /**
- * @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
- */
- _redispatchEvent: function(event)
- {
- this.dispatchEventToListeners(event.type, event.data);
- },
-
- /**
- * @param {boolean=} ignoreCache
- * @param {string=} injectedScript
- */
- reloadPage: function(ignoreCache, injectedScript)
- {
- if (this._targets.length)
- this._targets[0].resourceTreeModel.reloadPage(ignoreCache, injectedScript);
- },
-
- /**
- * @param {!Function} modelClass
- * @param {string} eventType
- * @param {function(!WebInspector.Event)} listener
- * @param {!Object=} thisObject
- */
- addModelListener: function(modelClass, eventType, listener, thisObject)
- {
- for (var i = 0; i < this._targets.length; ++i) {
- var model = this._targets[i]._modelByConstructor.get(modelClass);
- if (model)
- model.addEventListener(eventType, listener, thisObject);
- }
- if (!this._modelListeners[eventType])
- this._modelListeners[eventType] = [];
- this._modelListeners[eventType].push({ modelClass: modelClass, thisObject: thisObject, listener: listener });
- },
-
- /**
- * @param {!Function} modelClass
- * @param {string} eventType
- * @param {function(!WebInspector.Event)} listener
- * @param {!Object=} thisObject
- */
- removeModelListener: function(modelClass, eventType, listener, thisObject)
- {
- if (!this._modelListeners[eventType])
- return;
-
- for (var i = 0; i < this._targets.length; ++i) {
- var model = this._targets[i]._modelByConstructor.get(modelClass);
- if (model)
- model.removeEventListener(eventType, listener, thisObject);
- }
-
- 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._modelListeners[eventType];
- },
-
- /**
- * @param {!WebInspector.TargetManager.Observer} targetObserver
- * @param {number=} type
- */
- observeTargets: function(targetObserver, type)
- {
- if (this._observerTypeSymbol in targetObserver)
- throw new Error("Observer can only be registered once");
- targetObserver[this._observerTypeSymbol] = type || 0x7fff;
- this.targets(type).forEach(targetObserver.targetAdded.bind(targetObserver));
- this._observers.push(targetObserver);
- },
-
- /**
- * @param {!WebInspector.TargetManager.Observer} targetObserver
- */
- unobserveTargets: function(targetObserver)
- {
- delete targetObserver[this._observerTypeSymbol];
- this._observers.remove(targetObserver);
- },
-
- /**
- * @param {string} name
- * @param {number} type
- * @param {!InspectorBackendClass.Connection} connection
- * @param {?WebInspector.Target} parentTarget
- * @return {!WebInspector.Target}
- */
- createTarget: function(name, type, connection, parentTarget)
- {
- var target = new WebInspector.Target(this, name, type, connection, parentTarget);
- this.addTarget(target);
- return target;
- },
-
- /**
- * @param {number} type
- * @return {!Array<!WebInspector.TargetManager.Observer>}
- */
- _observersByType: function(type)
- {
- var result = [];
- for (var observer of this._observers) {
- if (observer[this._observerTypeSymbol] & type)
- result.push(observer);
- }
- return result;
- },
-
- /**
- * @param {!WebInspector.Target} target
- */
- addTarget: function(target)
- {
- this._targets.push(target);
- if (this._targets.length === 1) {
- target.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.InspectedURLChanged, this._redispatchEvent, this);
- target.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.MainFrameNavigated, this._redispatchEvent, this);
- target.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.Load, this._redispatchEvent, this);
- 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);
- for (var i = 0; i < copy.length; ++i)
- copy[i].targetAdded(target);
-
- 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);
- if (model)
- model.addEventListener(eventType, listeners[i].listener, listeners[i].thisObject);
- }
- }
- },
-
- /**
- * @param {!WebInspector.Target} target
- */
- removeTarget: function(target)
- {
- this._targets.remove(target);
- if (this._targets.length === 0) {
- target.resourceTreeModel.removeEventListener(WebInspector.ResourceTreeModel.EventTypes.InspectedURLChanged, this._redispatchEvent, this);
- target.resourceTreeModel.removeEventListener(WebInspector.ResourceTreeModel.EventTypes.MainFrameNavigated, this._redispatchEvent, this);
- 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);
- for (var i = 0; i < copy.length; ++i)
- copy[i].targetRemoved(target);
-
- 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);
- if (model)
- model.removeEventListener(eventType, listeners[i].listener, listeners[i].thisObject);
- }
- }
- },
-
- /**
- * @param {number=} type
- * @return {boolean}
- */
- hasTargets: function(type)
- {
- return !!this.targets(type).length;
- },
-
- /**
- * @param {number=} type
- * @return {!Array.<!WebInspector.Target>}
- */
- targets: function(type)
- {
- if (!type)
- return this._targets.slice();
-
- var result = [];
- for (var target of this._targets) {
- if (target._type & type)
- result.push(target);
- }
- return result;
- },
-
- /**
- * @return {!Array.<!WebInspector.Target>}
- */
- targetsWithJSContext: function()
- {
- var result = [];
- for (var target of this._targets) {
- if (target.hasJSContext())
- result.push(target);
- }
- return result;
- },
-
- /**
- *
- * @param {number} id
- * @return {?WebInspector.Target}
- */
- targetById: function(id)
- {
- for (var i = 0; i < this._targets.length; ++i) {
- if (this._targets[i].id() === id)
- return this._targets[i];
- }
- return null;
- },
-
- /**
- * @return {?WebInspector.Target}
- */
- mainTarget: function()
- {
- return this._targets[0] || null;
- },
-
- __proto__: WebInspector.Object.prototype
-}
-
-/**
- * @interface
- */
-WebInspector.TargetManager.Observer = function()
-{
-}
-
-WebInspector.TargetManager.Observer.prototype = {
- /**
- * @param {!WebInspector.Target} target
- */
- targetAdded: function(target) { },
-
- /**
- * @param {!WebInspector.Target} target
- */
- targetRemoved: function(target) { },
-}
-
-/**
- * @type {!WebInspector.TargetManager}
- */
-WebInspector.targetManager = new WebInspector.TargetManager();
« no previous file with comments | « third_party/WebKit/Source/devtools/devtools.gypi ('k') | third_party/WebKit/Source/devtools/front_end/sdk/TargetManager.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698