Chromium Code Reviews| Index: content/browser/frame_host/interstitial_page_impl.cc |
| diff --git a/content/browser/frame_host/interstitial_page_impl.cc b/content/browser/frame_host/interstitial_page_impl.cc |
| index 036f3ea83dfeef00e0cfb1b00977b31ffbb91307..583428933f0d7c358402fc9a4afdb82f935959f7 100644 |
| --- a/content/browser/frame_host/interstitial_page_impl.cc |
| +++ b/content/browser/frame_host/interstitial_page_impl.cc |
| @@ -296,9 +296,10 @@ void InterstitialPageImpl::Hide() { |
| frame_tree_.root()->ResetForNewProcess(); |
| controller_->delegate()->DetachInterstitialPage(); |
| // Let's revert to the original title if necessary. |
| - NavigationEntry* entry = controller_->GetVisibleEntry(); |
| + NavigationEntryImpl* entry = controller_->GetVisibleEntry(); |
| if (entry && !new_navigation_ && should_revert_web_contents_title_) { |
| - entry->SetTitle(original_web_contents_title_); |
| + static_cast<WebContentsImpl*>(web_contents_)->UpdateTitleForEntry( |
| + entry, original_web_contents_title_); |
| controller_->delegate()->NotifyNavigationStateChanged( |
| INVALIDATE_TYPE_TITLE); |
|
Charlie Reis
2016/06/24 22:21:17
One way to make this cleaner would be to move Noti
afakhry
2016/06/27 14:29:18
I made it public, moved the call to NotifyNavigati
Charlie Reis
2016/06/28 21:13:31
If no one is listening to the return value, we sho
|
| } |
| @@ -391,7 +392,7 @@ void InterstitialPageImpl::UpdateTitle( |
| RenderViewHost* render_view_host = render_frame_host->GetRenderViewHost(); |
| DCHECK(render_view_host == render_view_host_); |
| - NavigationEntry* entry = controller_->GetVisibleEntry(); |
| + NavigationEntryImpl* entry = controller_->GetVisibleEntry(); |
| if (!entry) { |
| // There may be no visible entry if no URL has committed (e.g., after |
| // window.open("")). InterstitialPages with the new_navigation flag create |
| @@ -410,7 +411,8 @@ void InterstitialPageImpl::UpdateTitle( |
| } |
| // TODO(evan): make use of title_direction. |
| // http://code.google.com/p/chromium/issues/detail?id=27094 |
| - entry->SetTitle(title); |
| + static_cast<WebContentsImpl*>(web_contents_)->UpdateTitleForEntry(entry, |
| + title); |
| controller_->delegate()->NotifyNavigationStateChanged(INVALIDATE_TYPE_TITLE); |
|
Charlie Reis
2016/06/24 22:21:17
Same here.
afakhry
2016/06/27 14:29:18
Done.
|
| } |
| @@ -667,8 +669,18 @@ void InterstitialPageImpl::DontProceed() { |
| TakeActionOnResourceDispatcher(CANCEL); |
| if (should_discard_pending_nav_entry_) { |
| + // Revert back to the last committed title (if any) before we discard the |
| + // non-committed entries. |
| + NavigationEntryImpl* last_committed_entry = |
| + controller_->GetLastCommittedEntry(); |
| + if (last_committed_entry) { |
| + NavigationEntryImpl* visible_entry = controller_->GetVisibleEntry(); |
|
Charlie Reis
2016/06/24 22:21:17
I think this might be wrong. In general, we shoul
afakhry
2016/06/27 14:29:18
We need this if we want TitleWasSet() to be emitte
Charlie Reis
2016/06/28 00:47:09
I feel like we're going about this the wrong way.
afakhry
2016/06/28 14:34:17
Yes, it happens as a result of calling:
delegate_
Charlie Reis
2016/06/28 21:13:31
I see.
This seems to boil down to WebContentsObse
|
| + static_cast<WebContentsImpl*>(web_contents_)->UpdateTitleForEntry( |
| + visible_entry, last_committed_entry->GetTitle()); |
| + } |
| + |
| // Since no navigation happens we have to discard the transient entry |
| - // explicitely. Note that by calling DiscardNonCommittedEntries() we also |
| + // explicitly. Note that by calling DiscardNonCommittedEntries() we also |
| // discard the pending entry, which is what we want, since the navigation is |
| // cancelled. |
| controller_->DiscardNonCommittedEntries(); |