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

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

Issue 2526983002: Refactor ResourceHandler API. (Closed)
Patch Set: Response to comments Created 3 years, 11 months 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
« no previous file with comments | « content/browser/loader/sync_resource_handler.h ('k') | content/browser/loader/test_resource_handler.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 21e520b4547ab789a576114ddb7e2f59bbde8177..3dbea2dd9567cfa0f9ef4fefa5e8bd4f9913eabf 100644
--- a/content/browser/loader/sync_resource_handler.cc
+++ b/content/browser/loader/sync_resource_handler.cc
@@ -7,6 +7,7 @@
#include "base/callback_helpers.h"
#include "base/logging.h"
#include "content/browser/loader/netlog_observer.h"
+#include "content/browser/loader/resource_controller.h"
#include "content/browser/loader/resource_dispatcher_host_impl.h"
#include "content/browser/loader/resource_request_info_impl.h"
#include "content/common/resource_messages.h"
@@ -35,10 +36,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(),
@@ -51,21 +52,24 @@ 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) {
ResourceRequestInfoImpl* info = GetRequestInfo();
DCHECK(info->requester_info()->IsRenderer());
- if (!info->requester_info()->filter())
- return false;
+ if (!info->requester_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) {
« no previous file with comments | « content/browser/loader/sync_resource_handler.h ('k') | content/browser/loader/test_resource_handler.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698