Index: content/browser/web_contents/web_contents_impl.cc |
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc |
index c3c2aad3378e3ba04a4d01c9abf1e6002e836cad..166da11eefa667499fb61c432713f0b4af81a250 100644 |
--- a/content/browser/web_contents/web_contents_impl.cc |
+++ b/content/browser/web_contents/web_contents_impl.cc |
@@ -846,13 +846,24 @@ WebUI* WebContentsImpl::CreateSubframeWebUI(const GURL& url, |
} |
WebUI* WebContentsImpl::GetWebUI() const { |
- return GetRenderManager()->web_ui() |
- ? GetRenderManager()->web_ui() |
- : GetRenderManager()->GetNavigatingWebUI(); |
+ if (GetCommittedWebUI()) |
+ return GetCommittedWebUI(); |
+ |
+ RenderFrameHostImpl* upcoming_frame_host = nullptr; |
+ if (base::CommandLine::ForCurrentProcess()->HasSwitch( |
+ switches::kEnableBrowserSideNavigation)) { |
+ upcoming_frame_host = GetRenderManager()->speculative_frame_host(); |
+ } else { |
+ upcoming_frame_host = GetRenderManager()->pending_frame_host(); |
+ } |
+ if (upcoming_frame_host) |
+ return upcoming_frame_host->web_ui(); |
+ |
+ return nullptr; |
} |
WebUI* WebContentsImpl::GetCommittedWebUI() const { |
- return GetRenderManager()->web_ui(); |
+ return frame_tree_.root()->current_frame_host()->web_ui(); |
} |
void WebContentsImpl::SetUserAgentOverride(const std::string& override) { |
@@ -919,9 +930,18 @@ const base::string16& WebContentsImpl::GetTitle() const { |
if (entry) { |
return entry->GetTitleForDisplay(accept_languages); |
} |
- WebUI* our_web_ui = GetRenderManager()->GetNavigatingWebUI() |
- ? GetRenderManager()->GetNavigatingWebUI() |
- : GetRenderManager()->web_ui(); |
+ |
+ RenderFrameHostImpl* upcoming_frame_host = nullptr; |
+ if (base::CommandLine::ForCurrentProcess()->HasSwitch( |
+ switches::kEnableBrowserSideNavigation)) { |
+ upcoming_frame_host = GetRenderManager()->speculative_frame_host(); |
+ } else { |
+ upcoming_frame_host = GetRenderManager()->pending_frame_host(); |
+ } |
+ WebUI* our_web_ui = upcoming_frame_host |
+ ? upcoming_frame_host->web_ui() |
+ : GetRenderManager()->current_frame_host()->web_ui(); |
+ |
if (our_web_ui) { |
// Don't override the title in view source mode. |
entry = controller_.GetVisibleEntry(); |