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 // This file provides Drive specific API functions. | 5 // This file provides Drive specific API functions. |
6 | 6 |
7 #ifndef CHROME_BROWSER_CHROMEOS_EXTENSIONS_FILE_MANAGER_PRIVATE_API_DRIVE_H_ | 7 #ifndef CHROME_BROWSER_CHROMEOS_EXTENSIONS_FILE_MANAGER_PRIVATE_API_DRIVE_H_ |
8 #define CHROME_BROWSER_CHROMEOS_EXTENSIONS_FILE_MANAGER_PRIVATE_API_DRIVE_H_ | 8 #define CHROME_BROWSER_CHROMEOS_EXTENSIONS_FILE_MANAGER_PRIVATE_API_DRIVE_H_ |
9 | 9 |
10 #include "chrome/browser/chromeos/drive/file_errors.h" | 10 #include "chrome/browser/chromeos/drive/file_errors.h" |
11 #include "chrome/browser/chromeos/drive/file_system_interface.h" | 11 #include "chrome/browser/chromeos/drive/file_system_interface.h" |
12 #include "chrome/browser/chromeos/extensions/file_manager/private_api_base.h" | 12 #include "chrome/browser/chromeos/extensions/file_manager/private_api_base.h" |
13 | 13 |
14 namespace drive { | 14 namespace drive { |
15 class FileCacheEntry; | 15 class FileCacheEntry; |
16 class ResourceEntry; | 16 class ResourceEntry; |
17 struct DriveAppInfo; | 17 struct DriveAppInfo; |
18 struct SearchResultInfo; | 18 struct SearchResultInfo; |
19 } | 19 } |
20 | 20 |
21 namespace extensions { | 21 namespace extensions { |
22 | 22 |
23 // Retrieves property information for an entry and returns it as a dictionary. | 23 // Retrieves property information for an entry and returns it as a dictionary. |
24 // On error, returns a dictionary with the key "error" set to the error number | 24 // On error, returns a dictionary with the key "error" set to the error number |
25 // (drive::FileError). | 25 // (drive::FileError). |
26 class GetDriveEntryPropertiesFunction : public LoggedAsyncExtensionFunction { | 26 class FileBrowserPrivateGetDriveEntryPropertiesFunction |
| 27 : public LoggedAsyncExtensionFunction { |
27 public: | 28 public: |
28 DECLARE_EXTENSION_FUNCTION("fileBrowserPrivate.getDriveEntryProperties", | 29 DECLARE_EXTENSION_FUNCTION("fileBrowserPrivate.getDriveEntryProperties", |
29 FILEBROWSERPRIVATE_GETDRIVEFILEPROPERTIES) | 30 FILEBROWSERPRIVATE_GETDRIVEFILEPROPERTIES) |
30 | 31 |
31 GetDriveEntryPropertiesFunction(); | 32 FileBrowserPrivateGetDriveEntryPropertiesFunction(); |
32 | 33 |
33 protected: | 34 protected: |
34 virtual ~GetDriveEntryPropertiesFunction(); | 35 virtual ~FileBrowserPrivateGetDriveEntryPropertiesFunction(); |
35 | 36 |
36 // AsyncExtensionFunction overrides. | 37 // AsyncExtensionFunction overrides. |
37 virtual bool RunImpl() OVERRIDE; | 38 virtual bool RunImpl() OVERRIDE; |
38 | 39 |
39 private: | 40 private: |
40 void OnGetFileInfo(drive::FileError error, | 41 void OnGetFileInfo(drive::FileError error, |
41 scoped_ptr<drive::ResourceEntry> entry); | 42 scoped_ptr<drive::ResourceEntry> entry); |
42 | 43 |
43 void CacheStateReceived(bool success, | 44 void CacheStateReceived(bool success, |
44 const drive::FileCacheEntry& cache_entry); | 45 const drive::FileCacheEntry& cache_entry); |
45 | 46 |
46 void CompleteGetFileProperties(drive::FileError error); | 47 void CompleteGetFileProperties(drive::FileError error); |
47 | 48 |
48 base::FilePath file_path_; | 49 base::FilePath file_path_; |
49 scoped_ptr<base::DictionaryValue> properties_; | 50 scoped_ptr<base::DictionaryValue> properties_; |
50 }; | 51 }; |
51 | 52 |
52 // Implements the chrome.fileBrowserPrivate.pinDriveFile method. | 53 // Implements the chrome.fileBrowserPrivate.pinDriveFile method. |
53 class PinDriveFileFunction : public LoggedAsyncExtensionFunction { | 54 class FileBrowserPrivatePinDriveFileFunction |
| 55 : public LoggedAsyncExtensionFunction { |
54 public: | 56 public: |
55 DECLARE_EXTENSION_FUNCTION("fileBrowserPrivate.pinDriveFile", | 57 DECLARE_EXTENSION_FUNCTION("fileBrowserPrivate.pinDriveFile", |
56 FILEBROWSERPRIVATE_PINDRIVEFILE) | 58 FILEBROWSERPRIVATE_PINDRIVEFILE) |
57 | 59 |
58 PinDriveFileFunction(); | 60 FileBrowserPrivatePinDriveFileFunction(); |
59 | 61 |
60 protected: | 62 protected: |
61 virtual ~PinDriveFileFunction(); | 63 virtual ~FileBrowserPrivatePinDriveFileFunction(); |
62 | 64 |
63 // AsyncExtensionFunction overrides. | 65 // AsyncExtensionFunction overrides. |
64 virtual bool RunImpl() OVERRIDE; | 66 virtual bool RunImpl() OVERRIDE; |
65 | 67 |
66 private: | 68 private: |
67 // Callback for RunImpl(). | 69 // Callback for RunImpl(). |
68 void OnPinStateSet(drive::FileError error); | 70 void OnPinStateSet(drive::FileError error); |
69 }; | 71 }; |
70 | 72 |
71 // Get drive files for the given list of file URLs. Initiate downloading of | 73 // Get drive files for the given list of file URLs. Initiate downloading of |
72 // drive files if these are not cached. Return a list of local file names. | 74 // drive files if these are not cached. Return a list of local file names. |
73 // This function puts empty strings instead of local paths for files could | 75 // This function puts empty strings instead of local paths for files could |
74 // not be obtained. For instance, this can happen if the user specifies a new | 76 // not be obtained. For instance, this can happen if the user specifies a new |
75 // file name to save a file on drive. There may be other reasons to fail. The | 77 // file name to save a file on drive. There may be other reasons to fail. The |
76 // file manager should check if the local paths returned from getDriveFiles() | 78 // file manager should check if the local paths returned from getDriveFiles() |
77 // contain empty paths. | 79 // contain empty paths. |
78 // TODO(satorux): Should we propagate error types to the JavaScript layer? | 80 // TODO(satorux): Should we propagate error types to the JavaScript layer? |
79 class GetDriveFilesFunction : public LoggedAsyncExtensionFunction { | 81 class FileBrowserPrivateGetDriveFilesFunction |
| 82 : public LoggedAsyncExtensionFunction { |
80 public: | 83 public: |
81 DECLARE_EXTENSION_FUNCTION("fileBrowserPrivate.getDriveFiles", | 84 DECLARE_EXTENSION_FUNCTION("fileBrowserPrivate.getDriveFiles", |
82 FILEBROWSERPRIVATE_GETDRIVEFILES) | 85 FILEBROWSERPRIVATE_GETDRIVEFILES) |
83 | 86 |
84 GetDriveFilesFunction(); | 87 FileBrowserPrivateGetDriveFilesFunction(); |
85 | 88 |
86 protected: | 89 protected: |
87 virtual ~GetDriveFilesFunction(); | 90 virtual ~FileBrowserPrivateGetDriveFilesFunction(); |
88 | 91 |
89 // AsyncExtensionFunction overrides. | 92 // AsyncExtensionFunction overrides. |
90 virtual bool RunImpl() OVERRIDE; | 93 virtual bool RunImpl() OVERRIDE; |
91 | 94 |
92 private: | 95 private: |
93 // Gets the file on the top of the |remaining_drive_paths_| or sends the | 96 // Gets the file on the top of the |remaining_drive_paths_| or sends the |
94 // response if the queue is empty. | 97 // response if the queue is empty. |
95 void GetFileOrSendResponse(); | 98 void GetFileOrSendResponse(); |
96 | 99 |
97 // Called by FileSystem::GetFile(). Pops the file from | 100 // Called by FileSystem::GetFile(). Pops the file from |
98 // |remaining_drive_paths_|, and calls GetFileOrSendResponse(). | 101 // |remaining_drive_paths_|, and calls GetFileOrSendResponse(). |
99 void OnFileReady(drive::FileError error, | 102 void OnFileReady(drive::FileError error, |
100 const base::FilePath& local_path, | 103 const base::FilePath& local_path, |
101 scoped_ptr<drive::ResourceEntry> entry); | 104 scoped_ptr<drive::ResourceEntry> entry); |
102 | 105 |
103 std::queue<base::FilePath> remaining_drive_paths_; | 106 std::queue<base::FilePath> remaining_drive_paths_; |
104 ListValue* local_paths_; | 107 ListValue* local_paths_; |
105 }; | 108 }; |
106 | 109 |
107 // Implements the chrome.fileBrowserPrivate.cancelFileTransfers method. | 110 // Implements the chrome.fileBrowserPrivate.cancelFileTransfers method. |
108 class CancelFileTransfersFunction : public LoggedAsyncExtensionFunction { | 111 class FileBrowserPrivateCancelFileTransfersFunction |
| 112 : public LoggedAsyncExtensionFunction { |
109 public: | 113 public: |
110 DECLARE_EXTENSION_FUNCTION("fileBrowserPrivate.cancelFileTransfers", | 114 DECLARE_EXTENSION_FUNCTION("fileBrowserPrivate.cancelFileTransfers", |
111 FILEBROWSERPRIVATE_CANCELFILETRANSFERS) | 115 FILEBROWSERPRIVATE_CANCELFILETRANSFERS) |
112 | 116 |
113 CancelFileTransfersFunction(); | 117 FileBrowserPrivateCancelFileTransfersFunction(); |
114 | 118 |
115 protected: | 119 protected: |
116 virtual ~CancelFileTransfersFunction(); | 120 virtual ~FileBrowserPrivateCancelFileTransfersFunction(); |
117 | 121 |
118 // AsyncExtensionFunction overrides. | 122 // AsyncExtensionFunction overrides. |
119 virtual bool RunImpl() OVERRIDE; | 123 virtual bool RunImpl() OVERRIDE; |
120 }; | 124 }; |
121 | 125 |
122 class SearchDriveFunction : public LoggedAsyncExtensionFunction { | 126 class FileBrowserPrivateSearchDriveFunction |
| 127 : public LoggedAsyncExtensionFunction { |
123 public: | 128 public: |
124 DECLARE_EXTENSION_FUNCTION("fileBrowserPrivate.searchDrive", | 129 DECLARE_EXTENSION_FUNCTION("fileBrowserPrivate.searchDrive", |
125 FILEBROWSERPRIVATE_SEARCHDRIVE) | 130 FILEBROWSERPRIVATE_SEARCHDRIVE) |
126 | 131 |
127 SearchDriveFunction(); | 132 FileBrowserPrivateSearchDriveFunction(); |
128 | 133 |
129 protected: | 134 protected: |
130 virtual ~SearchDriveFunction(); | 135 virtual ~FileBrowserPrivateSearchDriveFunction(); |
131 | 136 |
132 virtual bool RunImpl() OVERRIDE; | 137 virtual bool RunImpl() OVERRIDE; |
133 | 138 |
134 private: | 139 private: |
135 // Callback for Search(). | 140 // Callback for Search(). |
136 void OnSearch(drive::FileError error, | 141 void OnSearch(drive::FileError error, |
137 const std::string& next_feed, | 142 const std::string& next_feed, |
138 scoped_ptr<std::vector<drive::SearchResultInfo> > result_paths); | 143 scoped_ptr<std::vector<drive::SearchResultInfo> > result_paths); |
139 }; | 144 }; |
140 | 145 |
141 // Similar to SearchDriveFunction but this one is used for searching drive | 146 // Similar to FileBrowserPrivateSearchDriveFunction but this one is used for |
142 // metadata which is stored locally. | 147 // searching drive metadata which is stored locally. |
143 class SearchDriveMetadataFunction : public LoggedAsyncExtensionFunction { | 148 class FileBrowserPrivateSearchDriveMetadataFunction |
| 149 : public LoggedAsyncExtensionFunction { |
144 public: | 150 public: |
145 DECLARE_EXTENSION_FUNCTION("fileBrowserPrivate.searchDriveMetadata", | 151 DECLARE_EXTENSION_FUNCTION("fileBrowserPrivate.searchDriveMetadata", |
146 FILEBROWSERPRIVATE_SEARCHDRIVEMETADATA) | 152 FILEBROWSERPRIVATE_SEARCHDRIVEMETADATA) |
147 | 153 |
148 SearchDriveMetadataFunction(); | 154 FileBrowserPrivateSearchDriveMetadataFunction(); |
149 | 155 |
150 protected: | 156 protected: |
151 virtual ~SearchDriveMetadataFunction(); | 157 virtual ~FileBrowserPrivateSearchDriveMetadataFunction(); |
152 | 158 |
153 virtual bool RunImpl() OVERRIDE; | 159 virtual bool RunImpl() OVERRIDE; |
154 | 160 |
155 private: | 161 private: |
156 // Callback for SearchMetadata(); | 162 // Callback for SearchMetadata(); |
157 void OnSearchMetadata(drive::FileError error, | 163 void OnSearchMetadata(drive::FileError error, |
158 scoped_ptr<drive::MetadataSearchResultVector> results); | 164 scoped_ptr<drive::MetadataSearchResultVector> results); |
159 }; | 165 }; |
160 | 166 |
161 class ClearDriveCacheFunction : public LoggedAsyncExtensionFunction { | 167 class FileBrowserPrivateClearDriveCacheFunction |
| 168 : public LoggedAsyncExtensionFunction { |
162 public: | 169 public: |
163 DECLARE_EXTENSION_FUNCTION("fileBrowserPrivate.clearDriveCache", | 170 DECLARE_EXTENSION_FUNCTION("fileBrowserPrivate.clearDriveCache", |
164 FILEBROWSERPRIVATE_CLEARDRIVECACHE) | 171 FILEBROWSERPRIVATE_CLEARDRIVECACHE) |
165 | 172 |
166 ClearDriveCacheFunction(); | 173 FileBrowserPrivateClearDriveCacheFunction(); |
167 | 174 |
168 protected: | 175 protected: |
169 virtual ~ClearDriveCacheFunction(); | 176 virtual ~FileBrowserPrivateClearDriveCacheFunction(); |
170 | 177 |
171 virtual bool RunImpl() OVERRIDE; | 178 virtual bool RunImpl() OVERRIDE; |
172 }; | 179 }; |
173 | 180 |
174 // Implements the chrome.fileBrowserPrivate.getDriveConnectionState method. | 181 // Implements the chrome.fileBrowserPrivate.getDriveConnectionState method. |
175 class GetDriveConnectionStateFunction : public SyncExtensionFunction { | 182 class FileBrowserPrivateGetDriveConnectionStateFunction |
| 183 : public SyncExtensionFunction { |
176 public: | 184 public: |
177 DECLARE_EXTENSION_FUNCTION( | 185 DECLARE_EXTENSION_FUNCTION( |
178 "fileBrowserPrivate.getDriveConnectionState", | 186 "fileBrowserPrivate.getDriveConnectionState", |
179 FILEBROWSERPRIVATE_GETDRIVECONNECTIONSTATE); | 187 FILEBROWSERPRIVATE_GETDRIVECONNECTIONSTATE); |
180 | 188 |
181 GetDriveConnectionStateFunction(); | 189 FileBrowserPrivateGetDriveConnectionStateFunction(); |
182 | 190 |
183 protected: | 191 protected: |
184 virtual ~GetDriveConnectionStateFunction(); | 192 virtual ~FileBrowserPrivateGetDriveConnectionStateFunction(); |
185 | 193 |
186 virtual bool RunImpl() OVERRIDE; | 194 virtual bool RunImpl() OVERRIDE; |
187 }; | 195 }; |
188 | 196 |
189 // Implements the chrome.fileBrowserPrivate.requestAccessToken method. | 197 // Implements the chrome.fileBrowserPrivate.requestAccessToken method. |
190 class RequestAccessTokenFunction : public LoggedAsyncExtensionFunction { | 198 class FileBrowserPrivateRequestAccessTokenFunction |
| 199 : public LoggedAsyncExtensionFunction { |
191 public: | 200 public: |
192 DECLARE_EXTENSION_FUNCTION("fileBrowserPrivate.requestAccessToken", | 201 DECLARE_EXTENSION_FUNCTION("fileBrowserPrivate.requestAccessToken", |
193 FILEBROWSERPRIVATE_REQUESTACCESSTOKEN) | 202 FILEBROWSERPRIVATE_REQUESTACCESSTOKEN) |
194 | 203 |
195 RequestAccessTokenFunction(); | 204 FileBrowserPrivateRequestAccessTokenFunction(); |
196 | 205 |
197 protected: | 206 protected: |
198 virtual ~RequestAccessTokenFunction(); | 207 virtual ~FileBrowserPrivateRequestAccessTokenFunction(); |
199 | 208 |
200 // AsyncExtensionFunction overrides. | 209 // AsyncExtensionFunction overrides. |
201 virtual bool RunImpl() OVERRIDE; | 210 virtual bool RunImpl() OVERRIDE; |
202 | 211 |
203 // Callback with a cached auth token (if available) or a fetched one. | 212 // Callback with a cached auth token (if available) or a fetched one. |
204 void OnAccessTokenFetched(google_apis::GDataErrorCode code, | 213 void OnAccessTokenFetched(google_apis::GDataErrorCode code, |
205 const std::string& access_token); | 214 const std::string& access_token); |
206 }; | 215 }; |
207 | 216 |
208 // Implements the chrome.fileBrowserPrivate.getShareUrl method. | 217 // Implements the chrome.fileBrowserPrivate.getShareUrl method. |
209 class GetShareUrlFunction : public LoggedAsyncExtensionFunction { | 218 class FileBrowserPrivateGetShareUrlFunction |
| 219 : public LoggedAsyncExtensionFunction { |
210 public: | 220 public: |
211 DECLARE_EXTENSION_FUNCTION("fileBrowserPrivate.getShareUrl", | 221 DECLARE_EXTENSION_FUNCTION("fileBrowserPrivate.getShareUrl", |
212 FILEBROWSERPRIVATE_GETSHAREURL) | 222 FILEBROWSERPRIVATE_GETSHAREURL) |
213 | 223 |
214 GetShareUrlFunction(); | 224 FileBrowserPrivateGetShareUrlFunction(); |
215 | 225 |
216 protected: | 226 protected: |
217 virtual ~GetShareUrlFunction(); | 227 virtual ~FileBrowserPrivateGetShareUrlFunction(); |
218 | 228 |
219 // AsyncExtensionFunction overrides. | 229 // AsyncExtensionFunction overrides. |
220 virtual bool RunImpl() OVERRIDE; | 230 virtual bool RunImpl() OVERRIDE; |
221 | 231 |
222 // Callback with an url to the sharing dialog as |share_url|, called by | 232 // Callback with an url to the sharing dialog as |share_url|, called by |
223 // FileSystem::GetShareUrl. | 233 // FileSystem::GetShareUrl. |
224 void OnGetShareUrl(drive::FileError error, const GURL& share_url); | 234 void OnGetShareUrl(drive::FileError error, const GURL& share_url); |
225 }; | 235 }; |
226 | 236 |
227 } // namespace extensions | 237 } // namespace extensions |
228 | 238 |
229 #endif // CHROME_BROWSER_CHROMEOS_EXTENSIONS_FILE_MANAGER_PRIVATE_API_DRIVE_H_ | 239 #endif // CHROME_BROWSER_CHROMEOS_EXTENSIONS_FILE_MANAGER_PRIVATE_API_DRIVE_H_ |
OLD | NEW |