Index: content/browser/loader/stream_resource_handler.cc |
diff --git a/content/browser/loader/stream_resource_handler.cc b/content/browser/loader/stream_resource_handler.cc |
index 3560f98d17b9c84c252ac0f3f7b33c0de79abefb..117c1933a2e8cab4f67049226ec42e4d3a5ed628 100644 |
--- a/content/browser/loader/stream_resource_handler.cc |
+++ b/content/browser/loader/stream_resource_handler.cc |
@@ -4,7 +4,9 @@ |
#include "content/browser/loader/stream_resource_handler.h" |
+#include "base/bind.h" |
#include "base/logging.h" |
+#include "content/browser/loader/resource_controller.h" |
#include "net/url_request/url_request_status.h" |
namespace content { |
@@ -13,31 +15,32 @@ StreamResourceHandler::StreamResourceHandler(net::URLRequest* request, |
StreamRegistry* registry, |
const GURL& origin) |
: ResourceHandler(request) { |
- writer_.InitializeStream(registry, origin); |
+ writer_.InitializeStream(registry, origin, |
+ base::Bind(&StreamResourceHandler::OutOfBandCancel, |
+ base::Unretained(this), net::ERR_ABORTED, |
+ true /* tell_renderer */)); |
} |
StreamResourceHandler::~StreamResourceHandler() { |
} |
-void StreamResourceHandler::SetController(ResourceController* controller) { |
- writer_.set_controller(controller); |
- ResourceHandler::SetController(controller); |
-} |
- |
-bool StreamResourceHandler::OnRequestRedirected( |
+void StreamResourceHandler::OnRequestRedirected( |
const net::RedirectInfo& redirect_info, |
ResourceResponse* resp, |
- bool* defer) { |
- return true; |
+ std::unique_ptr<ResourceController> controller) { |
+ controller->Resume(); |
} |
-bool StreamResourceHandler::OnResponseStarted(ResourceResponse* resp, |
- bool* defer) { |
- return true; |
+void StreamResourceHandler::OnResponseStarted( |
+ ResourceResponse* resp, |
+ std::unique_ptr<ResourceController> controller) { |
+ controller->Resume(); |
} |
-bool StreamResourceHandler::OnWillStart(const GURL& url, bool* defer) { |
- return true; |
+void StreamResourceHandler::OnWillStart( |
+ const GURL& url, |
+ std::unique_ptr<ResourceController> controller) { |
+ controller->Resume(); |
} |
bool StreamResourceHandler::OnWillRead(scoped_refptr<net::IOBuffer>* buf, |
@@ -47,15 +50,19 @@ bool StreamResourceHandler::OnWillRead(scoped_refptr<net::IOBuffer>* buf, |
return true; |
} |
-bool StreamResourceHandler::OnReadCompleted(int bytes_read, bool* defer) { |
- writer_.OnReadCompleted(bytes_read, defer); |
- return true; |
+void StreamResourceHandler::OnReadCompleted( |
+ int bytes_read, |
+ std::unique_ptr<ResourceController> controller) { |
+ writer_.OnReadCompleted(bytes_read, |
+ base::Bind(&ResourceController::Resume, |
+ base::Passed(std::move(controller)))); |
} |
void StreamResourceHandler::OnResponseCompleted( |
const net::URLRequestStatus& status, |
- bool* defer) { |
+ std::unique_ptr<ResourceController> controller) { |
writer_.Finalize(status.error()); |
+ controller->Resume(); |
} |
void StreamResourceHandler::OnDataDownloaded(int bytes_downloaded) { |