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

Unified Diff: third_party/WebKit/Source/devtools/front_end/sources/UISourceCodeFrame.js

Issue 2530483002: DevTools: teach UISourceCodeFrame to merge messages (Closed)
Patch Set: improve test Created 4 years, 1 month 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
« no previous file with comments | « third_party/WebKit/LayoutTests/inspector/sources/compile-javascript-expected.txt ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/WebKit/Source/devtools/front_end/sources/UISourceCodeFrame.js
diff --git a/third_party/WebKit/Source/devtools/front_end/sources/UISourceCodeFrame.js b/third_party/WebKit/Source/devtools/front_end/sources/UISourceCodeFrame.js
index cb1ed89bb6951753d039414d678caaa09b48ccaf..96fda394c6147a6c926286efdedda7dac51f7b64 100644
--- a/third_party/WebKit/Source/devtools/front_end/sources/UISourceCodeFrame.js
+++ b/third_party/WebKit/Source/devtools/front_end/sources/UISourceCodeFrame.js
@@ -46,6 +46,9 @@ Sources.UISourceCodeFrame = class extends SourceFrame.SourceFrame {
Common.moduleSetting('textEditorAutocompletion').addChangeListener(this._updateAutocomplete, this);
this._updateAutocomplete();
+ /** @type {?Persistence.PersistenceBinding} */
+ this._persistenceBinding = Persistence.persistence.binding(uiSourceCode);
+
/** @type {!Map<number, !Sources.UISourceCodeFrame.RowMessageBucket>} */
this._rowMessageBuckets = new Map();
/** @type {!Set<string>} */
@@ -54,12 +57,10 @@ Sources.UISourceCodeFrame = class extends SourceFrame.SourceFrame {
Workspace.UISourceCode.Events.WorkingCopyChanged, this._onWorkingCopyChanged, this);
this._uiSourceCode.addEventListener(
Workspace.UISourceCode.Events.WorkingCopyCommitted, this._onWorkingCopyCommitted, this);
- this._uiSourceCode.addEventListener(Workspace.UISourceCode.Events.MessageAdded, this._onMessageAdded, this);
- this._uiSourceCode.addEventListener(Workspace.UISourceCode.Events.MessageRemoved, this._onMessageRemoved, this);
- this._uiSourceCode.addEventListener(
- Workspace.UISourceCode.Events.LineDecorationAdded, this._onLineDecorationAdded, this);
- this._uiSourceCode.addEventListener(
- Workspace.UISourceCode.Events.LineDecorationRemoved, this._onLineDecorationRemoved, this);
+
+ this._messageAndDecorationListeners = [];
+ this._installMessageAndDecorationListeners();
+
Persistence.persistence.addEventListener(
Persistence.Persistence.Events.BindingCreated, this._onBindingChanged, this);
Persistence.persistence.addEventListener(
@@ -89,6 +90,34 @@ Sources.UISourceCodeFrame = class extends SourceFrame.SourceFrame {
}
}
+ _installMessageAndDecorationListeners() {
+ if (this._persistenceBinding) {
+ var networkSourceCode = this._persistenceBinding.network;
+ var fileSystemSourceCode = this._persistenceBinding.fileSystem;
+ this._messageAndDecorationListeners = [
+ networkSourceCode.addEventListener(Workspace.UISourceCode.Events.MessageAdded, this._onMessageAdded, this),
+ networkSourceCode.addEventListener(Workspace.UISourceCode.Events.MessageRemoved, this._onMessageRemoved, this),
+ networkSourceCode.addEventListener(
+ Workspace.UISourceCode.Events.LineDecorationAdded, this._onLineDecorationAdded, this),
+ networkSourceCode.addEventListener(
+ Workspace.UISourceCode.Events.LineDecorationRemoved, this._onLineDecorationRemoved, this),
+
+ fileSystemSourceCode.addEventListener(Workspace.UISourceCode.Events.MessageAdded, this._onMessageAdded, this),
+ fileSystemSourceCode.addEventListener(
+ Workspace.UISourceCode.Events.MessageRemoved, this._onMessageRemoved, this),
+ ];
+ } else {
+ this._messageAndDecorationListeners = [
+ this._uiSourceCode.addEventListener(Workspace.UISourceCode.Events.MessageAdded, this._onMessageAdded, this),
+ this._uiSourceCode.addEventListener(Workspace.UISourceCode.Events.MessageRemoved, this._onMessageRemoved, this),
+ this._uiSourceCode.addEventListener(
+ Workspace.UISourceCode.Events.LineDecorationAdded, this._onLineDecorationAdded, this),
+ this._uiSourceCode.addEventListener(
+ Workspace.UISourceCode.Events.LineDecorationRemoved, this._onLineDecorationRemoved, this)
+ ];
+ }
+ }
+
/**
* @return {!Workspace.UISourceCode}
*/
@@ -161,12 +190,21 @@ Sources.UISourceCodeFrame = class extends SourceFrame.SourceFrame {
if (this._diff)
this._diff.updateDiffMarkersImmediately();
super.onTextEditorContentSet();
- for (var message of this._uiSourceCode.messages())
+ for (var message of this._allMessages())
this._addMessageToSource(message);
this._decorateAllTypes();
}
/**
+ * @return {!Array<!Workspace.UISourceCode.Message>}
+ */
+ _allMessages() {
+ return this._persistenceBinding ?
+ this._persistenceBinding.network.messages().concat(this._persistenceBinding.fileSystem.messages()) :
+ this._uiSourceCode.messages();
+ }
+
+ /**
* @override
* @param {!Common.TextRange} oldRange
* @param {!Common.TextRange} newRange
@@ -208,13 +246,21 @@ Sources.UISourceCodeFrame = class extends SourceFrame.SourceFrame {
this._updateStyle();
}
- /**
- * @param {!Common.Event} event
- */
- _onBindingChanged(event) {
- var binding = /** @type {!Persistence.PersistenceBinding} */ (event.data);
- if (binding.network === this._uiSourceCode || binding.fileSystem === this._uiSourceCode)
- this._updateStyle();
+ _onBindingChanged() {
+ var binding = Persistence.persistence.binding(this._uiSourceCode);
+ if (binding === this._persistenceBinding)
+ return;
+ for (var message of this._allMessages())
+ this._removeMessageFromSource(message);
+ Common.EventTarget.removeEventListeners(this._messageAndDecorationListeners);
+
+ this._persistenceBinding = binding;
+
+ for (var message of this._allMessages())
+ this._addMessageToSource(message);
+ this._installMessageAndDecorationListeners();
+ this._updateStyle();
+ this._decorateAllTypes();
}
_updateStyle() {
@@ -296,8 +342,6 @@ Sources.UISourceCodeFrame = class extends SourceFrame.SourceFrame {
* @param {!Common.Event} event
*/
_onMessageAdded(event) {
- if (!this.loaded)
- return;
var message = /** @type {!Workspace.UISourceCode.Message} */ (event.data);
this._addMessageToSource(message);
}
@@ -306,6 +350,8 @@ Sources.UISourceCodeFrame = class extends SourceFrame.SourceFrame {
* @param {!Workspace.UISourceCode.Message} message
*/
_addMessageToSource(message) {
+ if (!this.loaded)
+ return;
var lineNumber = message.lineNumber();
if (lineNumber >= this._textEditor.linesCount)
lineNumber = this._textEditor.linesCount - 1;
@@ -324,8 +370,6 @@ Sources.UISourceCodeFrame = class extends SourceFrame.SourceFrame {
* @param {!Common.Event} event
*/
_onMessageRemoved(event) {
- if (!this.loaded)
- return;
var message = /** @type {!Workspace.UISourceCode.Message} */ (event.data);
this._removeMessageFromSource(message);
}
@@ -334,6 +378,9 @@ Sources.UISourceCodeFrame = class extends SourceFrame.SourceFrame {
* @param {!Workspace.UISourceCode.Message} message
*/
_removeMessageFromSource(message) {
+ if (!this.loaded)
+ return;
+
var lineNumber = message.lineNumber();
if (lineNumber >= this._textEditor.linesCount)
lineNumber = this._textEditor.linesCount - 1;
@@ -409,7 +456,8 @@ Sources.UISourceCodeFrame = class extends SourceFrame.SourceFrame {
.instance()
.then(decorator => {
this._typeDecorationsPending.delete(type);
- decorator.decorate(this.uiSourceCode(), this._textEditor);
+ decorator.decorate(
+ this._persistenceBinding ? this._persistenceBinding.network : this.uiSourceCode(), this._textEditor);
});
}
« no previous file with comments | « third_party/WebKit/LayoutTests/inspector/sources/compile-javascript-expected.txt ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698