Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / chromeos / extensions / file_manager / private_api_tasks.h
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.
4 //
5 // This file provides task related API functions.
6
7 #ifndef CHROME_BROWSER_CHROMEOS_EXTENSIONS_FILE_MANAGER_PRIVATE_API_TASKS_H_
8 #define CHROME_BROWSER_CHROMEOS_EXTENSIONS_FILE_MANAGER_PRIVATE_API_TASKS_H_
9
10 #include <vector>
11
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_manager_private.h"
16
17 namespace base {
18 class FilePath;
19 }  // namespace base
20
21 namespace extensions {
22
23 namespace app_file_handler_util {
24 class MimeTypeCollector;
25 }  // namespace app_file_handler_util
26
27 // Implements the chrome.fileManagerPrivate.executeTask method.
28 class FileManagerPrivateExecuteTaskFunction
29     : public LoggedAsyncExtensionFunction {
30  public:
31   DECLARE_EXTENSION_FUNCTION("fileManagerPrivate.executeTask",
32                              FILEMANAGERPRIVATE_EXECUTETASK)
33
34  protected:
35   virtual ~FileManagerPrivateExecuteTaskFunction() {}
36
37   // AsyncExtensionFunction overrides.
38   virtual bool RunAsync() override;
39
40  private:
41   void OnTaskExecuted(
42       extensions::api::file_manager_private::TaskResult success);
43 };
44
45 // Implements the chrome.fileManagerPrivate.getFileTasks method.
46 class FileManagerPrivateGetFileTasksFunction
47     : public LoggedAsyncExtensionFunction {
48  public:
49   FileManagerPrivateGetFileTasksFunction();
50
51   DECLARE_EXTENSION_FUNCTION("fileManagerPrivate.getFileTasks",
52                              FILEMANAGERPRIVATE_GETFILETASKS)
53
54  protected:
55   virtual ~FileManagerPrivateGetFileTasksFunction();
56
57   // AsyncExtensionFunction overrides.
58   virtual bool RunAsync() override;
59
60  private:
61   void OnMimeTypesCollected(scoped_ptr<std::vector<std::string> > mime_types);
62
63   void OnSniffingMimeTypeCompleted(
64       scoped_ptr<app_file_handler_util::PathAndMimeTypeSet> path_mime_set,
65       scoped_ptr<std::vector<GURL> > file_urls);
66
67   scoped_ptr<app_file_handler_util::MimeTypeCollector> collector_;
68   std::vector<GURL> file_urls_;
69   std::vector<base::FilePath> local_paths_;
70 };
71
72 // Implements the chrome.fileManagerPrivate.setDefaultTask method.
73 class FileManagerPrivateSetDefaultTaskFunction
74     : public ChromeSyncExtensionFunction {
75  public:
76   DECLARE_EXTENSION_FUNCTION("fileManagerPrivate.setDefaultTask",
77                              FILEMANAGERPRIVATE_SETDEFAULTTASK)
78
79  protected:
80   virtual ~FileManagerPrivateSetDefaultTaskFunction() {}
81
82   // SyncExtensionFunction overrides.
83   virtual bool RunSync() override;
84 };
85
86 }  // namespace extensions
87
88 #endif  // CHROME_BROWSER_CHROMEOS_EXTENSIONS_FILE_MANAGER_PRIVATE_API_TASKS_H_