Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(132)

Side by Side Diff: chrome/browser/download/download_extension_api.h

Issue 10071036: RefCounted types should not have public destructors, chrome/browser/ part 6 (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Implementation fixes Created 8 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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
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
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_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698