summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormmenke@chromium.org <mmenke@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-02-13 22:40:23 +0000
committermmenke@chromium.org <mmenke@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-02-13 22:40:23 +0000
commitae9c09293f4e8356704df885478fe32e0f513734 (patch)
tree3a24ce9a8411ffefdb1246d4fb66a2d394323eab
parent7f606ae73f601e22a9cc3f5f5e39c72d6ccda62d (diff)
downloadchromium_src-ae9c09293f4e8356704df885478fe32e0f513734.zip
chromium_src-ae9c09293f4e8356704df885478fe32e0f513734.tar.gz
chromium_src-ae9c09293f4e8356704df885478fe32e0f513734.tar.bz2
Add logging to CrossSiteResourceHandler and BufferedResourceHandler,
when they block a URLRequest. BUG=294920 Review URL: https://codereview.chromium.org/153503004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@251161 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--content/browser/loader/buffered_resource_handler.cc2
-rw-r--r--content/browser/loader/cross_site_resource_handler.cc11
-rw-r--r--content/browser/loader/cross_site_resource_handler.h4
3 files changed, 15 insertions, 2 deletions
diff --git a/content/browser/loader/buffered_resource_handler.cc b/content/browser/loader/buffered_resource_handler.cc
index ba23eaf..8003154 100644
--- a/content/browser/loader/buffered_resource_handler.cc
+++ b/content/browser/loader/buffered_resource_handler.cc
@@ -334,6 +334,7 @@ bool BufferedResourceHandler::SelectNextHandler(bool* defer) {
PluginServiceImpl::GetInstance()->GetPlugins(
base::Bind(&BufferedResourceHandler::OnPluginsLoaded,
weak_ptr_factory_.GetWeakPtr()));
+ request()->LogBlockedBy("BufferedResourceHandler");
*defer = true;
return true;
}
@@ -473,6 +474,7 @@ bool BufferedResourceHandler::CopyReadBufferToNextHandler(int request_id) {
void BufferedResourceHandler::OnPluginsLoaded(
const std::vector<WebPluginInfo>& plugins) {
+ request()->LogUnblocked();
bool defer = false;
if (!ProcessResponse(&defer)) {
controller()->Cancel();
diff --git a/content/browser/loader/cross_site_resource_handler.cc b/content/browser/loader/cross_site_resource_handler.cc
index 8c93465..75009a29 100644
--- a/content/browser/loader/cross_site_resource_handler.cc
+++ b/content/browser/loader/cross_site_resource_handler.cc
@@ -176,7 +176,8 @@ bool CrossSiteResourceHandler::OnResponseStarted(
StartCrossSiteTransition(request_id, response, should_transfer);
// Defer loading until after the onunload event handler has run.
- did_defer_ = *defer = true;
+ *defer = true;
+ OnDidDefer();
return true;
}
@@ -220,8 +221,8 @@ void CrossSiteResourceHandler::OnResponseCompleted(
// Defer to tell RDH not to notify the world or clean up the pending request.
// We will do so in ResumeResponse.
- did_defer_ = true;
*defer = true;
+ OnDidDefer();
}
// We can now send the response to the new renderer, which will cause
@@ -314,9 +315,15 @@ void CrossSiteResourceHandler::StartCrossSiteTransition(
void CrossSiteResourceHandler::ResumeIfDeferred() {
if (did_defer_) {
+ request()->LogUnblocked();
did_defer_ = false;
controller()->Resume();
}
}
+void CrossSiteResourceHandler::OnDidDefer() {
+ did_defer_ = true;
+ request()->LogBlockedBy("CrossSiteResourceHandler");
+}
+
} // namespace content
diff --git a/content/browser/loader/cross_site_resource_handler.h b/content/browser/loader/cross_site_resource_handler.h
index 29e3f5a..e26c1d5 100644
--- a/content/browser/loader/cross_site_resource_handler.h
+++ b/content/browser/loader/cross_site_resource_handler.h
@@ -55,6 +55,10 @@ class CrossSiteResourceHandler : public LayeredResourceHandler {
void ResumeIfDeferred();
+ // Called when about to defer a request. Sets |did_defer_| and logs the
+ // defferral
+ void OnDidDefer();
+
bool has_started_response_;
bool in_cross_site_transition_;
bool completed_during_transition_;