Index: chrome/browser/download/download_process_handle.cc |
diff --git a/chrome/browser/download/download_process_handle.cc b/chrome/browser/download/download_process_handle.cc |
index f4c7f321ddda56d2205eceee447831c98efcbbde..cbc6f890f0ae0ea9d2d6128fa74a52bd3b67ff90 100644 |
--- a/chrome/browser/download/download_process_handle.cc |
+++ b/chrome/browser/download/download_process_handle.cc |
@@ -4,19 +4,23 @@ |
#include "chrome/browser/download/download_process_handle.h" |
+#include "base/stringprintf.h" |
#include "chrome/browser/profiles/profile.h" |
#include "chrome/browser/tab_contents/tab_util.h" |
#include "content/browser/browser_thread.h" |
+#include "content/browser/renderer_host/resource_dispatcher_host.h" |
#include "content/browser/tab_contents/tab_contents.h" |
DownloadProcessHandle::DownloadProcessHandle() |
: child_id_(-1), render_view_id_(-1), request_id_(-1) { |
} |
-DownloadProcessHandle::DownloadProcessHandle(int child_id, |
+DownloadProcessHandle::DownloadProcessHandle(ResourceDispatcherHost* rdh, |
+ int child_id, |
int render_view_id, |
int request_id) |
- : child_id_(child_id), |
+ : rdh_(rdh), |
+ child_id_(child_id), |
render_view_id_(render_view_id), |
request_id_(request_id) { |
} |
@@ -37,3 +41,52 @@ DownloadManager* DownloadProcessHandle::GetDownloadManager() { |
return profile->GetDownloadManager(); |
} |
+ |
+void DownloadProcessHandle::PauseRequest(bool pause) { |
+ if (rdh_) { |
+ BrowserThread::PostTask( |
+ BrowserThread::IO, FROM_HERE, |
+ NewRunnableFunction(&DownloadProcessHandle::RDHPauseRequest, |
+ rdh_, child_id_, request_id_, pause)); |
+ } |
+} |
+ |
+void DownloadProcessHandle::CancelRequest() { |
+ if (rdh_) |
Paweł Hajdan Jr.
2011/06/04 08:58:51
nit: Please use braces {} for multi-line "if" body
Randy Smith (Not in Mondays)
2011/06/07 22:41:11
Done.
|
+ BrowserThread::PostTask( |
+ BrowserThread::IO, FROM_HERE, |
+ NewRunnableFunction(&DownloadProcessHandle::RDHCancelRequest, |
+ rdh_, child_id_, request_id_)); |
+} |
+ |
+// Static |
+void DownloadProcessHandle::RDHPauseRequest( |
Paweł Hajdan Jr.
2011/06/04 08:58:51
Why are those methods declared as static members o
Randy Smith (Not in Mondays)
2011/06/07 22:41:11
D'oh! Quite right, much cleaner.
|
+ ResourceDispatcherHost* rdh, |
+ int process_unique_id, |
+ int request_id, |
+ bool pause) |
+{ |
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
+ rdh->PauseRequest(process_unique_id, request_id, pause); |
+} |
+ |
+// Static |
+void DownloadProcessHandle::RDHCancelRequest( |
+ ResourceDispatcherHost* rdh, |
+ int process_unique_id, |
+ int request_id) |
+{ |
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
+ rdh->CancelRequest(process_unique_id, request_id, false); |
+} |
+ |
+std::string DownloadProcessHandle::DebugString() const { |
+ return base::StringPrintf("{" |
+ " child_id = %d" |
+ " render_view_id = %d" |
+ " request_id = %d" |
+ "}", |
+ child_id_, |
+ render_view_id_, |
+ request_id_); |
+} |