Commit ae9c0929 authored by mmenke@chromium.org's avatar mmenke@chromium.org

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
parent 7f606ae7
......@@ -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();
......
......@@ -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
......@@ -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_;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment