Chromium Code Reviews| Index: content/browser/frame_host/navigator_impl.cc |
| diff --git a/content/browser/frame_host/navigator_impl.cc b/content/browser/frame_host/navigator_impl.cc |
| index 1af57c7c140fe84d2354331e736ab50b2f420236..d28ca9e52e4b8e96331a0a4063c538d7aee37070 100644 |
| --- a/content/browser/frame_host/navigator_impl.cc |
| +++ b/content/browser/frame_host/navigator_impl.cc |
| @@ -144,7 +144,8 @@ NavigationController* NavigatorImpl::GetController() { |
| void NavigatorImpl::DidStartProvisionalLoad( |
| RenderFrameHostImpl* render_frame_host, |
| int parent_routing_id, |
| - const GURL& url) { |
| + const GURL& url, |
| + bool is_transition_navigation) { |
| bool is_error_page = (url.spec() == kUnreachableWebDataURL); |
| bool is_iframe_srcdoc = (url.spec() == kAboutSrcDocURL); |
| GURL validated_url(url); |
| @@ -154,6 +155,10 @@ void NavigatorImpl::DidStartProvisionalLoad( |
| bool is_main_frame = render_frame_host->frame_tree_node()->IsMainFrame(); |
| NavigationEntryImpl* pending_entry = |
| NavigationEntryImpl::FromNavigationEntry(controller_->GetPendingEntry()); |
| + |
| + is_transition_navigation |= (pending_entry && |
| + pending_entry->is_transition_navigation()); |
| + |
| if (is_main_frame) { |
| // If there is no browser-initiated pending entry for this navigation and it |
| // is not for the error URL, create a pending entry using the current |
| @@ -185,6 +190,9 @@ void NavigatorImpl::DidStartProvisionalLoad( |
| if (delegate_) |
| delegate_->NotifyChangedNavigationState(content::INVALIDATE_TYPE_URL); |
| } |
| + |
| + if (delegate_ && is_transition_navigation) |
| + delegate_->DidStartNavigationTransition(render_frame_host); |
|
nasko
2014/07/03 09:39:30
Why add a full new delegate method when you are pa
oystein (OOO til 10th of July)
2014/07/22 00:02:43
I could pass it along to WebContentsObserver::DidS
|
| } |
| if (delegate_) { |
| @@ -559,7 +567,8 @@ void NavigatorImpl::RequestOpenURL( |
| const Referrer& referrer, |
| WindowOpenDisposition disposition, |
| bool should_replace_current_entry, |
| - bool user_gesture) { |
| + bool user_gesture, |
| + bool is_transition_navigation) { |
| SiteInstance* current_site_instance = |
| GetRenderManager(render_frame_host)->current_frame_host()-> |
| GetSiteInstance(); |
| @@ -579,7 +588,7 @@ void NavigatorImpl::RequestOpenURL( |
| RequestTransferURL( |
| render_frame_host, url, redirect_chain, referrer, PAGE_TRANSITION_LINK, |
| disposition, GlobalRequestID(), |
| - should_replace_current_entry, user_gesture); |
| + should_replace_current_entry, user_gesture, is_transition_navigation); |
| } |
| void NavigatorImpl::RequestTransferURL( |
| @@ -591,7 +600,8 @@ void NavigatorImpl::RequestTransferURL( |
| WindowOpenDisposition disposition, |
| const GlobalRequestID& transferred_global_request_id, |
| bool should_replace_current_entry, |
| - bool user_gesture) { |
| + bool user_gesture, |
| + bool is_transition_navigation) { |
| GURL dest_url(url); |
| SiteInstance* current_site_instance = |
| GetRenderManager(render_frame_host)->current_frame_host()-> |
| @@ -614,6 +624,7 @@ void NavigatorImpl::RequestTransferURL( |
| params.transferred_global_request_id = transferred_global_request_id; |
| params.should_replace_current_entry = should_replace_current_entry; |
| params.user_gesture = user_gesture; |
| + params.is_transition_navigation = is_transition_navigation; |
| if (GetRenderManager(render_frame_host)->web_ui()) { |
| // Web UI pages sometimes want to override the page transition type for |