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

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

Issue 2748023006: [DevTools] Make ConsoleModel not inherit from SDKModel (Closed)
Patch Set: stray change Created 3 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/ConsoleModel.js
diff --git a/third_party/WebKit/Source/devtools/front_end/sdk/ConsoleModel.js b/third_party/WebKit/Source/devtools/front_end/sdk/ConsoleModel.js
index 167cb264b6ea416b219b52b4ab198c25f20ba675..f89ee53e10b066510ebb9bd5d6d1d404617e1bbd 100644
--- a/third_party/WebKit/Source/devtools/front_end/sdk/ConsoleModel.js
+++ b/third_party/WebKit/Source/devtools/front_end/sdk/ConsoleModel.js
@@ -31,12 +31,13 @@
/**
* @unrestricted
*/
-SDK.ConsoleModel = class extends SDK.SDKModel {
+SDK.ConsoleModel = class extends Common.Object {
/**
* @param {!SDK.Target} target
*/
constructor(target) {
- super(target);
+ super();
+ this._target = target;
/** @type {!Array.<!SDK.ConsoleMessage>} */
this._messages = [];
@@ -78,6 +79,13 @@ SDK.ConsoleModel = class extends SDK.SDKModel {
}
/**
+ * @return {!SDK.Target}
+ */
+ target() {
+ return this._target;
+ }
+
+ /**
* @param {!SDK.ExecutionContext} executionContext
* @param {string} text
* @param {boolean} useCommandLineAPI
@@ -89,7 +97,7 @@ SDK.ConsoleModel = class extends SDK.SDKModel {
var commandMessage = new SDK.ConsoleMessage(
target, SDK.ConsoleMessage.MessageSource.JS, null, text, SDK.ConsoleMessage.MessageType.Command);
commandMessage.setExecutionContextId(executionContext.id);
- target.consoleModel.addMessage(commandMessage);
+ SDK.multitargetConsoleModel.addMessage(commandMessage);
/**
* @param {?SDK.RemoteObject} result
@@ -101,7 +109,7 @@ SDK.ConsoleModel = class extends SDK.SDKModel {
Common.console.showPromise().then(reportUponEvaluation);
function reportUponEvaluation() {
- target.consoleModel.dispatchEventToListeners(
+ SDK.multitargetConsoleModel._consoleModels.get(target).dispatchEventToListeners(
SDK.ConsoleModel.Events.CommandEvaluated,
{result: result, text: requestedText, commandMessage: commandMessage, exceptionDetails: exceptionDetails});
}
@@ -336,8 +344,6 @@ SDK.ConsoleModel = class extends SDK.SDKModel {
}
};
-SDK.SDKModel.register(SDK.ConsoleModel, SDK.Target.Capability.None);
-
/** @enum {symbol} */
SDK.ConsoleModel.Events = {
ConsoleCleared: Symbol('ConsoleCleared'),
@@ -639,13 +645,9 @@ SDK.ConsoleMessage.MessageLevel.ordinal = function(level) {
SDK.MultitargetConsoleModel = class extends Common.Object {
constructor() {
super();
+ /** @type {!Map<!SDK.Target, !SDK.ConsoleModel>} */
+ this._consoleModels = new Map();
SDK.targetManager.observeTargets(this);
- SDK.targetManager.addModelListener(
- SDK.ConsoleModel, SDK.ConsoleModel.Events.MessageAdded, this._consoleMessageAdded, this);
- SDK.targetManager.addModelListener(
- SDK.ConsoleModel, SDK.ConsoleModel.Events.MessageUpdated, this._consoleMessageUpdated, this);
- SDK.targetManager.addModelListener(
- SDK.ConsoleModel, SDK.ConsoleModel.Events.CommandEvaluated, this._commandEvaluated, this);
}
/**
@@ -653,9 +655,17 @@ SDK.MultitargetConsoleModel = class extends Common.Object {
* @param {!SDK.Target} target
*/
targetAdded(target) {
+ var consoleModel = new SDK.ConsoleModel(target);
+ this._consoleModels.set(target, consoleModel);
+ consoleModel[SDK.MultitargetConsoleModel._events] = [
+ consoleModel.addEventListener(SDK.ConsoleModel.Events.MessageAdded, this._consoleMessageAdded, this),
+ consoleModel.addEventListener(SDK.ConsoleModel.Events.MessageUpdated, this._consoleMessageUpdated, this),
+ consoleModel.addEventListener(SDK.ConsoleModel.Events.CommandEvaluated, this._commandEvaluated, this)
+ ];
+
if (!this._mainTarget) {
this._mainTarget = target;
- target.consoleModel.addEventListener(SDK.ConsoleModel.Events.ConsoleCleared, this._consoleCleared, this);
+ consoleModel.addEventListener(SDK.ConsoleModel.Events.ConsoleCleared, this._consoleCleared, this);
}
}
@@ -664,9 +674,13 @@ SDK.MultitargetConsoleModel = class extends Common.Object {
* @param {!SDK.Target} target
*/
targetRemoved(target) {
+ var consoleModel = this._consoleModels.get(target);
+ this._consoleModels.delete(target);
+ Common.EventTarget.removeEventListeners(consoleModel[SDK.MultitargetConsoleModel._events]);
+
if (this._mainTarget === target) {
delete this._mainTarget;
- target.consoleModel.removeEventListener(SDK.ConsoleModel.Events.ConsoleCleared, this._consoleCleared, this);
+ consoleModel.removeEventListener(SDK.ConsoleModel.Events.ConsoleCleared, this._consoleCleared, this);
}
}
@@ -674,10 +688,44 @@ SDK.MultitargetConsoleModel = class extends Common.Object {
* @return {!Array.<!SDK.ConsoleMessage>}
*/
messages() {
- var targets = SDK.targetManager.targets();
var result = [];
- for (var i = 0; i < targets.length; ++i)
- result = result.concat(targets[i].consoleModel.messages());
+ for (var consoleModel of this._consoleModels.values())
+ result = result.concat(consoleModel.messages());
+ return result;
+ }
+
+ requestClearMessages() {
+ for (var consoleModel of this._consoleModels.values())
+ consoleModel.requestClearMessages();
+ }
+
+ /**
+ * @param {!SDK.ConsoleMessage} consoleMessage
+ */
+ addMessage(consoleMessage) {
+ // TODO(dgozman): make target non-nullable, as we only have messages without a target
+ // internally in ConsoleView.
+ var target = /** @type {!SDK.Target} */ (consoleMessage.target());
+ this._consoleModels.get(target).addMessage(consoleMessage);
+ }
+
+ /**
+ * @return {number}
+ */
+ errors() {
+ var result = 0;
+ for (var consoleModel of this._consoleModels.values())
+ result += consoleModel.errors();
+ return result;
+ }
+
+ /**
+ * @return {number}
+ */
+ warnings() {
+ var result = 0;
+ for (var consoleModel of this._consoleModels.values())
+ result += consoleModel.warnings();
return result;
}
@@ -707,6 +755,8 @@ SDK.MultitargetConsoleModel = class extends Common.Object {
}
};
+SDK.MultitargetConsoleModel._events = Symbol('SDK.MultitargetConsoleModel.events');
+
/**
* @type {!SDK.MultitargetConsoleModel}
*/

Powered by Google App Engine
This is Rietveld 408576698