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

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

Issue 2417083002: DevTools: introduce WI.UISourceCode.requestMetadata() (Closed)
Patch Set: normalize test + address nit Created 4 years, 2 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/FileSystemWorkspaceBinding.js
diff --git a/third_party/WebKit/Source/devtools/front_end/bindings/FileSystemWorkspaceBinding.js b/third_party/WebKit/Source/devtools/front_end/bindings/FileSystemWorkspaceBinding.js
index 9f13183667ed9807e05a740cd6c2c1adc3c6d846..90438ae393a648c59d5fda924b6b4cf2409caa78 100644
--- a/third_party/WebKit/Source/devtools/front_end/bindings/FileSystemWorkspaceBinding.js
+++ b/third_party/WebKit/Source/devtools/front_end/bindings/FileSystemWorkspaceBinding.js
@@ -207,6 +207,8 @@ WebInspector.FileSystemWorkspaceBinding.FileSystem = function(fileSystemWorkspac
this.populate();
}
+WebInspector.FileSystemWorkspaceBinding._metadata = Symbol("FileSystemWorkspaceBinding.Metadata");
+
WebInspector.FileSystemWorkspaceBinding.FileSystem.prototype = {
/**
* @return {string}
@@ -228,6 +230,32 @@ WebInspector.FileSystemWorkspaceBinding.FileSystem.prototype = {
/**
* @override
* @param {!WebInspector.UISourceCode} uiSourceCode
+ * @return {!Promise<?WebInspector.UISourceCodeMetadata>}
+ */
+ requestMetadata: function(uiSourceCode)
+ {
+ if (uiSourceCode[WebInspector.FileSystemWorkspaceBinding._metadata])
+ return uiSourceCode[WebInspector.FileSystemWorkspaceBinding._metadata];
+ var relativePath = this._filePathForUISourceCode(uiSourceCode);
+ var promise = this._fileSystem.getMetadata(relativePath).then(onMetadata);
+ uiSourceCode[WebInspector.FileSystemWorkspaceBinding._metadata] = promise;
+ return promise;
+
+ /**
+ * @param {?{modificationTime: !Date, size: number}} metadata
+ * @return {?WebInspector.UISourceCodeMetadata}
+ */
+ function onMetadata(metadata)
+ {
+ if (!metadata)
+ return null;
+ return new WebInspector.UISourceCodeMetadata(metadata.modificationTime, metadata.size);
+ }
+ },
+
+ /**
+ * @override
+ * @param {!WebInspector.UISourceCode} uiSourceCode
* @param {function(?string)} callback
*/
requestFileContent: function(uiSourceCode, callback)
@@ -533,6 +561,7 @@ WebInspector.FileSystemWorkspaceBinding.FileSystem.prototype = {
this.addUISourceCode(this.createUISourceCode(path, contentType));
return;
}
+ uiSourceCode[WebInspector.FileSystemWorkspaceBinding._metadata] = null;
uiSourceCode.checkContentUpdated();
},

Powered by Google App Engine
This is Rietveld 408576698