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
3 // found in the LICENSE file.
5 // This file provides task related API functions.
7 #ifndef CHROME_BROWSER_CHROMEOS_EXTENSIONS_FILE_MANAGER_PRIVATE_API_TASKS_H_
8 #define CHROME_BROWSER_CHROMEOS_EXTENSIONS_FILE_MANAGER_PRIVATE_API_TASKS_H_
12 #include "base/memory/scoped_ptr.h"
13 #include "chrome/browser/chromeos/extensions/file_manager/private_api_base.h"
14 #include "chrome/browser/chromeos/file_manager/file_tasks.h"
15 #include "chrome/common/extensions/api/file_browser_private.h"
21 namespace extensions {
23 namespace app_file_handler_util {
24 class MimeTypeCollector;
25 } // namespace app_file_handler_util
27 // Implements the chrome.fileBrowserPrivate.executeTask method.
28 class FileBrowserPrivateExecuteTaskFunction
29 : public LoggedAsyncExtensionFunction {
31 DECLARE_EXTENSION_FUNCTION("fileBrowserPrivate.executeTask",
32 FILEBROWSERPRIVATE_EXECUTETASK)
35 virtual ~FileBrowserPrivateExecuteTaskFunction() {}
37 // AsyncExtensionFunction overrides.
38 virtual bool RunAsync() OVERRIDE;
42 extensions::api::file_browser_private::TaskResult success);
45 // Implements the chrome.fileBrowserPrivate.getFileTasks method.
46 class FileBrowserPrivateGetFileTasksFunction
47 : public LoggedAsyncExtensionFunction {
49 FileBrowserPrivateGetFileTasksFunction();
51 DECLARE_EXTENSION_FUNCTION("fileBrowserPrivate.getFileTasks",
52 FILEBROWSERPRIVATE_GETFILETASKS)
55 virtual ~FileBrowserPrivateGetFileTasksFunction();
57 // AsyncExtensionFunction overrides.
58 virtual bool RunAsync() OVERRIDE;
61 void OnMimeTypesCollected(scoped_ptr<std::vector<std::string> > mime_types);
63 void OnSniffingMimeTypeCompleted(
64 scoped_ptr<app_file_handler_util::PathAndMimeTypeSet> path_mime_set,
65 scoped_ptr<std::vector<GURL> > file_urls);
67 scoped_ptr<app_file_handler_util::MimeTypeCollector> collector_;
68 std::vector<GURL> file_urls_;
69 std::vector<base::FilePath> local_paths_;
72 // Implements the chrome.fileBrowserPrivate.setDefaultTask method.
73 class FileBrowserPrivateSetDefaultTaskFunction
74 : public ChromeSyncExtensionFunction {
76 DECLARE_EXTENSION_FUNCTION("fileBrowserPrivate.setDefaultTask",
77 FILEBROWSERPRIVATE_SETDEFAULTTASK)
80 virtual ~FileBrowserPrivateSetDefaultTaskFunction() {}
82 // SyncExtensionFunction overrides.
83 virtual bool RunSync() OVERRIDE;
86 } // namespace extensions
88 #endif // CHROME_BROWSER_CHROMEOS_EXTENSIONS_FILE_MANAGER_PRIVATE_API_TASKS_H_