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

Unified Diff: chrome/browser/chromeos/arc/fileapi/arc_documents_provider_root.cc

Issue 2580713004: mediaview: Implement ArcDocumentsProviderBackendDelegate. (Closed)
Patch Set: ThreadChecker failure fix. Created 4 years 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: chrome/browser/chromeos/arc/fileapi/arc_documents_provider_root.cc
diff --git a/chrome/browser/chromeos/arc/fileapi/arc_documents_provider_root.cc b/chrome/browser/chromeos/arc/fileapi/arc_documents_provider_root.cc
index 87cd8b468a6bbee5625dbac532e12596cd8922d3..91443f6441e5e3fdba1acfeace607466a8bea476 100644
--- a/chrome/browser/chromeos/arc/fileapi/arc_documents_provider_root.cc
+++ b/chrome/browser/chromeos/arc/fileapi/arc_documents_provider_root.cc
@@ -78,6 +78,22 @@ void ArcDocumentsProviderRoot::ReadDirectory(
weak_ptr_factory_.GetWeakPtr(), path, callback));
}
+void ArcDocumentsProviderRoot::ResolveToContentUrl(
+ const base::FilePath& path,
+ const ResolveToContentUrlCallback& callback) {
+ DCHECK_CURRENTLY_ON(BrowserThread::IO);
+ // Skip a cache update if possible.
+ ArcDocumentsProviderDocument* entry = root_directory_->Lookup(path);
+ if (entry) {
+ ResolveToContentUrlAfterCacheUpdate(path, callback);
+ return;
+ }
+ UpdateDirectoryCacheUpTo(
+ path,
+ base::Bind(&ArcDocumentsProviderRoot::ResolveToContentUrlAfterCacheUpdate,
+ weak_ptr_factory_.GetWeakPtr(), path, callback));
+}
+
void ArcDocumentsProviderRoot::GetFileInfoAfterCacheUpdate(
const base::FilePath& path,
const GetFileInfoCallback& callback) {
@@ -157,6 +173,18 @@ void ArcDocumentsProviderRoot::ReadDirectoryWithChildDocuments(
callback.Run(base::File::FILE_OK, entry_list, false /* has_more */);
}
+void ArcDocumentsProviderRoot::ResolveToContentUrlAfterCacheUpdate(
+ const base::FilePath& path,
+ const ResolveToContentUrlCallback& callback) {
+ DCHECK_CURRENTLY_ON(BrowserThread::IO);
+ ArcDocumentsProviderDocument* entry = root_directory_->Lookup(path);
+ if (!entry) {
+ callback.Run(GURL());
+ return;
+ }
+ callback.Run(BuildDocumentUrl(authority_, entry->document_id()));
+}
+
void ArcDocumentsProviderRoot::UpdateDirectoryCacheUpTo(
const base::FilePath& path,
const base::Closure& callback) {

Powered by Google App Engine
This is Rietveld 408576698