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

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

Issue 2586543003: Add logging for request blocking by the RedirectToFileResourceHandler. (Closed)
Patch Set: Re-inserted did_defer_ DCHECK. Created 3 years, 12 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/redirect_to_file_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/redirect_to_file_resource_handler.cc
diff --git a/content/browser/loader/redirect_to_file_resource_handler.cc b/content/browser/loader/redirect_to_file_resource_handler.cc
index 2d55420e95a9f62ef659daf9e3bb6f8f56a63da6..a30d9dc68e2a3e4363d634b9cd6eff428d7061dd 100644
--- a/content/browser/loader/redirect_to_file_resource_handler.cc
+++ b/content/browser/loader/redirect_to_file_resource_handler.cc
@@ -172,6 +172,7 @@ bool RedirectToFileResourceHandler::OnWillStart(const GURL& url, bool* defer) {
// network request like this.
will_start_url_ = url;
did_defer_ = *defer = true;
+ request()->LogBlockedBy("RedirectToFileResourceHandler");
if (create_temporary_file_stream_.is_null()) {
CreateTemporaryFileStream(
base::Bind(&RedirectToFileResourceHandler::DidCreateTemporaryFile,
@@ -215,6 +216,7 @@ bool RedirectToFileResourceHandler::OnReadCompleted(int bytes_read,
if (BufIsFull()) {
did_defer_ = *defer = true;
+ request()->LogBlockedBy("RedirectToFileResourceHandler");
if (buf_->capacity() == bytes_read) {
// The network layer has saturated our buffer in one read. Next time, we
@@ -234,6 +236,7 @@ void RedirectToFileResourceHandler::OnResponseCompleted(
completed_status_ = status;
did_defer_ = true;
*defer = true;
+ request()->LogBlockedBy("RedirectToFileResourceHandler");
return;
}
next_handler_->OnResponseCompleted(status, defer);
@@ -254,10 +257,11 @@ void RedirectToFileResourceHandler::DidCreateTemporaryFile(
// Resume the request.
DCHECK(did_defer_);
bool defer = false;
+ request()->LogUnblocked();
if (!next_handler_->OnWillStart(will_start_url_, &defer)) {
controller()->Cancel();
} else if (!defer) {
- ResumeIfDeferred();
+ Resume();
} else {
did_defer_ = false;
}
@@ -293,9 +297,10 @@ void RedirectToFileResourceHandler::DidWriteToFile(int result) {
// this should run even in the |failed| case above, otherwise a failed write
// leaves the handler stuck.
bool defer = false;
+ request()->LogUnblocked();
next_handler_->OnResponseCompleted(completed_status_, &defer);
if (!defer) {
- ResumeIfDeferred();
+ Resume();
} else {
did_defer_ = false;
}
@@ -309,8 +314,10 @@ bool RedirectToFileResourceHandler::WriteMore() {
// We've caught up to the network load, but it may be in the process of
// appending more data to the buffer.
if (!buf_write_pending_) {
- if (BufIsFull())
- ResumeIfDeferred();
+ if (BufIsFull()) {
+ request()->LogUnblocked();
+ Resume();
mmenke 2017/01/06 17:56:17 Randy: This looks like a bug to me: If this is c
Randy Smith (Not in Mondays) 2017/01/09 21:55:27 Nice catch. This looks like a bug in RTFRH, but n
+ }
buf_->set_offset(0);
write_cursor_ = 0;
}
@@ -356,11 +363,10 @@ bool RedirectToFileResourceHandler::BufIsFull() const {
return buf_->RemainingCapacity() <= (2 * net::kMaxBytesToSniff);
}
-void RedirectToFileResourceHandler::ResumeIfDeferred() {
- if (did_defer_) {
- did_defer_ = false;
- controller()->Resume();
- }
+void RedirectToFileResourceHandler::Resume() {
+ DCHECK(did_defer_);
+ did_defer_ = false;
+ controller()->Resume();
}
} // namespace content
« no previous file with comments | « content/browser/loader/redirect_to_file_resource_handler.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698