Chromium Code Reviews| 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 8bdf8d8d597bb3bc567b7ce0df9c59a6836f3355..d4887d65dac1698fa0793182644c4cd52818f0e7 100644 |
| --- a/chrome/browser/chromeos/arc/fileapi/arc_documents_provider_root.cc |
| +++ b/chrome/browser/chromeos/arc/fileapi/arc_documents_provider_root.cc |
| @@ -14,8 +14,9 @@ |
| #include "base/memory/ptr_util.h" |
| #include "base/strings/string_util.h" |
| #include "base/strings/stringprintf.h" |
| +#include "base/time/time.h" |
| #include "chrome/browser/chromeos/arc/fileapi/arc_documents_provider_util.h" |
| -#include "chrome/browser/chromeos/arc/fileapi/arc_file_system_instance_util.h" |
| +#include "chrome/browser/chromeos/arc/fileapi/arc_file_system_operation_runner_util.h" |
| #include "content/public/browser/browser_thread.h" |
| #include "net/base/mime_util.h" |
| #include "url/gurl.h" |
| @@ -116,7 +117,20 @@ void ArcDocumentsProviderRoot::GetFileInfoWithDocumentId( |
| callback.Run(base::File::FILE_ERROR_NOT_FOUND, base::File::Info()); |
| return; |
| } |
| - file_system_instance_util::GetDocumentOnIOThread( |
| + // Specially handle the root directory since Files app does not update the |
| + // list of file systems (left pane) until all volumes respond to GetMetadata |
| + // requests to root directories. |
| + if (document_id == root_document_id_) { |
| + base::File::Info info; |
| + info.size = -1; |
| + info.is_directory = true; |
| + info.is_symbolic_link = false; |
| + info.last_modified = info.last_accessed = info.creation_time = |
| + base::Time::UnixEpoch(); |
|
hashimoto
2017/01/23 08:28:42
Please add a brief comment to describe why you cho
Shuhei Takahashi
2017/01/23 09:17:51
Any value should work, so I have nothing to commen
hashimoto
2017/01/24 04:05:45
Then it'd be nice to have a comment which says thi
Shuhei Takahashi
2017/01/24 04:18:04
Done.
|
| + callback.Run(base::File::FILE_OK, info); |
| + return; |
| + } |
| + file_system_operation_runner_util::GetDocumentOnIOThread( |
| authority_, document_id, |
| base::Bind(&ArcDocumentsProviderRoot::GetFileInfoWithDocument, |
| weak_ptr_factory_.GetWeakPtr(), callback)); |
| @@ -235,7 +249,7 @@ void ArcDocumentsProviderRoot:: |
| void ArcDocumentsProviderRoot::ReadDirectoryInternal( |
| const std::string& document_id, |
| const ReadDirectoryInternalCallback& callback) { |
| - file_system_instance_util::GetChildDocumentsOnIOThread( |
| + file_system_operation_runner_util::GetChildDocumentsOnIOThread( |
| authority_, document_id, |
| base::Bind( |
| &ArcDocumentsProviderRoot::ReadDirectoryInternalWithChildDocuments, |