| Index: third_party/WebKit/Source/devtools/front_end/workspace/UISourceCode.js
|
| diff --git a/third_party/WebKit/Source/devtools/front_end/workspace/UISourceCode.js b/third_party/WebKit/Source/devtools/front_end/workspace/UISourceCode.js
|
| index 0979e6e0b301302803df054450025f58d676a19e..7872902a8c3287ff3140427ab810e47d36659a70 100644
|
| --- a/third_party/WebKit/Source/devtools/front_end/workspace/UISourceCode.js
|
| +++ b/third_party/WebKit/Source/devtools/front_end/workspace/UISourceCode.js
|
| @@ -56,8 +56,6 @@ Workspace.UISourceCode = class extends Common.Object {
|
| }
|
|
|
| this._contentType = contentType;
|
| - /** @type {?function(?string)} */
|
| - this._requestContentCallback = null;
|
| /** @type {?Promise<?string>} */
|
| this._requestContentPromise = null;
|
| /** @type {!Multimap<string, !Workspace.UISourceCode.LineMarker>} */
|
| @@ -68,6 +66,18 @@ Workspace.UISourceCode = class extends Common.Object {
|
|
|
| /** @type {!Array<!Workspace.UISourceCode.Message>} */
|
| this._messages = [];
|
| +
|
| + this._contentLoaded = false;
|
| + /** @type {?string} */
|
| + this._content = null;
|
| + this._forceLoadOnCheckContent = false;
|
| + this._checkingContent = false;
|
| + /** @type {?string} */
|
| + this._lastAcceptedContent = null;
|
| + /** @type {?string} */
|
| + this._workingCopy = null;
|
| + /** @type {?function() : string} */
|
| + this._workingCopyGetter = null;
|
| }
|
|
|
| /**
|
| @@ -210,15 +220,21 @@ Workspace.UISourceCode = class extends Common.Object {
|
| * @return {!Promise<?string>}
|
| */
|
| requestContent() {
|
| - if (this._content || this._contentLoaded)
|
| - return Promise.resolve(this._content);
|
| - var promise = this._requestContentPromise;
|
| - if (!promise) {
|
| - promise = new Promise(fulfill => this._requestContentCallback = fulfill);
|
| - this._requestContentPromise = promise;
|
| - this._project.requestFileContent(this, this._fireContentAvailable.bind(this));
|
| + if (this._requestContentPromise)
|
| + return this._requestContentPromise;
|
| +
|
| + if (this._contentLoaded) {
|
| + this._requestContentPromise = Promise.resolve(this._content);
|
| + } else {
|
| + var fulfill;
|
| + this._requestContentPromise = new Promise(x => fulfill = x);
|
| + this._project.requestFileContent(this, content => {
|
| + this._contentLoaded = true;
|
| + this._content = content;
|
| + fulfill(content);
|
| + });
|
| }
|
| - return promise;
|
| + return this._requestContentPromise;
|
| }
|
|
|
| checkContentUpdated() {
|
| @@ -243,11 +259,11 @@ Workspace.UISourceCode = class extends Common.Object {
|
| this.setWorkingCopy(workingCopy);
|
| return;
|
| }
|
| - if (typeof this._lastAcceptedContent === 'string' && this._lastAcceptedContent === updatedContent)
|
| + if (this._lastAcceptedContent === updatedContent)
|
| return;
|
|
|
| if (this._content === updatedContent) {
|
| - delete this._lastAcceptedContent;
|
| + this._lastAcceptedContent = null;
|
| return;
|
| }
|
|
|
| @@ -297,9 +313,10 @@ Workspace.UISourceCode = class extends Common.Object {
|
| * @param {boolean} committedByUser
|
| */
|
| _contentCommitted(content, committedByUser) {
|
| - delete this._lastAcceptedContent;
|
| + this._lastAcceptedContent = null;
|
| this._content = content;
|
| this._contentLoaded = true;
|
| + this._requestContentPromise = null;
|
|
|
| var lastRevision = this.history.length ? this.history[this.history.length - 1] : null;
|
| if (!lastRevision || lastRevision._content !== this._content) {
|
| @@ -385,11 +402,11 @@ Workspace.UISourceCode = class extends Common.Object {
|
| workingCopy() {
|
| if (this._workingCopyGetter) {
|
| this._workingCopy = this._workingCopyGetter();
|
| - delete this._workingCopyGetter;
|
| + this._workingCopyGetter = null;
|
| }
|
| if (this.isDirty())
|
| - return this._workingCopy;
|
| - return this._content;
|
| + return /** @type {string} */ (this._workingCopy);
|
| + return this._content || '';
|
| }
|
|
|
| resetWorkingCopy() {
|
| @@ -398,8 +415,8 @@ Workspace.UISourceCode = class extends Common.Object {
|
| }
|
|
|
| _innerResetWorkingCopy() {
|
| - delete this._workingCopy;
|
| - delete this._workingCopyGetter;
|
| + this._workingCopy = null;
|
| + this._workingCopyGetter = null;
|
| }
|
|
|
| /**
|
| @@ -407,10 +424,13 @@ Workspace.UISourceCode = class extends Common.Object {
|
| */
|
| setWorkingCopy(newWorkingCopy) {
|
| this._workingCopy = newWorkingCopy;
|
| - delete this._workingCopyGetter;
|
| + this._workingCopyGetter = null;
|
| this._workingCopyChanged();
|
| }
|
|
|
| + /**
|
| + * @param {function(): string } workingCopyGetter
|
| + */
|
| setWorkingCopyGetter(workingCopyGetter) {
|
| this._workingCopyGetter = workingCopyGetter;
|
| this._workingCopyChanged();
|
| @@ -427,7 +447,7 @@ Workspace.UISourceCode = class extends Common.Object {
|
| if (!this._workingCopyGetter)
|
| return;
|
| this._workingCopy = this._workingCopyGetter();
|
| - delete this._workingCopyGetter;
|
| + this._workingCopyGetter = null;
|
| }
|
|
|
| commitWorkingCopy() {
|
| @@ -439,7 +459,7 @@ Workspace.UISourceCode = class extends Common.Object {
|
| * @return {boolean}
|
| */
|
| isDirty() {
|
| - return typeof this._workingCopy !== 'undefined' || typeof this._workingCopyGetter !== 'undefined';
|
| + return this._workingCopy !== null || this._workingCopyGetter !== null;
|
| }
|
|
|
| /**
|
| @@ -482,20 +502,6 @@ Workspace.UISourceCode = class extends Common.Object {
|
| }
|
|
|
| /**
|
| - * @param {?string} content
|
| - */
|
| - _fireContentAvailable(content) {
|
| - this._contentLoaded = true;
|
| - this._content = content;
|
| -
|
| - var callback = this._requestContentCallback;
|
| - this._requestContentCallback = null;
|
| - this._requestContentPromise = null;
|
| -
|
| - callback.call(null, content);
|
| - }
|
| -
|
| - /**
|
| * @return {boolean}
|
| */
|
| contentLoaded() {
|
|
|