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

Side by Side Diff: chrome/browser/chromeos/file_system_provider/fileapi/provider_async_file_util.cc

Issue 513683002: [fsp] Add support for providing thumbnails. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Use scoped_ptr for EntryMetadata. Created 6 years, 3 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/file_system_provider/fileapi/provider_async_fi le_util.h" 5 #include "chrome/browser/chromeos/file_system_provider/fileapi/provider_async_fi le_util.h"
6 6
7 #include "base/callback.h" 7 #include "base/callback.h"
8 #include "base/files/file.h" 8 #include "base/files/file.h"
9 #include "base/files/file_path.h" 9 #include "base/files/file_path.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 11 matching lines...) Expand all
22 namespace internal { 22 namespace internal {
23 namespace { 23 namespace {
24 24
25 // Executes GetFileInfo on the UI thread. 25 // Executes GetFileInfo on the UI thread.
26 void GetFileInfoOnUIThread( 26 void GetFileInfoOnUIThread(
27 scoped_ptr<storage::FileSystemOperationContext> context, 27 scoped_ptr<storage::FileSystemOperationContext> context,
28 const storage::FileSystemURL& url, 28 const storage::FileSystemURL& url,
29 const ProvidedFileSystemInterface::GetMetadataCallback& callback) { 29 const ProvidedFileSystemInterface::GetMetadataCallback& callback) {
30 util::FileSystemURLParser parser(url); 30 util::FileSystemURLParser parser(url);
31 if (!parser.Parse()) { 31 if (!parser.Parse()) {
32 callback.Run(EntryMetadata(), base::File::FILE_ERROR_INVALID_OPERATION); 32 callback.Run(make_scoped_ptr<EntryMetadata>(NULL),
33 base::File::FILE_ERROR_INVALID_OPERATION);
33 return; 34 return;
34 } 35 }
35 36
36 parser.file_system()->GetMetadata(parser.file_path(), callback); 37 parser.file_system()->GetMetadata(
38 parser.file_path(),
39 ProvidedFileSystemInterface::METADATA_FIELD_DEFAULT,
40 callback);
37 } 41 }
38 42
39 // Routes the response of GetFileInfo back to the IO thread with a type 43 // Routes the response of GetFileInfo back to the IO thread with a type
40 // conversion. 44 // conversion.
41 void OnGetFileInfo(const storage::AsyncFileUtil::GetFileInfoCallback& callback, 45 void OnGetFileInfo(const storage::AsyncFileUtil::GetFileInfoCallback& callback,
42 const EntryMetadata& metadata, 46 scoped_ptr<EntryMetadata> metadata,
43 base::File::Error result) { 47 base::File::Error result) {
48 if (result != base::File::FILE_OK) {
49 BrowserThread::PostTask(BrowserThread::IO,
50 FROM_HERE,
51 base::Bind(callback, result, base::File::Info()));
52 return;
53 }
54
55 DCHECK(metadata.get());
44 base::File::Info file_info; 56 base::File::Info file_info;
45 57
46 // TODO(mtomasz): Add support for last modified time and creation time. 58 // TODO(mtomasz): Add support for last modified time and creation time.
47 // See: crbug.com/388540. 59 // See: crbug.com/388540.
48 file_info.size = metadata.size; 60 file_info.size = metadata->size;
49 file_info.is_directory = metadata.is_directory; 61 file_info.is_directory = metadata->is_directory;
50 file_info.is_symbolic_link = false; // Not supported. 62 file_info.is_symbolic_link = false; // Not supported.
51 file_info.last_modified = metadata.modification_time; 63 file_info.last_modified = metadata->modification_time;
52 file_info.last_accessed = metadata.modification_time; // Not supported. 64 file_info.last_accessed = metadata->modification_time; // Not supported.
53 file_info.creation_time = metadata.modification_time; // Not supported. 65 file_info.creation_time = metadata->modification_time; // Not supported.
54 66
55 BrowserThread::PostTask( 67 BrowserThread::PostTask(BrowserThread::IO,
56 BrowserThread::IO, FROM_HERE, base::Bind(callback, result, file_info)); 68 FROM_HERE,
69 base::Bind(callback, base::File::FILE_OK, file_info));
57 } 70 }
58 71
59 // Executes ReadDirectory on the UI thread. 72 // Executes ReadDirectory on the UI thread.
60 void ReadDirectoryOnUIThread( 73 void ReadDirectoryOnUIThread(
61 scoped_ptr<storage::FileSystemOperationContext> context, 74 scoped_ptr<storage::FileSystemOperationContext> context,
62 const storage::FileSystemURL& url, 75 const storage::FileSystemURL& url,
63 const storage::AsyncFileUtil::ReadDirectoryCallback& callback) { 76 const storage::AsyncFileUtil::ReadDirectoryCallback& callback) {
64 util::FileSystemURLParser parser(url); 77 util::FileSystemURLParser parser(url);
65 if (!parser.Parse()) { 78 if (!parser.Parse()) {
66 callback.Run(base::File::FILE_ERROR_INVALID_OPERATION, 79 callback.Run(base::File::FILE_ERROR_INVALID_OPERATION,
(...skipping 372 matching lines...) Expand 10 before | Expand all | Expand 10 after
439 NOTIMPLEMENTED(); 452 NOTIMPLEMENTED();
440 callback.Run(base::File::FILE_ERROR_INVALID_OPERATION, 453 callback.Run(base::File::FILE_ERROR_INVALID_OPERATION,
441 base::File::Info(), 454 base::File::Info(),
442 base::FilePath(), 455 base::FilePath(),
443 scoped_refptr<storage::ShareableFileReference>()); 456 scoped_refptr<storage::ShareableFileReference>());
444 } 457 }
445 458
446 } // namespace internal 459 } // namespace internal
447 } // namespace file_system_provider 460 } // namespace file_system_provider
448 } // namespace chromeos 461 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698