Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(198)

Unified Diff: content/browser/loader/sync_resource_handler.cc

Issue 2526983002: Refactor ResourceHandler API. (Closed)
Patch Set: Fix stuff Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/browser/loader/sync_resource_handler.cc
diff --git a/content/browser/loader/sync_resource_handler.cc b/content/browser/loader/sync_resource_handler.cc
index b0475ce0db12d7fb4f02e859102b61002a2bb5bd..b6ed965883f4d9706b5a331ecb8420a6dccce03c 100644
--- a/content/browser/loader/sync_resource_handler.cc
+++ b/content/browser/loader/sync_resource_handler.cc
@@ -11,6 +11,7 @@
#include "content/browser/loader/resource_message_filter.h"
#include "content/browser/loader/resource_request_info_impl.h"
#include "content/common/resource_messages.h"
+#include "content/public/browser/resource_controller.h"
#include "content/public/browser/resource_dispatcher_host_delegate.h"
#include "content/public/browser/resource_request_info.h"
#include "net/base/io_buffer.h"
@@ -36,10 +37,10 @@ SyncResourceHandler::~SyncResourceHandler() {
result_handler_.Run(nullptr);
}
-bool SyncResourceHandler::OnRequestRedirected(
+void SyncResourceHandler::OnRequestRedirected(
const net::RedirectInfo& redirect_info,
ResourceResponse* response,
- bool* defer) {
+ std::unique_ptr<ResourceController> controller) {
if (rdh_->delegate()) {
rdh_->delegate()->OnRequestRedirected(
redirect_info.new_url, request(), GetRequestInfo()->GetContext(),
@@ -52,20 +53,23 @@ bool SyncResourceHandler::OnRequestRedirected(
// WebCore/platform/network/cf/ResourceHandleCFNet.cpp :-(
if (redirect_info.new_url.GetOrigin() != result_.final_url.GetOrigin()) {
LOG(ERROR) << "Cross origin redirect denied";
- return false;
+ controller->Cancel();
+ return;
}
result_.final_url = redirect_info.new_url;
total_transfer_size_ += request()->GetTotalReceivedBytes();
- return true;
+ controller->Resume();
}
-bool SyncResourceHandler::OnResponseStarted(
+void SyncResourceHandler::OnResponseStarted(
ResourceResponse* response,
- bool* defer) {
+ std::unique_ptr<ResourceController> controller) {
const ResourceRequestInfoImpl* info = GetRequestInfo();
- if (!info->filter())
- return false;
+ if (!info->filter()) {
+ controller->Cancel();
+ return;
+ }
if (rdh_->delegate()) {
rdh_->delegate()->OnResponseStarted(request(), info->GetContext(),
@@ -83,11 +87,13 @@ bool SyncResourceHandler::OnResponseStarted(
result_.response_time = response->head.response_time;
result_.load_timing = response->head.load_timing;
result_.devtools_info = response->head.devtools_info;
- return true;
+ controller->Resume();
}
-bool SyncResourceHandler::OnWillStart(const GURL& url, bool* defer) {
- return true;
+void SyncResourceHandler::OnWillStart(
+ const GURL& url,
+ std::unique_ptr<ResourceController> controller) {
+ controller->Resume();
}
bool SyncResourceHandler::OnWillRead(scoped_refptr<net::IOBuffer>* buf,
@@ -99,16 +105,17 @@ bool SyncResourceHandler::OnWillRead(scoped_refptr<net::IOBuffer>* buf,
return true;
}
-bool SyncResourceHandler::OnReadCompleted(int bytes_read, bool* defer) {
- if (!bytes_read)
- return true;
- result_.data.append(read_buffer_->data(), bytes_read);
- return true;
+void SyncResourceHandler::OnReadCompleted(
+ int bytes_read,
+ std::unique_ptr<ResourceController> controller) {
+ if (bytes_read)
+ result_.data.append(read_buffer_->data(), bytes_read);
+ controller->Resume();
}
void SyncResourceHandler::OnResponseCompleted(
const net::URLRequestStatus& status,
- bool* defer) {
+ std::unique_ptr<ResourceController> controller) {
result_.error_code = status.error();
int total_transfer_size = request()->GetTotalReceivedBytes();
@@ -116,6 +123,8 @@ void SyncResourceHandler::OnResponseCompleted(
result_.encoded_body_length = request()->GetRawBodyBytes();
base::ResetAndReturn(&result_handler_).Run(&result_);
+
+ controller->Resume();
}
void SyncResourceHandler::OnDataDownloaded(int bytes_downloaded) {

Powered by Google App Engine
This is Rietveld 408576698