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

Unified Diff: third_party/WebKit/Source/devtools/front_end/bindings/PresentationConsoleMessageHelper.js

Issue 2752333002: DevTools: more efficiently dispose messages on console clear (Closed)
Patch Set: 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/bindings/PresentationConsoleMessageHelper.js
diff --git a/third_party/WebKit/Source/devtools/front_end/bindings/PresentationConsoleMessageHelper.js b/third_party/WebKit/Source/devtools/front_end/bindings/PresentationConsoleMessageHelper.js
index 591ba994043baab9ce405c516fa94a17e8391198..9d1320df5750b3aebe8511531c3da5fc5f958977 100644
--- a/third_party/WebKit/Source/devtools/front_end/bindings/PresentationConsoleMessageHelper.js
+++ b/third_party/WebKit/Source/devtools/front_end/bindings/PresentationConsoleMessageHelper.js
@@ -155,8 +155,20 @@ Bindings.PresentationConsoleMessageHelper = class {
_consoleCleared() {
this._pendingConsoleMessages = {};
- for (var i = 0; i < this._presentationConsoleMessages.length; ++i)
- this._presentationConsoleMessages[i].dispose();
+
+ var messageUISourceCodes = new Set();
+ var uiMessagesToRemove = new Set();
+ for (var i = 0; i < this._presentationConsoleMessages.length; ++i) {
+ var uiMessage = this._presentationConsoleMessages[i].uiMessage();
+ if (uiMessage) {
+ messageUISourceCodes.add(uiMessage.uiSourceCode());
+ uiMessagesToRemove.add(uiMessage);
+ }
+ }
+
+ for (var uiSourceCode of messageUISourceCodes)
+ uiSourceCode.removeMessages(uiMessagesToRemove);
+
this._presentationConsoleMessages = [];
this._locationPool.disposeAll();
}
@@ -181,6 +193,9 @@ Bindings.PresentationConsoleMessage = class {
Workspace.UISourceCode.Message.Level.Error :
Workspace.UISourceCode.Message.Level.Warning;
Bindings.debuggerWorkspaceBinding.createLiveLocation(rawLocation, this._updateLocation.bind(this), locationPool);
+
+ /** @type {!Workspace.UISourceCode.Message|undefined} */
+ this._uiMessage;
}
/**
@@ -196,9 +211,11 @@ Bindings.PresentationConsoleMessage = class {
uiLocation.uiSourceCode.addLineMessage(this._level, this._text, uiLocation.lineNumber, uiLocation.columnNumber);
}
- dispose() {
- if (this._uiMessage)
- this._uiMessage.remove();
+ /**
+ * @return {!Workspace.UISourceCode.Message|undefined}
+ */
+ uiMessage() {
+ return this._uiMessage;
}
};

Powered by Google App Engine
This is Rietveld 408576698