| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/extensions/api/file_system/file_system_api.h" | 5 #include "chrome/browser/extensions/api/file_system/file_system_api.h" |
| 6 | 6 |
| 7 #include "apps/app_window.h" | 7 #include "apps/app_window.h" |
| 8 #include "apps/app_window_registry.h" | 8 #include "apps/app_window_registry.h" |
| 9 #include "apps/browser/file_handler_util.h" | 9 #include "apps/browser/file_handler_util.h" |
| 10 #include "apps/saved_files_service.h" | 10 #include "apps/saved_files_service.h" |
| (...skipping 335 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 346 } | 346 } |
| 347 | 347 |
| 348 void FileSystemEntryFunction::HandleWritableFileError( | 348 void FileSystemEntryFunction::HandleWritableFileError( |
| 349 const base::FilePath& error_path) { | 349 const base::FilePath& error_path) { |
| 350 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); | 350 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); |
| 351 error_ = base::StringPrintf(kWritableFileErrorFormat, | 351 error_ = base::StringPrintf(kWritableFileErrorFormat, |
| 352 error_path.BaseName().AsUTF8Unsafe().c_str()); | 352 error_path.BaseName().AsUTF8Unsafe().c_str()); |
| 353 SendResponse(false); | 353 SendResponse(false); |
| 354 } | 354 } |
| 355 | 355 |
| 356 bool FileSystemGetWritableEntryFunction::RunImpl() { | 356 bool FileSystemGetWritableEntryFunction::RunAsync() { |
| 357 std::string filesystem_name; | 357 std::string filesystem_name; |
| 358 std::string filesystem_path; | 358 std::string filesystem_path; |
| 359 EXTENSION_FUNCTION_VALIDATE(args_->GetString(0, &filesystem_name)); | 359 EXTENSION_FUNCTION_VALIDATE(args_->GetString(0, &filesystem_name)); |
| 360 EXTENSION_FUNCTION_VALIDATE(args_->GetString(1, &filesystem_path)); | 360 EXTENSION_FUNCTION_VALIDATE(args_->GetString(1, &filesystem_path)); |
| 361 | 361 |
| 362 if (!app_file_handler_util::HasFileSystemWritePermission(extension_)) { | 362 if (!app_file_handler_util::HasFileSystemWritePermission(extension_)) { |
| 363 error_ = kRequiresFileSystemWriteError; | 363 error_ = kRequiresFileSystemWriteError; |
| 364 return false; | 364 return false; |
| 365 } | 365 } |
| 366 | 366 |
| (...skipping 459 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 826 *suggested_name = suggested_name->BaseName(); | 826 *suggested_name = suggested_name->BaseName(); |
| 827 if (suggested_name->IsAbsolute()) | 827 if (suggested_name->IsAbsolute()) |
| 828 *suggested_name = base::FilePath(); | 828 *suggested_name = base::FilePath(); |
| 829 | 829 |
| 830 *suggested_extension = suggested_name->Extension(); | 830 *suggested_extension = suggested_name->Extension(); |
| 831 if (!suggested_extension->empty()) | 831 if (!suggested_extension->empty()) |
| 832 suggested_extension->erase(suggested_extension->begin()); // drop the . | 832 suggested_extension->erase(suggested_extension->begin()); // drop the . |
| 833 } | 833 } |
| 834 } | 834 } |
| 835 | 835 |
| 836 bool FileSystemChooseEntryFunction::RunImpl() { | 836 bool FileSystemChooseEntryFunction::RunAsync() { |
| 837 scoped_ptr<ChooseEntry::Params> params(ChooseEntry::Params::Create(*args_)); | 837 scoped_ptr<ChooseEntry::Params> params(ChooseEntry::Params::Create(*args_)); |
| 838 EXTENSION_FUNCTION_VALIDATE(params.get()); | 838 EXTENSION_FUNCTION_VALIDATE(params.get()); |
| 839 | 839 |
| 840 base::FilePath suggested_name; | 840 base::FilePath suggested_name; |
| 841 ui::SelectFileDialog::FileTypeInfo file_type_info; | 841 ui::SelectFileDialog::FileTypeInfo file_type_info; |
| 842 ui::SelectFileDialog::Type picker_type = | 842 ui::SelectFileDialog::Type picker_type = |
| 843 ui::SelectFileDialog::SELECT_OPEN_FILE; | 843 ui::SelectFileDialog::SELECT_OPEN_FILE; |
| 844 | 844 |
| 845 file_system::ChooseEntryOptions* options = params->options.get(); | 845 file_system::ChooseEntryOptions* options = params->options.get(); |
| 846 if (options) { | 846 if (options) { |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 895 this, | 895 this, |
| 896 suggested_name, | 896 suggested_name, |
| 897 previous_path), | 897 previous_path), |
| 898 base::Bind(&FileSystemChooseEntryFunction::ShowPicker, | 898 base::Bind(&FileSystemChooseEntryFunction::ShowPicker, |
| 899 this, | 899 this, |
| 900 file_type_info, | 900 file_type_info, |
| 901 picker_type)); | 901 picker_type)); |
| 902 return true; | 902 return true; |
| 903 } | 903 } |
| 904 | 904 |
| 905 bool FileSystemRetainEntryFunction::RunImpl() { | 905 bool FileSystemRetainEntryFunction::RunAsync() { |
| 906 std::string entry_id; | 906 std::string entry_id; |
| 907 EXTENSION_FUNCTION_VALIDATE(args_->GetString(0, &entry_id)); | 907 EXTENSION_FUNCTION_VALIDATE(args_->GetString(0, &entry_id)); |
| 908 SavedFilesService* saved_files_service = SavedFilesService::Get(GetProfile()); | 908 SavedFilesService* saved_files_service = SavedFilesService::Get(GetProfile()); |
| 909 // Add the file to the retain list if it is not already on there. | 909 // Add the file to the retain list if it is not already on there. |
| 910 if (!saved_files_service->IsRegistered(extension_->id(), entry_id)) { | 910 if (!saved_files_service->IsRegistered(extension_->id(), entry_id)) { |
| 911 std::string filesystem_name; | 911 std::string filesystem_name; |
| 912 std::string filesystem_path; | 912 std::string filesystem_path; |
| 913 EXTENSION_FUNCTION_VALIDATE(args_->GetString(1, &filesystem_name)); | 913 EXTENSION_FUNCTION_VALIDATE(args_->GetString(1, &filesystem_name)); |
| 914 EXTENSION_FUNCTION_VALIDATE(args_->GetString(2, &filesystem_path)); | 914 EXTENSION_FUNCTION_VALIDATE(args_->GetString(2, &filesystem_path)); |
| 915 if (!app_file_handler_util::ValidateFileEntryAndGetPath(filesystem_name, | 915 if (!app_file_handler_util::ValidateFileEntryAndGetPath(filesystem_name, |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 950 } | 950 } |
| 951 | 951 |
| 952 bool FileSystemIsRestorableFunction::RunSync() { | 952 bool FileSystemIsRestorableFunction::RunSync() { |
| 953 std::string entry_id; | 953 std::string entry_id; |
| 954 EXTENSION_FUNCTION_VALIDATE(args_->GetString(0, &entry_id)); | 954 EXTENSION_FUNCTION_VALIDATE(args_->GetString(0, &entry_id)); |
| 955 SetResult(new base::FundamentalValue(SavedFilesService::Get( | 955 SetResult(new base::FundamentalValue(SavedFilesService::Get( |
| 956 GetProfile())->IsRegistered(extension_->id(), entry_id))); | 956 GetProfile())->IsRegistered(extension_->id(), entry_id))); |
| 957 return true; | 957 return true; |
| 958 } | 958 } |
| 959 | 959 |
| 960 bool FileSystemRestoreEntryFunction::RunImpl() { | 960 bool FileSystemRestoreEntryFunction::RunAsync() { |
| 961 std::string entry_id; | 961 std::string entry_id; |
| 962 bool needs_new_entry; | 962 bool needs_new_entry; |
| 963 EXTENSION_FUNCTION_VALIDATE(args_->GetString(0, &entry_id)); | 963 EXTENSION_FUNCTION_VALIDATE(args_->GetString(0, &entry_id)); |
| 964 EXTENSION_FUNCTION_VALIDATE(args_->GetBoolean(1, &needs_new_entry)); | 964 EXTENSION_FUNCTION_VALIDATE(args_->GetBoolean(1, &needs_new_entry)); |
| 965 const SavedFileEntry* file_entry = SavedFilesService::Get( | 965 const SavedFileEntry* file_entry = SavedFilesService::Get( |
| 966 GetProfile())->GetFileEntry(extension_->id(), entry_id); | 966 GetProfile())->GetFileEntry(extension_->id(), entry_id); |
| 967 if (!file_entry) { | 967 if (!file_entry) { |
| 968 error_ = kUnknownIdError; | 968 error_ = kUnknownIdError; |
| 969 return false; | 969 return false; |
| 970 } | 970 } |
| 971 | 971 |
| 972 SavedFilesService::Get(GetProfile()) | 972 SavedFilesService::Get(GetProfile()) |
| 973 ->EnqueueFileEntry(extension_->id(), entry_id); | 973 ->EnqueueFileEntry(extension_->id(), entry_id); |
| 974 | 974 |
| 975 // Only create a new file entry if the renderer requests one. | 975 // Only create a new file entry if the renderer requests one. |
| 976 // |needs_new_entry| will be false if the renderer already has an Entry for | 976 // |needs_new_entry| will be false if the renderer already has an Entry for |
| 977 // |entry_id|. | 977 // |entry_id|. |
| 978 if (needs_new_entry) { | 978 if (needs_new_entry) { |
| 979 is_directory_ = file_entry->is_directory; | 979 is_directory_ = file_entry->is_directory; |
| 980 CreateResponse(); | 980 CreateResponse(); |
| 981 AddEntryToResponse(file_entry->path, file_entry->id); | 981 AddEntryToResponse(file_entry->path, file_entry->id); |
| 982 } | 982 } |
| 983 SendResponse(true); | 983 SendResponse(true); |
| 984 return true; | 984 return true; |
| 985 } | 985 } |
| 986 | 986 |
| 987 } // namespace extensions | 987 } // namespace extensions |
| OLD | NEW |