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

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

Issue 435833002: Navigation transitions: Plumb data from the outgoing renderer to the incoming renderer (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Testfix Created 6 years, 4 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
Index: content/browser/loader/cross_site_resource_handler.cc
diff --git a/content/browser/loader/cross_site_resource_handler.cc b/content/browser/loader/cross_site_resource_handler.cc
index f8a5e371e103640c85cf0f02936c02c768ae968e..3d7862ff56974f5585e39793a31ddaaae34db4a2 100644
--- a/content/browser/loader/cross_site_resource_handler.cc
+++ b/content/browser/loader/cross_site_resource_handler.cc
@@ -88,12 +88,11 @@ void OnCrossSiteResponseHelper(const CrossSiteResponseParams& params) {
void OnDeferredAfterResponseStartedHelper(
const GlobalRequestID& global_request_id,
int render_frame_id,
- const scoped_refptr<net::HttpResponseHeaders>& headers,
- const GURL& url) {
+ const TransitionLayerData& transition_data) {
RenderFrameHostImpl* rfh =
RenderFrameHostImpl::FromID(global_request_id.child_id, render_frame_id);
if (rfh)
- rfh->OnDeferredAfterResponseStarted(global_request_id, headers, url);
+ rfh->OnDeferredAfterResponseStarted(global_request_id, transition_data);
}
bool CheckNavigationPolicyOnUI(GURL url, int process_id, int render_frame_id) {
@@ -153,14 +152,22 @@ bool CrossSiteResourceHandler::OnResponseStarted(
ResourceRequestInfoImpl* info = GetRequestInfo();
info->set_cross_site_handler(this);
+ TransitionLayerData transition_data;
bool is_navigation_transition =
TransitionRequestManager::GetInstance()->HasPendingTransitionRequest(
- info->GetChildID(), info->GetRenderFrameID());
+ info->GetChildID(), info->GetRenderFrameID(), request()->url(),
+ &transition_data);
- if (is_navigation_transition)
- return OnNavigationTransitionResponseStarted(response, defer);
- else
+ if (is_navigation_transition) {
+ if (response_)
+ transition_data.response_headers = response_->head.headers;
+ transition_data.request_url = request()->url();
+
+ return OnNavigationTransitionResponseStarted(response, defer,
+ transition_data);
+ } else {
return OnNormalResponseStarted(response, defer);
+ }
}
bool CrossSiteResourceHandler::OnNormalResponseStarted(
@@ -231,14 +238,10 @@ bool CrossSiteResourceHandler::OnNormalResponseStarted(
bool CrossSiteResourceHandler::OnNavigationTransitionResponseStarted(
ResourceResponse* response,
- bool* defer) {
+ bool* defer,
+ const TransitionLayerData& transition_data) {
ResourceRequestInfoImpl* info = GetRequestInfo();
- scoped_refptr<net::HttpResponseHeaders> headers;
- if (response_)
- headers = response_->head.headers;
- GURL url = request()->url();
-
GlobalRequestID global_id(info->GetChildID(), info->GetRequestID());
int render_frame_id = info->GetRenderFrameID();
BrowserThread::PostTask(
@@ -248,8 +251,7 @@ bool CrossSiteResourceHandler::OnNavigationTransitionResponseStarted(
&OnDeferredAfterResponseStartedHelper,
global_id,
render_frame_id,
- headers,
- url));
+ transition_data));
*defer = true;
OnDidDefer();
« no previous file with comments | « content/browser/loader/cross_site_resource_handler.h ('k') | content/browser/renderer_host/render_message_filter.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698