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 89159806a01476b873783259ed228ffe53344e6b..56d3ef7de92977415eb9b079d4527deed643815f 100644 |
--- a/chrome/browser/chromeos/arc/fileapi/arc_documents_provider_root.cc |
+++ b/chrome/browser/chromeos/arc/fileapi/arc_documents_provider_root.cc |
@@ -17,6 +17,7 @@ |
#include "chrome/browser/chromeos/arc/fileapi/arc_file_system_instance_util.h" |
#include "content/public/browser/browser_thread.h" |
#include "net/base/mime_util.h" |
+#include "url/gurl.h" |
using content::BrowserThread; |
using EntryList = storage::AsyncFileUtil::EntryList; |
@@ -96,6 +97,16 @@ void ArcDocumentsProviderRoot::ReadDirectory( |
weak_ptr_factory_.GetWeakPtr(), callback)); |
} |
+void ArcDocumentsProviderRoot::ResolveToContentUrl( |
+ const base::FilePath& path, |
+ const ResolveToContentUrlCallback& callback) { |
+ DCHECK_CURRENTLY_ON(BrowserThread::IO); |
+ ResolveToDocumentId( |
+ path, |
+ base::Bind(&ArcDocumentsProviderRoot::ResolveToContentUrlWithDocumentId, |
+ weak_ptr_factory_.GetWeakPtr(), callback)); |
+} |
+ |
void ArcDocumentsProviderRoot::GetFileInfoWithDocumentId( |
const GetFileInfoCallback& callback, |
const std::string& document_id) { |
@@ -154,6 +165,17 @@ void ArcDocumentsProviderRoot::ReadDirectoryWithNameMapping( |
callback.Run(base::File::FILE_OK, entry_list, false /* has_more */); |
} |
+void ArcDocumentsProviderRoot::ResolveToContentUrlWithDocumentId( |
+ const ResolveToContentUrlCallback& callback, |
+ const std::string& document_id) { |
+ DCHECK_CURRENTLY_ON(BrowserThread::IO); |
+ if (document_id.empty()) { |
+ callback.Run(GURL()); |
+ return; |
+ } |
+ callback.Run(BuildDocumentUrl(authority_, document_id)); |
+} |
+ |
void ArcDocumentsProviderRoot::ResolveToDocumentId( |
const base::FilePath& path, |
const ResolveToDocumentIdCallback& callback) { |