#endif
const std::u16string& WebContentsImpl::GetTitle() {
- WebUI* our_web_ui =
- GetRenderManager()->speculative_frame_host()
- ? GetRenderManager()->speculative_frame_host()->web_ui()
- : GetRenderManager()->current_frame_host()->web_ui();
+ WebUI* our_web_ui = nullptr;
+ if (GetRenderManager()) {
+ WebUI* navigating_web_ui = nullptr;
+ if (GetRenderManager()->speculative_frame_host())
+ navigating_web_ui =
+ GetRenderManager()->speculative_frame_host()->web_ui();
+ if (!navigating_web_ui) {
+ if (GetRenderManager()->current_frame_host())
+ our_web_ui = GetRenderManager()->current_frame_host()->web_ui();
+ } else {
+ our_web_ui = navigating_web_ui;
+ }
+ }
+
if (our_web_ui) {
// Don't override the title in view source mode.
NavigationEntry* entry = GetController().GetVisibleEntry();
}
}
+#if BUILDFLAG(IS_EFL)
+ // The BrowserApp is expecting information only for the visible entry, instead
+ // of a title for last valid title of the URL. This would reflect while adding
+ // Bookmarks & other actions that require title of visible entry under
+ // proceses.
+ {
+ NavigationEntry* entry = GetController().GetVisibleEntry();
+ if (entry && entry->GetTitle().empty())
+ return std::u16string();
+ }
+#endif
+
return GetNavigationEntryForTitle()->GetTitleForDisplay();
}