OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/extensions/file_manager/private_api_tasks.h" | 5 #include "chrome/browser/chromeos/extensions/file_manager/private_api_tasks.h" |
6 | 6 |
7 #include <set> | 7 #include <set> |
8 #include <string> | 8 #include <string> |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
11 #include "chrome/browser/chromeos/drive/file_system_util.h" | 11 #include "chrome/browser/chromeos/drive/file_system_util.h" |
12 #include "chrome/browser/chromeos/file_manager/fileapi_util.h" | 12 #include "chrome/browser/chromeos/file_manager/fileapi_util.h" |
13 #include "chrome/browser/chromeos/fileapi/file_system_backend.h" | 13 #include "chrome/browser/chromeos/fileapi/file_system_backend.h" |
14 #include "chrome/browser/extensions/api/file_handlers/mime_util.h" | 14 #include "chrome/browser/extensions/api/file_handlers/mime_util.h" |
15 #include "chrome/browser/profiles/profile.h" | 15 #include "chrome/browser/profiles/profile.h" |
16 #include "content/public/browser/browser_thread.h" | 16 #include "content/public/browser/browser_thread.h" |
17 #include "net/base/filename_util.h" | 17 #include "net/base/filename_util.h" |
18 #include "webkit/browser/fileapi/file_system_context.h" | 18 #include "storage/browser/fileapi/file_system_context.h" |
19 #include "webkit/browser/fileapi/file_system_url.h" | 19 #include "storage/browser/fileapi/file_system_url.h" |
20 | 20 |
21 using content::BrowserThread; | 21 using content::BrowserThread; |
22 using fileapi::FileSystemURL; | 22 using storage::FileSystemURL; |
23 | 23 |
24 namespace extensions { | 24 namespace extensions { |
25 namespace { | 25 namespace { |
26 | 26 |
27 // Error messages. | 27 // Error messages. |
28 const char kInvalidTask[] = "Invalid task: "; | 28 const char kInvalidTask[] = "Invalid task: "; |
29 const char kInvalidFileUrl[] = "Invalid file URL"; | 29 const char kInvalidFileUrl[] = "Invalid file URL"; |
30 | 30 |
31 // Make a set of unique filename suffixes out of the list of file URLs. | 31 // Make a set of unique filename suffixes out of the list of file URLs. |
32 std::set<std::string> GetUniqueSuffixes( | 32 std::set<std::string> GetUniqueSuffixes( |
33 const std::vector<std::string>& file_url_list, | 33 const std::vector<std::string>& file_url_list, |
34 const fileapi::FileSystemContext* context) { | 34 const storage::FileSystemContext* context) { |
35 std::set<std::string> suffixes; | 35 std::set<std::string> suffixes; |
36 for (size_t i = 0; i < file_url_list.size(); ++i) { | 36 for (size_t i = 0; i < file_url_list.size(); ++i) { |
37 const FileSystemURL url = context->CrackURL(GURL(file_url_list[i])); | 37 const FileSystemURL url = context->CrackURL(GURL(file_url_list[i])); |
38 if (!url.is_valid() || url.path().empty()) | 38 if (!url.is_valid() || url.path().empty()) |
39 return std::set<std::string>(); | 39 return std::set<std::string>(); |
40 // We'll skip empty suffixes. | 40 // We'll skip empty suffixes. |
41 if (!url.path().Extension().empty()) | 41 if (!url.path().Extension().empty()) |
42 suffixes.insert(url.path().Extension()); | 42 suffixes.insert(url.path().Extension()); |
43 } | 43 } |
44 return suffixes; | 44 return suffixes; |
(...skipping 27 matching lines...) Expand all Loading... |
72 Create(extensions::api::file_browser_private::TASK_RESULT_FAILED); | 72 Create(extensions::api::file_browser_private::TASK_RESULT_FAILED); |
73 return false; | 73 return false; |
74 } | 74 } |
75 | 75 |
76 if (params->file_urls.empty()) { | 76 if (params->file_urls.empty()) { |
77 results_ = Create(extensions::api::file_browser_private::TASK_RESULT_EMPTY); | 77 results_ = Create(extensions::api::file_browser_private::TASK_RESULT_EMPTY); |
78 SendResponse(true); | 78 SendResponse(true); |
79 return true; | 79 return true; |
80 } | 80 } |
81 | 81 |
82 const scoped_refptr<fileapi::FileSystemContext> file_system_context = | 82 const scoped_refptr<storage::FileSystemContext> file_system_context = |
83 file_manager::util::GetFileSystemContextForRenderViewHost( | 83 file_manager::util::GetFileSystemContextForRenderViewHost( |
84 GetProfile(), render_view_host()); | 84 GetProfile(), render_view_host()); |
85 | 85 |
86 std::vector<FileSystemURL> file_urls; | 86 std::vector<FileSystemURL> file_urls; |
87 for (size_t i = 0; i < params->file_urls.size(); i++) { | 87 for (size_t i = 0; i < params->file_urls.size(); i++) { |
88 const FileSystemURL url = | 88 const FileSystemURL url = |
89 file_system_context->CrackURL(GURL(params->file_urls[i])); | 89 file_system_context->CrackURL(GURL(params->file_urls[i])); |
90 if (!chromeos::FileSystemBackend::CanHandleURL(url)) { | 90 if (!chromeos::FileSystemBackend::CanHandleURL(url)) { |
91 SetError(kInvalidFileUrl); | 91 SetError(kInvalidFileUrl); |
92 results_ = | 92 results_ = |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
127 } | 127 } |
128 | 128 |
129 bool FileBrowserPrivateGetFileTasksFunction::RunAsync() { | 129 bool FileBrowserPrivateGetFileTasksFunction::RunAsync() { |
130 using extensions::api::file_browser_private::GetFileTasks::Params; | 130 using extensions::api::file_browser_private::GetFileTasks::Params; |
131 const scoped_ptr<Params> params(Params::Create(*args_)); | 131 const scoped_ptr<Params> params(Params::Create(*args_)); |
132 EXTENSION_FUNCTION_VALIDATE(params); | 132 EXTENSION_FUNCTION_VALIDATE(params); |
133 | 133 |
134 if (params->file_urls.empty()) | 134 if (params->file_urls.empty()) |
135 return false; | 135 return false; |
136 | 136 |
137 const scoped_refptr<fileapi::FileSystemContext> file_system_context = | 137 const scoped_refptr<storage::FileSystemContext> file_system_context = |
138 file_manager::util::GetFileSystemContextForRenderViewHost( | 138 file_manager::util::GetFileSystemContextForRenderViewHost( |
139 GetProfile(), render_view_host()); | 139 GetProfile(), render_view_host()); |
140 | 140 |
141 // Collect all the URLs, convert them to GURLs, and crack all the urls into | 141 // Collect all the URLs, convert them to GURLs, and crack all the urls into |
142 // file paths. | 142 // file paths. |
143 for (size_t i = 0; i < params->file_urls.size(); ++i) { | 143 for (size_t i = 0; i < params->file_urls.size(); ++i) { |
144 const GURL file_url(params->file_urls[i]); | 144 const GURL file_url(params->file_urls[i]); |
145 fileapi::FileSystemURL file_system_url( | 145 storage::FileSystemURL file_system_url( |
146 file_system_context->CrackURL(file_url)); | 146 file_system_context->CrackURL(file_url)); |
147 if (!chromeos::FileSystemBackend::CanHandleURL(file_system_url)) | 147 if (!chromeos::FileSystemBackend::CanHandleURL(file_system_url)) |
148 continue; | 148 continue; |
149 file_urls_.push_back(file_url); | 149 file_urls_.push_back(file_url); |
150 local_paths_.push_back(file_system_url.path()); | 150 local_paths_.push_back(file_system_url.path()); |
151 } | 151 } |
152 | 152 |
153 collector_.reset(new app_file_handler_util::MimeTypeCollector(GetProfile())); | 153 collector_.reset(new app_file_handler_util::MimeTypeCollector(GetProfile())); |
154 collector_->CollectForLocalPaths( | 154 collector_->CollectForLocalPaths( |
155 local_paths_, | 155 local_paths_, |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
192 results_ = extensions::api::file_browser_private::GetFileTasks::Results:: | 192 results_ = extensions::api::file_browser_private::GetFileTasks::Results:: |
193 Create(results); | 193 Create(results); |
194 SendResponse(true); | 194 SendResponse(true); |
195 } | 195 } |
196 | 196 |
197 bool FileBrowserPrivateSetDefaultTaskFunction::RunSync() { | 197 bool FileBrowserPrivateSetDefaultTaskFunction::RunSync() { |
198 using extensions::api::file_browser_private::SetDefaultTask::Params; | 198 using extensions::api::file_browser_private::SetDefaultTask::Params; |
199 const scoped_ptr<Params> params(Params::Create(*args_)); | 199 const scoped_ptr<Params> params(Params::Create(*args_)); |
200 EXTENSION_FUNCTION_VALIDATE(params); | 200 EXTENSION_FUNCTION_VALIDATE(params); |
201 | 201 |
202 const scoped_refptr<fileapi::FileSystemContext> file_system_context = | 202 const scoped_refptr<storage::FileSystemContext> file_system_context = |
203 file_manager::util::GetFileSystemContextForRenderViewHost( | 203 file_manager::util::GetFileSystemContextForRenderViewHost( |
204 GetProfile(), render_view_host()); | 204 GetProfile(), render_view_host()); |
205 | 205 |
206 const std::set<std::string> suffixes = | 206 const std::set<std::string> suffixes = |
207 GetUniqueSuffixes(params->file_urls, file_system_context.get()); | 207 GetUniqueSuffixes(params->file_urls, file_system_context.get()); |
208 | 208 |
209 // MIME types are an optional parameter. | 209 // MIME types are an optional parameter. |
210 std::set<std::string> mime_types; | 210 std::set<std::string> mime_types; |
211 if (params->mime_types && !params->mime_types->empty()) { | 211 if (params->mime_types && !params->mime_types->empty()) { |
212 if (params->mime_types->size() != params->file_urls.size()) | 212 if (params->mime_types->size() != params->file_urls.size()) |
(...skipping 11 matching lines...) Expand all Loading... |
224 SetResult(new base::FundamentalValue(true)); | 224 SetResult(new base::FundamentalValue(true)); |
225 return true; | 225 return true; |
226 } | 226 } |
227 | 227 |
228 file_manager::file_tasks::UpdateDefaultTask( | 228 file_manager::file_tasks::UpdateDefaultTask( |
229 GetProfile()->GetPrefs(), params->task_id, suffixes, mime_types); | 229 GetProfile()->GetPrefs(), params->task_id, suffixes, mime_types); |
230 return true; | 230 return true; |
231 } | 231 } |
232 | 232 |
233 } // namespace extensions | 233 } // namespace extensions |
OLD | NEW |