| Index: content/browser/loader/resource_handler.cc
|
| diff --git a/content/browser/loader/resource_handler.cc b/content/browser/loader/resource_handler.cc
|
| index 1c9287e3ad29d84bad0ff66b299e765c2d4fb485..e2a1155630400ce0558e859fa80f68ade2bfe0fd 100644
|
| --- a/content/browser/loader/resource_handler.cc
|
| +++ b/content/browser/loader/resource_handler.cc
|
| @@ -4,6 +4,7 @@
|
|
|
| #include "content/browser/loader/resource_handler.h"
|
|
|
| +#include "content/browser/loader/resource_dispatcher_host_impl.h"
|
| #include "content/browser/loader/resource_request_info_impl.h"
|
|
|
| namespace content {
|
| @@ -11,12 +12,30 @@ namespace content {
|
| ResourceHandler::~ResourceHandler() {}
|
|
|
| ResourceHandler::ResourceHandler(net::URLRequest* request)
|
| - : controller_(NULL),
|
| - request_(request) {
|
| + : request_(request) {}
|
| +
|
| +std::unique_ptr<ResourceController> ResourceHandler::TakeController() {
|
| + DCHECK(controller_);
|
| +
|
| + std::unique_ptr<ResourceController> controller;
|
| + std::swap(controller, controller_);
|
| + return controller;
|
| +}
|
| +
|
| +void ResourceHandler::Resume() {
|
| + TakeController()->Resume();
|
| +}
|
| +
|
| +void ResourceHandler::Cancel() {
|
| + TakeController()->Cancel();
|
| +}
|
| +
|
| +void ResourceHandler::CancelAndIgnore() {
|
| + TakeController()->CancelAndIgnore();
|
| }
|
|
|
| -void ResourceHandler::SetController(ResourceController* controller) {
|
| - controller_ = controller;
|
| +void ResourceHandler::CancelWithError(int error_code) {
|
| + TakeController()->CancelWithError(error_code);
|
| }
|
|
|
| ResourceRequestInfoImpl* ResourceHandler::GetRequestInfo() const {
|
| @@ -31,4 +50,10 @@ ResourceMessageFilter* ResourceHandler::GetFilter() const {
|
| return GetRequestInfo()->filter();
|
| }
|
|
|
| +void ResourceHandler::OutOfBandCancel() {
|
| + ResourceRequestInfoImpl* info = GetRequestInfo();
|
| + GlobalRequestID id = info->GetGlobalRequestID();
|
| + ResourceDispatcherHostImpl::Get()->CancelRequest(id.child_id, id.request_id);
|
| +}
|
| +
|
| } // namespace content
|
|
|