diff options
Diffstat (limited to 'chrome/renderer/render_view.cc')
-rw-r--r-- | chrome/renderer/render_view.cc | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/chrome/renderer/render_view.cc b/chrome/renderer/render_view.cc index 519e37d..28a9195 100644 --- a/chrome/renderer/render_view.cc +++ b/chrome/renderer/render_view.cc @@ -1015,6 +1015,7 @@ void RenderView::UpdateURL(WebFrame* frame) { // the page contained a client redirect (meta refresh, document.loc...), // so we set the referrer and transition to match. if (completed_client_redirect_src_.is_valid()) { + DCHECK(completed_client_redirect_src_ == params.redirects[0]); params.referrer = completed_client_redirect_src_; params.transition = static_cast<PageTransition::Type>( params.transition | PageTransition::CLIENT_REDIRECT); @@ -1146,8 +1147,12 @@ void RenderView::DidStartProvisionalLoadForFrame( WebView* webview, WebFrame* frame, NavigationGesture gesture) { - if (webview->GetMainFrame() == frame) + if (webview->GetMainFrame() == frame) { navigation_gesture_ = gesture; + + // Make sure redirect tracking state is clear for the new load. + completed_client_redirect_src_ = GURL(); + } Send(new ViewHostMsg_DidStartProvisionalLoadForFrame( routing_id_, webview->GetMainFrame() == frame, |