Index: content/browser/loader/resource_loader.h |
diff --git a/content/browser/loader/resource_loader.h b/content/browser/loader/resource_loader.h |
index 5ea815bdddf69a78aaa3d7574447d4b8e8367d72..8662cca40b9d7657be5fd057fd7b2433d3d80f88 100644 |
--- a/content/browser/loader/resource_loader.h |
+++ b/content/browser/loader/resource_loader.h |
@@ -8,6 +8,7 @@ |
#include "base/gtest_prod_util.h" |
#include "base/memory/scoped_ptr.h" |
#include "base/memory/weak_ptr.h" |
+#include "base/timer/timer.h" |
#include "content/browser/loader/resource_handler.h" |
#include "content/browser/ssl/ssl_error_handler.h" |
#include "content/common/content_export.h" |
@@ -35,6 +36,10 @@ class CONTENT_EXPORT ResourceLoader : public net::URLRequest::Delegate, |
void StartRequest(); |
void CancelRequest(bool from_renderer); |
+ // Sets the resource as detached and starts a timer to cancel the request in |
+ // the future. |
+ void Detach(); |
+ |
void ReportUploadProgress(); |
bool is_transferring() const { return is_transferring_; } |
@@ -50,6 +55,10 @@ class CONTENT_EXPORT ResourceLoader : public net::URLRequest::Delegate, |
// IPC message handlers: |
void OnUploadProgressACK(); |
+ void set_detachable_delay_ms(int delay) { |
+ detachable_delay_on_cancel_ms_ = delay; |
+ } |
+ |
private: |
FRIEND_TEST_ALL_PREFIXES(ResourceLoaderTest, ClientCertStoreLookup); |
FRIEND_TEST_ALL_PREFIXES(ResourceLoaderTest, ClientCertStoreNull); |
@@ -119,6 +128,9 @@ class CONTENT_EXPORT ResourceLoader : public net::URLRequest::Delegate, |
// which point we'll receive a new ResourceHandler. |
bool is_transferring_; |
+ int detachable_delay_on_cancel_ms_; |
+ scoped_ptr<base::OneShotTimer<ResourceLoader> > detached_timer_; |
+ |
base::WeakPtrFactory<ResourceLoader> weak_ptr_factory_; |
DISALLOW_COPY_AND_ASSIGN(ResourceLoader); |