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/chromeos/file_manager/file_tasks.h" | 5 #include "chrome/browser/chromeos/file_manager/file_tasks.h" |
6 | 6 |
7 #include "apps/launcher.h" | 7 #include "apps/launcher.h" |
8 #include "base/bind.h" | 8 #include "base/bind.h" |
9 #include "base/prefs/pref_service.h" | 9 #include "base/prefs/pref_service.h" |
10 #include "base/strings/stringprintf.h" | 10 #include "base/strings/stringprintf.h" |
(...skipping 248 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
259 task->app_id = result[0]; | 259 task->app_id = result[0]; |
260 task->task_type = task_type; | 260 task->task_type = task_type; |
261 task->action_id = result[2]; | 261 task->action_id = result[2]; |
262 | 262 |
263 return true; | 263 return true; |
264 } | 264 } |
265 | 265 |
266 bool ExecuteFileTask(Profile* profile, | 266 bool ExecuteFileTask(Profile* profile, |
267 const GURL& source_url, | 267 const GURL& source_url, |
268 const std::string& app_id, | 268 const std::string& app_id, |
269 int32 tab_id, | |
270 const TaskDescriptor& task, | 269 const TaskDescriptor& task, |
271 const std::vector<FileSystemURL>& file_urls, | 270 const std::vector<FileSystemURL>& file_urls, |
272 const FileTaskFinishedCallback& done) { | 271 const FileTaskFinishedCallback& done) { |
273 if (!FileBrowserHasAccessPermissionForFiles(profile, source_url, | 272 if (!FileBrowserHasAccessPermissionForFiles(profile, source_url, |
274 app_id, file_urls)) | 273 app_id, file_urls)) |
275 return false; | 274 return false; |
276 | 275 |
277 // drive::FileTaskExecutor is responsible to handle drive tasks. | 276 // drive::FileTaskExecutor is responsible to handle drive tasks. |
278 if (task.task_type == TASK_TYPE_DRIVE_APP) { | 277 if (task.task_type == TASK_TYPE_DRIVE_APP) { |
279 DCHECK_EQ(kDriveAppActionID, task.action_id); | 278 DCHECK_EQ(kDriveAppActionID, task.action_id); |
280 drive::FileTaskExecutor* executor = | 279 drive::FileTaskExecutor* executor = |
281 new drive::FileTaskExecutor(profile, task.app_id); | 280 new drive::FileTaskExecutor(profile, task.app_id); |
282 executor->Execute(file_urls, done); | 281 executor->Execute(file_urls, done); |
283 return true; | 282 return true; |
284 } | 283 } |
285 | 284 |
286 // Get the extension. | 285 // Get the extension. |
287 ExtensionService* service = | 286 ExtensionService* service = |
288 extensions::ExtensionSystem::Get(profile)->extension_service(); | 287 extensions::ExtensionSystem::Get(profile)->extension_service(); |
289 const Extension* extension = service ? | 288 const Extension* extension = service ? |
290 service->GetExtensionById(task.app_id, false) : NULL; | 289 service->GetExtensionById(task.app_id, false) : NULL; |
291 if (!extension) | 290 if (!extension) |
292 return false; | 291 return false; |
293 | 292 |
294 // Execute the task. | 293 // Execute the task. |
295 if (task.task_type == TASK_TYPE_FILE_BROWSER_HANDLER) { | 294 if (task.task_type == TASK_TYPE_FILE_BROWSER_HANDLER) { |
296 return file_browser_handlers::ExecuteFileBrowserHandler( | 295 return file_browser_handlers::ExecuteFileBrowserHandler( |
297 profile, | 296 profile, |
298 extension, | 297 extension, |
299 tab_id, | |
300 task.action_id, | 298 task.action_id, |
301 file_urls, | 299 file_urls, |
302 done); | 300 done); |
303 } else if (task.task_type == TASK_TYPE_FILE_HANDLER) { | 301 } else if (task.task_type == TASK_TYPE_FILE_HANDLER) { |
304 for (size_t i = 0; i != file_urls.size(); ++i) { | 302 for (size_t i = 0; i != file_urls.size(); ++i) { |
305 apps::LaunchPlatformAppWithFileHandler( | 303 apps::LaunchPlatformAppWithFileHandler( |
306 profile, extension, task.action_id, file_urls[i].path()); | 304 profile, extension, task.action_id, file_urls[i].path()); |
307 } | 305 } |
308 | 306 |
309 if (!done.is_null()) | 307 if (!done.is_null()) |
(...skipping 229 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
539 if (file_browser_handlers::IsFallbackFileBrowserHandler( | 537 if (file_browser_handlers::IsFallbackFileBrowserHandler( |
540 task->task_descriptor())) { | 538 task->task_descriptor())) { |
541 task->set_is_default(true); | 539 task->set_is_default(true); |
542 return; | 540 return; |
543 } | 541 } |
544 } | 542 } |
545 } | 543 } |
546 | 544 |
547 } // namespace file_tasks | 545 } // namespace file_tasks |
548 } // namespace file_manager | 546 } // namespace file_manager |
OLD | NEW |