| 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 |