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

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

Issue 2476163003: Refactor ResourceHandler API. (Closed)
Patch Set: Minor cleanups, one real fix 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
« no previous file with comments | « content/browser/loader/throttling_resource_handler.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/browser/loader/throttling_resource_handler.cc
diff --git a/content/browser/loader/throttling_resource_handler.cc b/content/browser/loader/throttling_resource_handler.cc
index cf8ad2247c1f47a9dceb633080ab22195ab27a2f..53ac66a86be03386ff646c160e04c02ade46b054 100644
--- a/content/browser/loader/throttling_resource_handler.cc
+++ b/content/browser/loader/throttling_resource_handler.cc
@@ -33,77 +33,91 @@ ThrottlingResourceHandler::ThrottlingResourceHandler(
ThrottlingResourceHandler::~ThrottlingResourceHandler() {
}
-bool ThrottlingResourceHandler::OnRequestRedirected(
+void ThrottlingResourceHandler::OnRequestRedirected(
const net::RedirectInfo& redirect_info,
ResourceResponse* response,
- bool* defer) {
+ bool* defer_or_cancel) {
DCHECK(!cancelled_by_resource_throttle_);
- *defer = false;
+ *defer_or_cancel = false;
while (next_index_ < throttles_.size()) {
int index = next_index_;
- throttles_[index]->WillRedirectRequest(redirect_info, defer);
+ throttles_[index]->WillRedirectRequest(redirect_info, defer_or_cancel);
next_index_++;
- if (cancelled_by_resource_throttle_)
- return false;
- if (*defer) {
+ if (cancelled_by_resource_throttle_) {
+ // Nothing else to do here, already told controller() to cancel the
+ // request.
+ *defer_or_cancel = true;
+ return;
+ }
+ if (*defer_or_cancel) {
OnRequestDefered(index);
deferred_stage_ = DEFERRED_REDIRECT;
deferred_redirect_ = redirect_info;
deferred_response_ = response;
- return true; // Do not cancel.
+ return;
}
}
next_index_ = 0; // Reset for next time.
- return next_handler_->OnRequestRedirected(redirect_info, response, defer);
+ return next_handler_->OnRequestRedirected(redirect_info, response,
+ defer_or_cancel);
}
-bool ThrottlingResourceHandler::OnWillStart(const GURL& url, bool* defer) {
+void ThrottlingResourceHandler::OnWillStart(const GURL& url,
+ bool* defer_or_cancel) {
DCHECK(!cancelled_by_resource_throttle_);
- *defer = false;
+ *defer_or_cancel = false;
while (next_index_ < throttles_.size()) {
int index = next_index_;
- throttles_[index]->WillStartRequest(defer);
+ throttles_[index]->WillStartRequest(defer_or_cancel);
next_index_++;
- if (cancelled_by_resource_throttle_)
- return false;
- if (*defer) {
+ if (cancelled_by_resource_throttle_) {
+ // Nothing else to do here, already told controller() to cancel the
+ // request.
+ *defer_or_cancel = true;
+ return;
+ }
+ if (*defer_or_cancel) {
OnRequestDefered(index);
deferred_stage_ = DEFERRED_START;
deferred_url_ = url;
- return true; // Do not cancel.
+ return;
}
}
next_index_ = 0; // Reset for next time.
- return next_handler_->OnWillStart(url, defer);
+ next_handler_->OnWillStart(url, defer_or_cancel);
}
-bool ThrottlingResourceHandler::OnResponseStarted(ResourceResponse* response,
- bool* defer) {
+void ThrottlingResourceHandler::OnResponseStarted(ResourceResponse* response,
+ bool* defer_or_cancel) {
DCHECK(!cancelled_by_resource_throttle_);
while (next_index_ < throttles_.size()) {
int index = next_index_;
- throttles_[index]->WillProcessResponse(defer);
+ throttles_[index]->WillProcessResponse(defer_or_cancel);
next_index_++;
- if (cancelled_by_resource_throttle_)
- return false;
- if (*defer) {
+ if (cancelled_by_resource_throttle_) {
+ // Nothing else to do here, already told controller() to cancel the
+ // request.
+ *defer_or_cancel = true;
+ return;
+ }
+ if (*defer_or_cancel) {
OnRequestDefered(index);
deferred_stage_ = DEFERRED_RESPONSE;
deferred_response_ = response;
- return true; // Do not cancel.
+ return;
}
}
next_index_ = 0; // Reset for next time.
- return next_handler_->OnResponseStarted(response, defer);
+ return next_handler_->OnResponseStarted(response, defer_or_cancel);
}
void ThrottlingResourceHandler::Cancel() {
@@ -150,12 +164,10 @@ void ThrottlingResourceHandler::ResumeStart() {
GURL url = deferred_url_;
deferred_url_ = GURL();
- bool defer = false;
- if (!OnWillStart(url, &defer)) {
- controller()->Cancel();
- } else if (!defer) {
+ bool defer_or_cancel = false;
+ OnWillStart(url, &defer_or_cancel);
+ if (!defer_or_cancel)
controller()->Resume();
- }
}
void ThrottlingResourceHandler::ResumeRedirect() {
@@ -166,12 +178,10 @@ void ThrottlingResourceHandler::ResumeRedirect() {
scoped_refptr<ResourceResponse> response;
deferred_response_.swap(response);
- bool defer = false;
- if (!OnRequestRedirected(redirect_info, response.get(), &defer)) {
- controller()->Cancel();
- } else if (!defer) {
+ bool defer_or_cancel = false;
+ OnRequestRedirected(redirect_info, response.get(), &defer_or_cancel);
+ if (!defer_or_cancel)
controller()->Resume();
- }
}
void ThrottlingResourceHandler::ResumeResponse() {
@@ -180,12 +190,10 @@ void ThrottlingResourceHandler::ResumeResponse() {
scoped_refptr<ResourceResponse> response;
deferred_response_.swap(response);
- bool defer = false;
- if (!OnResponseStarted(response.get(), &defer)) {
- controller()->Cancel();
- } else if (!defer) {
+ bool defer_or_cancel = false;
+ OnResponseStarted(response.get(), &defer_or_cancel);
+ if (!defer_or_cancel)
controller()->Resume();
- }
}
void ThrottlingResourceHandler::OnRequestDefered(int throttle_index) {
« no previous file with comments | « content/browser/loader/throttling_resource_handler.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698