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 #ifndef CHROME_BROWSER_DOWNLOAD_DOWNLOAD_EXTENSION_API_H_ | 5 #ifndef CHROME_BROWSER_DOWNLOAD_DOWNLOAD_EXTENSION_API_H_ |
6 #define CHROME_BROWSER_DOWNLOAD_DOWNLOAD_EXTENSION_API_H_ | 6 #define CHROME_BROWSER_DOWNLOAD_DOWNLOAD_EXTENSION_API_H_ |
7 #pragma once | 7 #pragma once |
8 | 8 |
9 #include <map> | 9 #include <map> |
10 #include <set> | 10 #include <set> |
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
76 | 76 |
77 // Which subclass is this. | 77 // Which subclass is this. |
78 virtual DownloadsFunctionName function() const = 0; | 78 virtual DownloadsFunctionName function() const = 0; |
79 | 79 |
80 // Wrap ParseArgs(), RunInternal(). | 80 // Wrap ParseArgs(), RunInternal(). |
81 static bool RunImplImpl(DownloadsFunctionInterface* pimpl); | 81 static bool RunImplImpl(DownloadsFunctionInterface* pimpl); |
82 }; | 82 }; |
83 | 83 |
84 class SyncDownloadsFunction : public SyncExtensionFunction, | 84 class SyncDownloadsFunction : public SyncExtensionFunction, |
85 public DownloadsFunctionInterface { | 85 public DownloadsFunctionInterface { |
86 public: | |
87 virtual bool RunImpl() OVERRIDE; | |
88 | |
89 protected: | 86 protected: |
90 explicit SyncDownloadsFunction(DownloadsFunctionName function); | 87 explicit SyncDownloadsFunction(DownloadsFunctionName function); |
91 virtual ~SyncDownloadsFunction(); | 88 virtual ~SyncDownloadsFunction(); |
| 89 |
| 90 // ExtensionFunction: |
| 91 virtual bool RunImpl() OVERRIDE; |
| 92 |
| 93 // DownloadsFunctionInterface: |
92 virtual DownloadsFunctionName function() const OVERRIDE; | 94 virtual DownloadsFunctionName function() const OVERRIDE; |
93 | 95 |
94 private: | 96 private: |
95 DownloadsFunctionName function_; | 97 DownloadsFunctionName function_; |
96 | 98 |
97 DISALLOW_COPY_AND_ASSIGN(SyncDownloadsFunction); | 99 DISALLOW_COPY_AND_ASSIGN(SyncDownloadsFunction); |
98 }; | 100 }; |
99 | 101 |
100 class AsyncDownloadsFunction : public AsyncExtensionFunction, | 102 class AsyncDownloadsFunction : public AsyncExtensionFunction, |
101 public DownloadsFunctionInterface { | 103 public DownloadsFunctionInterface { |
102 public: | |
103 virtual bool RunImpl() OVERRIDE; | |
104 | |
105 protected: | 104 protected: |
106 explicit AsyncDownloadsFunction(DownloadsFunctionName function); | 105 explicit AsyncDownloadsFunction(DownloadsFunctionName function); |
107 virtual ~AsyncDownloadsFunction(); | 106 virtual ~AsyncDownloadsFunction(); |
| 107 |
| 108 // ExtensionFunction: |
| 109 virtual bool RunImpl() OVERRIDE; |
| 110 |
| 111 // DownloadsFunctionInterface: |
108 virtual DownloadsFunctionName function() const OVERRIDE; | 112 virtual DownloadsFunctionName function() const OVERRIDE; |
109 | 113 |
110 private: | 114 private: |
111 DownloadsFunctionName function_; | 115 DownloadsFunctionName function_; |
112 | 116 |
113 DISALLOW_COPY_AND_ASSIGN(AsyncDownloadsFunction); | 117 DISALLOW_COPY_AND_ASSIGN(AsyncDownloadsFunction); |
114 }; | 118 }; |
115 | 119 |
116 class DownloadsDownloadFunction : public AsyncDownloadsFunction { | 120 class DownloadsDownloadFunction : public AsyncDownloadsFunction { |
117 public: | 121 public: |
118 DownloadsDownloadFunction(); | |
119 virtual ~DownloadsDownloadFunction(); | |
120 DECLARE_EXTENSION_FUNCTION_NAME("experimental.downloads.download"); | 122 DECLARE_EXTENSION_FUNCTION_NAME("experimental.downloads.download"); |
121 | 123 |
| 124 DownloadsDownloadFunction(); |
| 125 |
122 protected: | 126 protected: |
| 127 virtual ~DownloadsDownloadFunction(); |
| 128 |
| 129 // DownloadsFunctionInterface: |
123 virtual bool ParseArgs() OVERRIDE; | 130 virtual bool ParseArgs() OVERRIDE; |
124 virtual bool RunInternal() OVERRIDE; | 131 virtual bool RunInternal() OVERRIDE; |
125 | 132 |
126 private: | 133 private: |
127 struct IOData { | 134 struct IOData { |
128 public: | 135 public: |
129 IOData(); | 136 IOData(); |
130 ~IOData(); | 137 ~IOData(); |
131 | 138 |
132 GURL url; | 139 GURL url; |
133 string16 filename; | 140 string16 filename; |
134 bool save_as; | 141 bool save_as; |
135 base::ListValue* extra_headers; | 142 base::ListValue* extra_headers; |
136 std::string method; | 143 std::string method; |
137 std::string post_body; | 144 std::string post_body; |
138 content::ResourceDispatcherHost* rdh; | 145 content::ResourceDispatcherHost* rdh; |
139 content::ResourceContext* resource_context; | 146 content::ResourceContext* resource_context; |
140 int render_process_host_id; | 147 int render_process_host_id; |
141 int render_view_host_routing_id; | 148 int render_view_host_routing_id; |
142 }; | 149 }; |
| 150 |
143 void BeginDownloadOnIOThread(); | 151 void BeginDownloadOnIOThread(); |
144 void OnStarted(content::DownloadId dl_id, net::Error error); | 152 void OnStarted(content::DownloadId dl_id, net::Error error); |
145 | 153 |
146 scoped_ptr<IOData> iodata_; | 154 scoped_ptr<IOData> iodata_; |
147 | 155 |
148 DISALLOW_COPY_AND_ASSIGN(DownloadsDownloadFunction); | 156 DISALLOW_COPY_AND_ASSIGN(DownloadsDownloadFunction); |
149 }; | 157 }; |
150 | 158 |
151 class DownloadsSearchFunction : public SyncDownloadsFunction { | 159 class DownloadsSearchFunction : public SyncDownloadsFunction { |
152 public: | 160 public: |
153 DownloadsSearchFunction(); | |
154 virtual ~DownloadsSearchFunction(); | |
155 DECLARE_EXTENSION_FUNCTION_NAME("experimental.downloads.search"); | 161 DECLARE_EXTENSION_FUNCTION_NAME("experimental.downloads.search"); |
156 | 162 |
| 163 DownloadsSearchFunction(); |
| 164 |
157 protected: | 165 protected: |
| 166 virtual ~DownloadsSearchFunction(); |
| 167 |
| 168 // DownloadsFunctionInterface: |
158 virtual bool ParseArgs() OVERRIDE; | 169 virtual bool ParseArgs() OVERRIDE; |
159 virtual bool RunInternal() OVERRIDE; | 170 virtual bool RunInternal() OVERRIDE; |
160 | 171 |
161 private: | 172 private: |
162 bool ParseOrderBy(const base::Value& order_by_value); | 173 bool ParseOrderBy(const base::Value& order_by_value); |
163 | 174 |
164 scoped_ptr<DownloadQuery> query_; | 175 scoped_ptr<DownloadQuery> query_; |
165 int get_id_; | 176 int get_id_; |
166 bool has_get_id_; | 177 bool has_get_id_; |
167 | 178 |
168 DISALLOW_COPY_AND_ASSIGN(DownloadsSearchFunction); | 179 DISALLOW_COPY_AND_ASSIGN(DownloadsSearchFunction); |
169 }; | 180 }; |
170 | 181 |
171 class DownloadsPauseFunction : public SyncDownloadsFunction { | 182 class DownloadsPauseFunction : public SyncDownloadsFunction { |
172 public: | 183 public: |
173 DownloadsPauseFunction(); | |
174 virtual ~DownloadsPauseFunction(); | |
175 DECLARE_EXTENSION_FUNCTION_NAME("experimental.downloads.pause"); | 184 DECLARE_EXTENSION_FUNCTION_NAME("experimental.downloads.pause"); |
176 | 185 |
| 186 DownloadsPauseFunction(); |
| 187 |
177 protected: | 188 protected: |
| 189 virtual ~DownloadsPauseFunction(); |
| 190 |
| 191 // DownloadsFunctionInterface: |
178 virtual bool ParseArgs() OVERRIDE; | 192 virtual bool ParseArgs() OVERRIDE; |
179 virtual bool RunInternal() OVERRIDE; | 193 virtual bool RunInternal() OVERRIDE; |
180 | 194 |
181 private: | 195 private: |
182 int download_id_; | 196 int download_id_; |
183 DISALLOW_COPY_AND_ASSIGN(DownloadsPauseFunction); | 197 DISALLOW_COPY_AND_ASSIGN(DownloadsPauseFunction); |
184 }; | 198 }; |
185 | 199 |
186 class DownloadsResumeFunction : public SyncDownloadsFunction { | 200 class DownloadsResumeFunction : public SyncDownloadsFunction { |
187 public: | 201 public: |
188 DownloadsResumeFunction(); | |
189 virtual ~DownloadsResumeFunction(); | |
190 DECLARE_EXTENSION_FUNCTION_NAME("experimental.downloads.resume"); | 202 DECLARE_EXTENSION_FUNCTION_NAME("experimental.downloads.resume"); |
191 | 203 |
| 204 DownloadsResumeFunction(); |
| 205 |
192 protected: | 206 protected: |
| 207 virtual ~DownloadsResumeFunction(); |
| 208 |
| 209 // DownloadsFunctionInterface: |
193 virtual bool ParseArgs() OVERRIDE; | 210 virtual bool ParseArgs() OVERRIDE; |
194 virtual bool RunInternal() OVERRIDE; | 211 virtual bool RunInternal() OVERRIDE; |
195 | 212 |
196 private: | 213 private: |
197 int download_id_; | 214 int download_id_; |
198 DISALLOW_COPY_AND_ASSIGN(DownloadsResumeFunction); | 215 DISALLOW_COPY_AND_ASSIGN(DownloadsResumeFunction); |
199 }; | 216 }; |
200 | 217 |
201 class DownloadsCancelFunction : public SyncDownloadsFunction { | 218 class DownloadsCancelFunction : public SyncDownloadsFunction { |
202 public: | 219 public: |
203 DownloadsCancelFunction(); | |
204 virtual ~DownloadsCancelFunction(); | |
205 DECLARE_EXTENSION_FUNCTION_NAME("experimental.downloads.cancel"); | 220 DECLARE_EXTENSION_FUNCTION_NAME("experimental.downloads.cancel"); |
206 | 221 |
| 222 DownloadsCancelFunction(); |
| 223 |
207 protected: | 224 protected: |
| 225 virtual ~DownloadsCancelFunction(); |
| 226 |
| 227 // DownloadsFunctionInterface: |
208 virtual bool ParseArgs() OVERRIDE; | 228 virtual bool ParseArgs() OVERRIDE; |
209 virtual bool RunInternal() OVERRIDE; | 229 virtual bool RunInternal() OVERRIDE; |
210 | 230 |
211 private: | 231 private: |
212 int download_id_; | 232 int download_id_; |
213 DISALLOW_COPY_AND_ASSIGN(DownloadsCancelFunction); | 233 DISALLOW_COPY_AND_ASSIGN(DownloadsCancelFunction); |
214 }; | 234 }; |
215 | 235 |
216 class DownloadsEraseFunction : public AsyncDownloadsFunction { | 236 class DownloadsEraseFunction : public AsyncDownloadsFunction { |
217 public: | 237 public: |
218 DownloadsEraseFunction(); | |
219 virtual ~DownloadsEraseFunction(); | |
220 DECLARE_EXTENSION_FUNCTION_NAME("experimental.downloads.erase"); | 238 DECLARE_EXTENSION_FUNCTION_NAME("experimental.downloads.erase"); |
221 | 239 |
| 240 DownloadsEraseFunction(); |
| 241 |
222 protected: | 242 protected: |
| 243 virtual ~DownloadsEraseFunction(); |
| 244 |
| 245 // DownloadsFunctionInterface: |
223 virtual bool ParseArgs() OVERRIDE; | 246 virtual bool ParseArgs() OVERRIDE; |
224 virtual bool RunInternal() OVERRIDE; | 247 virtual bool RunInternal() OVERRIDE; |
225 | 248 |
226 private: | 249 private: |
227 DISALLOW_COPY_AND_ASSIGN(DownloadsEraseFunction); | 250 DISALLOW_COPY_AND_ASSIGN(DownloadsEraseFunction); |
228 }; | 251 }; |
229 | 252 |
230 class DownloadsSetDestinationFunction : public AsyncDownloadsFunction { | 253 class DownloadsSetDestinationFunction : public AsyncDownloadsFunction { |
231 public: | 254 public: |
232 DownloadsSetDestinationFunction(); | |
233 virtual ~DownloadsSetDestinationFunction(); | |
234 DECLARE_EXTENSION_FUNCTION_NAME("experimental.downloads.setDestination"); | 255 DECLARE_EXTENSION_FUNCTION_NAME("experimental.downloads.setDestination"); |
235 | 256 |
| 257 DownloadsSetDestinationFunction(); |
| 258 |
236 protected: | 259 protected: |
| 260 virtual ~DownloadsSetDestinationFunction(); |
| 261 |
| 262 // DownloadsFunctionInterface: |
237 virtual bool ParseArgs() OVERRIDE; | 263 virtual bool ParseArgs() OVERRIDE; |
238 virtual bool RunInternal() OVERRIDE; | 264 virtual bool RunInternal() OVERRIDE; |
239 | 265 |
240 private: | 266 private: |
241 DISALLOW_COPY_AND_ASSIGN(DownloadsSetDestinationFunction); | 267 DISALLOW_COPY_AND_ASSIGN(DownloadsSetDestinationFunction); |
242 }; | 268 }; |
243 | 269 |
244 class DownloadsAcceptDangerFunction : public AsyncDownloadsFunction { | 270 class DownloadsAcceptDangerFunction : public AsyncDownloadsFunction { |
245 public: | 271 public: |
246 DownloadsAcceptDangerFunction(); | |
247 virtual ~DownloadsAcceptDangerFunction(); | |
248 DECLARE_EXTENSION_FUNCTION_NAME("experimental.downloads.acceptDanger"); | 272 DECLARE_EXTENSION_FUNCTION_NAME("experimental.downloads.acceptDanger"); |
249 | 273 |
| 274 DownloadsAcceptDangerFunction(); |
| 275 |
250 protected: | 276 protected: |
| 277 virtual ~DownloadsAcceptDangerFunction(); |
| 278 |
| 279 // DownloadsFunctionInterface: |
251 virtual bool ParseArgs() OVERRIDE; | 280 virtual bool ParseArgs() OVERRIDE; |
252 virtual bool RunInternal() OVERRIDE; | 281 virtual bool RunInternal() OVERRIDE; |
253 | 282 |
254 private: | 283 private: |
255 DISALLOW_COPY_AND_ASSIGN(DownloadsAcceptDangerFunction); | 284 DISALLOW_COPY_AND_ASSIGN(DownloadsAcceptDangerFunction); |
256 }; | 285 }; |
257 | 286 |
258 class DownloadsShowFunction : public AsyncDownloadsFunction { | 287 class DownloadsShowFunction : public AsyncDownloadsFunction { |
259 public: | 288 public: |
260 DownloadsShowFunction(); | |
261 virtual ~DownloadsShowFunction(); | |
262 DECLARE_EXTENSION_FUNCTION_NAME("experimental.downloads.show"); | 289 DECLARE_EXTENSION_FUNCTION_NAME("experimental.downloads.show"); |
263 | 290 |
| 291 DownloadsShowFunction(); |
| 292 |
264 protected: | 293 protected: |
| 294 virtual ~DownloadsShowFunction(); |
| 295 |
| 296 // DownloadsFunctionInterface: |
265 virtual bool ParseArgs() OVERRIDE; | 297 virtual bool ParseArgs() OVERRIDE; |
266 virtual bool RunInternal() OVERRIDE; | 298 virtual bool RunInternal() OVERRIDE; |
267 | 299 |
268 private: | 300 private: |
269 DISALLOW_COPY_AND_ASSIGN(DownloadsShowFunction); | 301 DISALLOW_COPY_AND_ASSIGN(DownloadsShowFunction); |
270 }; | 302 }; |
271 | 303 |
272 class DownloadsDragFunction : public AsyncDownloadsFunction { | 304 class DownloadsDragFunction : public AsyncDownloadsFunction { |
273 public: | 305 public: |
274 DownloadsDragFunction(); | |
275 virtual ~DownloadsDragFunction(); | |
276 DECLARE_EXTENSION_FUNCTION_NAME("experimental.downloads.drag"); | 306 DECLARE_EXTENSION_FUNCTION_NAME("experimental.downloads.drag"); |
277 | 307 |
| 308 DownloadsDragFunction(); |
| 309 |
278 protected: | 310 protected: |
| 311 virtual ~DownloadsDragFunction(); |
| 312 |
| 313 // DownloadsFunctionInterface: |
279 virtual bool ParseArgs() OVERRIDE; | 314 virtual bool ParseArgs() OVERRIDE; |
280 virtual bool RunInternal() OVERRIDE; | 315 virtual bool RunInternal() OVERRIDE; |
281 | 316 |
282 private: | 317 private: |
283 DISALLOW_COPY_AND_ASSIGN(DownloadsDragFunction); | 318 DISALLOW_COPY_AND_ASSIGN(DownloadsDragFunction); |
284 }; | 319 }; |
285 | 320 |
286 class DownloadsGetFileIconFunction : public AsyncDownloadsFunction { | 321 class DownloadsGetFileIconFunction : public AsyncDownloadsFunction { |
287 public: | 322 public: |
288 DownloadsGetFileIconFunction(); | |
289 virtual ~DownloadsGetFileIconFunction(); | |
290 void SetIconExtractorForTesting(DownloadFileIconExtractor* extractor); | |
291 DECLARE_EXTENSION_FUNCTION_NAME("experimental.downloads.getFileIcon"); | 323 DECLARE_EXTENSION_FUNCTION_NAME("experimental.downloads.getFileIcon"); |
292 | 324 |
| 325 DownloadsGetFileIconFunction(); |
| 326 void SetIconExtractorForTesting(DownloadFileIconExtractor* extractor); |
| 327 |
293 protected: | 328 protected: |
| 329 virtual ~DownloadsGetFileIconFunction(); |
| 330 |
| 331 // DownloadsFunctionInterface: |
294 virtual bool ParseArgs() OVERRIDE; | 332 virtual bool ParseArgs() OVERRIDE; |
295 virtual bool RunInternal() OVERRIDE; | 333 virtual bool RunInternal() OVERRIDE; |
296 | 334 |
297 private: | 335 private: |
298 void OnIconURLExtracted(const std::string& url); | 336 void OnIconURLExtracted(const std::string& url); |
299 FilePath path_; | 337 FilePath path_; |
300 int icon_size_; | 338 int icon_size_; |
301 scoped_ptr<DownloadFileIconExtractor> icon_extractor_; | 339 scoped_ptr<DownloadFileIconExtractor> icon_extractor_; |
302 DISALLOW_COPY_AND_ASSIGN(DownloadsGetFileIconFunction); | 340 DISALLOW_COPY_AND_ASSIGN(DownloadsGetFileIconFunction); |
303 }; | 341 }; |
(...skipping 30 matching lines...) Expand all Loading... |
334 content::DownloadManager* manager_; | 372 content::DownloadManager* manager_; |
335 ItemMap downloads_; | 373 ItemMap downloads_; |
336 ItemJsonMap item_jsons_; | 374 ItemJsonMap item_jsons_; |
337 STLValueDeleter<ItemJsonMap> delete_item_jsons_; | 375 STLValueDeleter<ItemJsonMap> delete_item_jsons_; |
338 OnChangedStatMap on_changed_stats_; | 376 OnChangedStatMap on_changed_stats_; |
339 STLValueDeleter<OnChangedStatMap> delete_on_changed_stats_; | 377 STLValueDeleter<OnChangedStatMap> delete_on_changed_stats_; |
340 | 378 |
341 DISALLOW_COPY_AND_ASSIGN(ExtensionDownloadsEventRouter); | 379 DISALLOW_COPY_AND_ASSIGN(ExtensionDownloadsEventRouter); |
342 }; | 380 }; |
343 #endif // CHROME_BROWSER_DOWNLOAD_DOWNLOAD_EXTENSION_API_H_ | 381 #endif // CHROME_BROWSER_DOWNLOAD_DOWNLOAD_EXTENSION_API_H_ |
OLD | NEW |