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

Side by Side Diff: chrome/browser/chromeos/arc/fileapi/arc_documents_provider_root.cc

Issue 2580713004: mediaview: Implement ArcDocumentsProviderBackendDelegate. (Closed)
Patch Set: Removed unused #include. Created 3 years, 11 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 unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/chromeos/arc/fileapi/arc_documents_provider_root.h" 5 #include "chrome/browser/chromeos/arc/fileapi/arc_documents_provider_root.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
11 #include "base/callback.h" 11 #include "base/callback.h"
12 #include "base/files/file.h" 12 #include "base/files/file.h"
13 #include "base/logging.h" 13 #include "base/logging.h"
14 #include "base/memory/ptr_util.h" 14 #include "base/memory/ptr_util.h"
15 #include "base/strings/string_util.h" 15 #include "base/strings/string_util.h"
16 #include "base/strings/stringprintf.h" 16 #include "base/strings/stringprintf.h"
17 #include "chrome/browser/chromeos/arc/fileapi/arc_documents_provider_util.h" 17 #include "chrome/browser/chromeos/arc/fileapi/arc_documents_provider_util.h"
18 #include "chrome/browser/chromeos/arc/fileapi/arc_file_system_instance_util.h" 18 #include "chrome/browser/chromeos/arc/fileapi/arc_file_system_instance_util.h"
19 #include "content/public/browser/browser_thread.h" 19 #include "content/public/browser/browser_thread.h"
20 #include "net/base/mime_util.h" 20 #include "net/base/mime_util.h"
21 #include "url/gurl.h"
21 22
22 using content::BrowserThread; 23 using content::BrowserThread;
23 using EntryList = storage::AsyncFileUtil::EntryList; 24 using EntryList = storage::AsyncFileUtil::EntryList;
24 25
25 namespace arc { 26 namespace arc {
26 27
27 namespace { 28 namespace {
28 29
29 // Computes a file name for a document. 30 // Computes a file name for a document.
30 // TODO(crbug.com/675868): Consolidate with the similar logic for Drive. 31 // TODO(crbug.com/675868): Consolidate with the similar logic for Drive.
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
91 92
92 void ArcDocumentsProviderRoot::ReadDirectory( 93 void ArcDocumentsProviderRoot::ReadDirectory(
93 const base::FilePath& path, 94 const base::FilePath& path,
94 const ReadDirectoryCallback& callback) { 95 const ReadDirectoryCallback& callback) {
95 DCHECK_CURRENTLY_ON(BrowserThread::IO); 96 DCHECK_CURRENTLY_ON(BrowserThread::IO);
96 ResolveToDocumentId( 97 ResolveToDocumentId(
97 path, base::Bind(&ArcDocumentsProviderRoot::ReadDirectoryWithDocumentId, 98 path, base::Bind(&ArcDocumentsProviderRoot::ReadDirectoryWithDocumentId,
98 weak_ptr_factory_.GetWeakPtr(), callback)); 99 weak_ptr_factory_.GetWeakPtr(), callback));
99 } 100 }
100 101
102 void ArcDocumentsProviderRoot::ResolveToContentUrl(
103 const base::FilePath& path,
104 const ResolveToContentUrlCallback& callback) {
105 DCHECK_CURRENTLY_ON(BrowserThread::IO);
106 ResolveToDocumentId(
107 path,
108 base::Bind(&ArcDocumentsProviderRoot::ResolveToContentUrlWithDocumentId,
109 weak_ptr_factory_.GetWeakPtr(), callback));
110 }
111
101 void ArcDocumentsProviderRoot::GetFileInfoWithDocumentId( 112 void ArcDocumentsProviderRoot::GetFileInfoWithDocumentId(
102 const GetFileInfoCallback& callback, 113 const GetFileInfoCallback& callback,
103 const std::string& document_id) { 114 const std::string& document_id) {
104 if (document_id.empty()) { 115 if (document_id.empty()) {
105 callback.Run(base::File::FILE_ERROR_NOT_FOUND, base::File::Info()); 116 callback.Run(base::File::FILE_ERROR_NOT_FOUND, base::File::Info());
106 return; 117 return;
107 } 118 }
108 file_system_instance_util::GetDocumentOnIOThread( 119 file_system_instance_util::GetDocumentOnIOThread(
109 authority_, document_id, 120 authority_, document_id,
110 base::Bind(&ArcDocumentsProviderRoot::GetFileInfoWithDocument, 121 base::Bind(&ArcDocumentsProviderRoot::GetFileInfoWithDocument,
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
155 } 166 }
156 EntryList entry_list; 167 EntryList entry_list;
157 for (const auto& pair : mapping) { 168 for (const auto& pair : mapping) {
158 entry_list.emplace_back(pair.first, pair.second.is_directory 169 entry_list.emplace_back(pair.first, pair.second.is_directory
159 ? storage::DirectoryEntry::DIRECTORY 170 ? storage::DirectoryEntry::DIRECTORY
160 : storage::DirectoryEntry::FILE); 171 : storage::DirectoryEntry::FILE);
161 } 172 }
162 callback.Run(base::File::FILE_OK, entry_list, false /* has_more */); 173 callback.Run(base::File::FILE_OK, entry_list, false /* has_more */);
163 } 174 }
164 175
176 void ArcDocumentsProviderRoot::ResolveToContentUrlWithDocumentId(
177 const ResolveToContentUrlCallback& callback,
178 const std::string& document_id) {
179 DCHECK_CURRENTLY_ON(BrowserThread::IO);
180 if (document_id.empty()) {
181 callback.Run(GURL());
182 return;
183 }
184 callback.Run(BuildDocumentUrl(authority_, document_id));
185 }
186
165 void ArcDocumentsProviderRoot::ResolveToDocumentId( 187 void ArcDocumentsProviderRoot::ResolveToDocumentId(
166 const base::FilePath& path, 188 const base::FilePath& path,
167 const ResolveToDocumentIdCallback& callback) { 189 const ResolveToDocumentIdCallback& callback) {
168 DCHECK_CURRENTLY_ON(BrowserThread::IO); 190 DCHECK_CURRENTLY_ON(BrowserThread::IO);
169 std::vector<base::FilePath::StringType> components; 191 std::vector<base::FilePath::StringType> components;
170 path.GetComponents(&components); 192 path.GetComponents(&components);
171 ResolveToDocumentIdRecursively(root_document_id_, components, callback); 193 ResolveToDocumentIdRecursively(root_document_id_, components, callback);
172 } 194 }
173 195
174 void ArcDocumentsProviderRoot::ResolveToDocumentIdRecursively( 196 void ArcDocumentsProviderRoot::ResolveToDocumentIdRecursively(
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
260 282
261 mapping[filename] = 283 mapping[filename] =
262 ThinDocument{document->document_id, 284 ThinDocument{document->document_id,
263 document->mime_type == kAndroidDirectoryMimeType}; 285 document->mime_type == kAndroidDirectoryMimeType};
264 } 286 }
265 287
266 callback.Run(base::File::FILE_OK, std::move(mapping)); 288 callback.Run(base::File::FILE_OK, std::move(mapping));
267 } 289 }
268 290
269 } // namespace arc 291 } // namespace arc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698