summaryrefslogtreecommitdiffstats
path: root/chrome/browser/extensions/api/downloads/downloads_api.h
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/extensions/api/downloads/downloads_api.h')
-rw-r--r--chrome/browser/extensions/api/downloads/downloads_api.h204
1 files changed, 35 insertions, 169 deletions
diff --git a/chrome/browser/extensions/api/downloads/downloads_api.h b/chrome/browser/extensions/api/downloads/downloads_api.h
index 65aaf52..c4c35d0 100644
--- a/chrome/browser/extensions/api/downloads/downloads_api.h
+++ b/chrome/browser/extensions/api/downloads/downloads_api.h
@@ -46,296 +46,162 @@ extern const char kNotImplementedError[];
} // namespace download_extension_errors
-class DownloadsFunctionInterface {
- public:
- enum DownloadsFunctionName {
- DOWNLOADS_FUNCTION_DOWNLOAD = 0,
- DOWNLOADS_FUNCTION_SEARCH = 1,
- DOWNLOADS_FUNCTION_PAUSE = 2,
- DOWNLOADS_FUNCTION_RESUME = 3,
- DOWNLOADS_FUNCTION_CANCEL = 4,
- DOWNLOADS_FUNCTION_ERASE = 5,
- DOWNLOADS_FUNCTION_SET_DESTINATION = 6,
- DOWNLOADS_FUNCTION_ACCEPT_DANGER = 7,
- DOWNLOADS_FUNCTION_SHOW = 8,
- DOWNLOADS_FUNCTION_DRAG = 9,
- DOWNLOADS_FUNCTION_GET_FILE_ICON = 10,
- // Insert new values here, not at the beginning.
- DOWNLOADS_FUNCTION_LAST
- };
-
- protected:
- virtual ~DownloadsFunctionInterface() {}
-
- // Return true if args_ is well-formed, otherwise set error_ and return false.
- virtual bool ParseArgs() = 0;
-
- // Implementation-specific logic. "Do the thing that you do." Should return
- // true if the call succeeded and false otherwise.
- virtual bool RunInternal() = 0;
-
- // Which subclass is this.
- virtual DownloadsFunctionName function() const = 0;
-
- // Wrap ParseArgs(), RunInternal().
- static bool RunImplImpl(DownloadsFunctionInterface* pimpl);
-};
-
-class SyncDownloadsFunction : public SyncExtensionFunction,
- public DownloadsFunctionInterface {
- protected:
- explicit SyncDownloadsFunction(DownloadsFunctionName function);
- virtual ~SyncDownloadsFunction();
-
- // ExtensionFunction:
- virtual bool RunImpl() OVERRIDE;
-
- // DownloadsFunctionInterface:
- virtual DownloadsFunctionName function() const OVERRIDE;
-
- content::DownloadItem* GetActiveItem(int download_id);
-
- private:
- DownloadsFunctionName function_;
-
- DISALLOW_COPY_AND_ASSIGN(SyncDownloadsFunction);
-};
-class AsyncDownloadsFunction : public AsyncExtensionFunction,
- public DownloadsFunctionInterface {
- protected:
- explicit AsyncDownloadsFunction(DownloadsFunctionName function);
- virtual ~AsyncDownloadsFunction();
-
- // ExtensionFunction:
- virtual bool RunImpl() OVERRIDE;
-
- // DownloadsFunctionInterface:
- virtual DownloadsFunctionName function() const OVERRIDE;
-
- content::DownloadItem* GetActiveItem(int download_id);
-
- private:
- DownloadsFunctionName function_;
-
- DISALLOW_COPY_AND_ASSIGN(AsyncDownloadsFunction);
-};
-
-class DownloadsDownloadFunction : public AsyncDownloadsFunction {
+class DownloadsDownloadFunction : public AsyncExtensionFunction {
public:
DECLARE_EXTENSION_FUNCTION_NAME("downloads.download");
-
DownloadsDownloadFunction();
+ virtual bool RunImpl() OVERRIDE;
protected:
virtual ~DownloadsDownloadFunction();
- // DownloadsFunctionInterface:
- virtual bool ParseArgs() OVERRIDE;
- virtual bool RunInternal() OVERRIDE;
-
private:
- struct IOData {
- public:
- IOData();
- ~IOData();
-
- GURL url;
- string16 filename;
- bool save_as;
- base::ListValue* extra_headers;
- std::string method;
- std::string post_body;
- content::ResourceDispatcherHost* rdh;
- content::ResourceContext* resource_context;
- int render_process_host_id;
- int render_view_host_routing_id;
- };
-
- void BeginDownloadOnIOThread();
void OnStarted(content::DownloadId dl_id, net::Error error);
- scoped_ptr<IOData> iodata_;
-
DISALLOW_COPY_AND_ASSIGN(DownloadsDownloadFunction);
};
-class DownloadsSearchFunction : public SyncDownloadsFunction {
+class DownloadsSearchFunction : public SyncExtensionFunction {
public:
DECLARE_EXTENSION_FUNCTION_NAME("downloads.search");
-
DownloadsSearchFunction();
+ virtual bool RunImpl() OVERRIDE;
protected:
virtual ~DownloadsSearchFunction();
- // DownloadsFunctionInterface:
- virtual bool ParseArgs() OVERRIDE;
- virtual bool RunInternal() OVERRIDE;
-
private:
- bool ParseOrderBy(const base::Value& order_by_value);
-
- scoped_ptr<DownloadQuery> query_;
- int get_id_;
- bool has_get_id_;
-
DISALLOW_COPY_AND_ASSIGN(DownloadsSearchFunction);
};
-class DownloadsPauseFunction : public SyncDownloadsFunction {
+class DownloadsPauseFunction : public SyncExtensionFunction {
public:
DECLARE_EXTENSION_FUNCTION_NAME("downloads.pause");
-
DownloadsPauseFunction();
+ virtual bool RunImpl() OVERRIDE;
protected:
virtual ~DownloadsPauseFunction();
- // DownloadsFunctionInterface:
- virtual bool ParseArgs() OVERRIDE;
- virtual bool RunInternal() OVERRIDE;
-
private:
- int download_id_;
DISALLOW_COPY_AND_ASSIGN(DownloadsPauseFunction);
};
-class DownloadsResumeFunction : public SyncDownloadsFunction {
+class DownloadsResumeFunction : public SyncExtensionFunction {
public:
DECLARE_EXTENSION_FUNCTION_NAME("downloads.resume");
-
DownloadsResumeFunction();
+ virtual bool RunImpl() OVERRIDE;
protected:
virtual ~DownloadsResumeFunction();
- // DownloadsFunctionInterface:
- virtual bool ParseArgs() OVERRIDE;
- virtual bool RunInternal() OVERRIDE;
-
private:
- int download_id_;
DISALLOW_COPY_AND_ASSIGN(DownloadsResumeFunction);
};
-class DownloadsCancelFunction : public SyncDownloadsFunction {
+class DownloadsCancelFunction : public SyncExtensionFunction {
public:
DECLARE_EXTENSION_FUNCTION_NAME("downloads.cancel");
-
DownloadsCancelFunction();
+ virtual bool RunImpl() OVERRIDE;
protected:
virtual ~DownloadsCancelFunction();
- // DownloadsFunctionInterface:
- virtual bool ParseArgs() OVERRIDE;
- virtual bool RunInternal() OVERRIDE;
-
private:
- int download_id_;
DISALLOW_COPY_AND_ASSIGN(DownloadsCancelFunction);
};
-class DownloadsEraseFunction : public AsyncDownloadsFunction {
+class DownloadsEraseFunction : public AsyncExtensionFunction {
public:
DECLARE_EXTENSION_FUNCTION_NAME("downloads.erase");
-
DownloadsEraseFunction();
+ virtual bool RunImpl() OVERRIDE;
protected:
virtual ~DownloadsEraseFunction();
- // DownloadsFunctionInterface:
- virtual bool ParseArgs() OVERRIDE;
- virtual bool RunInternal() OVERRIDE;
-
private:
DISALLOW_COPY_AND_ASSIGN(DownloadsEraseFunction);
};
-class DownloadsSetDestinationFunction : public AsyncDownloadsFunction {
+class DownloadsSetDestinationFunction : public AsyncExtensionFunction {
public:
DECLARE_EXTENSION_FUNCTION_NAME("downloads.setDestination");
-
DownloadsSetDestinationFunction();
+ virtual bool RunImpl() OVERRIDE;
protected:
virtual ~DownloadsSetDestinationFunction();
- // DownloadsFunctionInterface:
- virtual bool ParseArgs() OVERRIDE;
- virtual bool RunInternal() OVERRIDE;
-
private:
DISALLOW_COPY_AND_ASSIGN(DownloadsSetDestinationFunction);
};
-class DownloadsAcceptDangerFunction : public AsyncDownloadsFunction {
+class DownloadsAcceptDangerFunction : public AsyncExtensionFunction {
public:
DECLARE_EXTENSION_FUNCTION_NAME("downloads.acceptDanger");
-
DownloadsAcceptDangerFunction();
+ virtual bool RunImpl() OVERRIDE;
protected:
virtual ~DownloadsAcceptDangerFunction();
- // DownloadsFunctionInterface:
- virtual bool ParseArgs() OVERRIDE;
- virtual bool RunInternal() OVERRIDE;
-
private:
DISALLOW_COPY_AND_ASSIGN(DownloadsAcceptDangerFunction);
};
-class DownloadsShowFunction : public AsyncDownloadsFunction {
+class DownloadsShowFunction : public AsyncExtensionFunction {
public:
DECLARE_EXTENSION_FUNCTION_NAME("downloads.show");
-
DownloadsShowFunction();
+ virtual bool RunImpl() OVERRIDE;
protected:
virtual ~DownloadsShowFunction();
- // DownloadsFunctionInterface:
- virtual bool ParseArgs() OVERRIDE;
- virtual bool RunInternal() OVERRIDE;
-
private:
DISALLOW_COPY_AND_ASSIGN(DownloadsShowFunction);
};
-class DownloadsDragFunction : public AsyncDownloadsFunction {
+class DownloadsOpenFunction : public AsyncExtensionFunction {
public:
- DECLARE_EXTENSION_FUNCTION_NAME("downloads.drag");
+ DECLARE_EXTENSION_FUNCTION_NAME("downloads.open");
+ DownloadsOpenFunction();
+ virtual bool RunImpl() OVERRIDE;
+
+ protected:
+ virtual ~DownloadsOpenFunction();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(DownloadsOpenFunction);
+};
+class DownloadsDragFunction : public AsyncExtensionFunction {
+ public:
+ DECLARE_EXTENSION_FUNCTION_NAME("downloads.drag");
DownloadsDragFunction();
+ virtual bool RunImpl() OVERRIDE;
protected:
virtual ~DownloadsDragFunction();
- // DownloadsFunctionInterface:
- virtual bool ParseArgs() OVERRIDE;
- virtual bool RunInternal() OVERRIDE;
-
private:
DISALLOW_COPY_AND_ASSIGN(DownloadsDragFunction);
};
-class DownloadsGetFileIconFunction : public AsyncDownloadsFunction {
+class DownloadsGetFileIconFunction : public AsyncExtensionFunction {
public:
DECLARE_EXTENSION_FUNCTION_NAME("downloads.getFileIcon");
-
DownloadsGetFileIconFunction();
+ virtual bool RunImpl() OVERRIDE;
void SetIconExtractorForTesting(DownloadFileIconExtractor* extractor);
protected:
virtual ~DownloadsGetFileIconFunction();
- // DownloadsFunctionInterface:
- virtual bool ParseArgs() OVERRIDE;
- virtual bool RunInternal() OVERRIDE;
-
private:
void OnIconURLExtracted(const std::string& url);
FilePath path_;