summaryrefslogtreecommitdiffstats
path: root/content/browser/download/download_resource_handler.h
diff options
context:
space:
mode:
Diffstat (limited to 'content/browser/download/download_resource_handler.h')
-rw-r--r--content/browser/download/download_resource_handler.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/content/browser/download/download_resource_handler.h b/content/browser/download/download_resource_handler.h
index b4cdbd6..81d288d 100644
--- a/content/browser/download/download_resource_handler.h
+++ b/content/browser/download/download_resource_handler.h
@@ -8,6 +8,7 @@
#include <string>
+#include "base/callback.h"
#include "base/memory/scoped_ptr.h"
#include "base/timer.h"
#include "content/browser/download/download_file.h"
@@ -25,6 +26,10 @@ class URLRequest;
// Forwards data to the download thread.
class DownloadResourceHandler : public ResourceHandler {
public:
+ typedef base::Callback<void(int/*download_id*/, net::Error)>
+ OnStartedCallback;
+
+ // started_cb will be called exactly once.
DownloadResourceHandler(ResourceDispatcherHost* rdh,
int render_process_host_id,
int render_view_id,
@@ -33,6 +38,7 @@ class DownloadResourceHandler : public ResourceHandler {
DownloadFileManager* download_file_manager,
net::URLRequest* request,
bool save_as,
+ const OnStartedCallback& started_cb,
const DownloadSaveInfo& save_info);
virtual bool OnUploadProgress(int request_id, uint64 position, uint64 size);
@@ -74,6 +80,7 @@ class DownloadResourceHandler : public ResourceHandler {
virtual ~DownloadResourceHandler();
void StartPauseTimer();
+ void CallStartedCB(net::Error error);
int download_id_;
GlobalRequestID global_id_;
@@ -84,6 +91,7 @@ class DownloadResourceHandler : public ResourceHandler {
DownloadFileManager* download_file_manager_;
net::URLRequest* request_;
bool save_as_; // Request was initiated via "Save As" by the user.
+ OnStartedCallback started_cb_;
DownloadSaveInfo save_info_;
scoped_ptr<DownloadBuffer> buffer_;
ResourceDispatcherHost* rdh_;