| 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);
|
| });
|
| }
|
|
|
|
|