Index: content/browser/loader/resource_handler.cc |
diff --git a/content/browser/loader/resource_handler.cc b/content/browser/loader/resource_handler.cc |
index 896809a3d2d334001d4d3f5fb92352b2657de096..cfd6d71988b5d4a3d8b609688ae154caa0611c40 100644 |
--- a/content/browser/loader/resource_handler.cc |
+++ b/content/browser/loader/resource_handler.cc |
@@ -8,15 +8,52 @@ |
namespace content { |
+ResourceHandler::Delegate::Delegate() {} |
+ |
+ResourceHandler::Delegate::~Delegate() {} |
+ |
+void ResourceHandler::SetDelegate(Delegate* delegate) { |
+ delegate_ = delegate; |
+} |
+ |
ResourceHandler::~ResourceHandler() {} |
ResourceHandler::ResourceHandler(net::URLRequest* request) |
- : controller_(NULL), |
- request_(request) { |
+ : request_(request) {} |
+ |
+void ResourceHandler::HoldController( |
+ std::unique_ptr<ResourceController> controller) { |
+ controller_ = std::move(controller); |
+} |
+ |
+std::unique_ptr<ResourceController> ResourceHandler::ReleaseController() { |
+ DCHECK(controller_); |
+ |
+ // Can't use std::move, as that doesn't allow subsequently checking if |
+ // |controller_| is null or not. |
Charlie Harrison
2017/01/25 20:23:00
Are you sure? I thought move semantics guaranteed
mmenke
2017/01/25 22:07:59
You're right...It's not guaranteed be std::move in
|
+ std::unique_ptr<ResourceController> controller; |
+ std::swap(controller, controller_); |
+ return controller; |
+} |
+ |
+void ResourceHandler::Resume() { |
+ ReleaseController()->Resume(); |
+} |
+ |
+void ResourceHandler::Cancel() { |
+ ReleaseController()->Cancel(); |
+} |
+ |
+void ResourceHandler::CancelAndIgnore() { |
+ ReleaseController()->CancelAndIgnore(); |
+} |
+ |
+void ResourceHandler::CancelWithError(int error_code) { |
+ ReleaseController()->CancelWithError(error_code); |
} |
-void ResourceHandler::SetController(ResourceController* controller) { |
- controller_ = controller; |
+void ResourceHandler::OutOfBandCancel(int error_code, bool tell_renderer) { |
+ delegate_->OutOfBandCancel(error_code, tell_renderer); |
} |
ResourceRequestInfoImpl* ResourceHandler::GetRequestInfo() const { |