diff --git a/browser/ui/webui/brave_new_tab_ui.cc b/browser/ui/webui/brave_new_tab_ui.cc index 3b37b21fa126..e6c5b3249fda 100644 --- a/browser/ui/webui/brave_new_tab_ui.cc +++ b/browser/ui/webui/brave_new_tab_ui.cc @@ -63,12 +63,19 @@ BraveNewTabUI::BraveNewTabUI(content::WebUI* web_ui, const std::string& name) BraveNewTabUI::~BraveNewTabUI() { } -void BraveNewTabUI::CustomizeNewTabWebUIProperties() { +void BraveNewTabUI::CustomizeNewTabWebUIProperties(content::RenderFrameHost* render_frame_host) { Profile* profile = Profile::FromWebUI(web_ui()); PrefService* prefs = profile->GetPrefs(); - auto* web_contents = web_ui()->GetWebContents(); - if (web_contents) { - auto* render_view_host = web_contents->GetRenderViewHost(); + content::RenderViewHost* render_view_host = nullptr; + if (render_frame_host) { + render_view_host = render_frame_host->GetRenderViewHost(); + } else { + auto* web_contents = web_ui()->GetWebContents(); + if (web_contents) { + render_view_host = web_contents->GetRenderViewHost(); + } + } + if (render_view_host) { if (render_view_host) { render_view_host->SetWebUIProperty( "adsBlockedStat", @@ -95,13 +102,13 @@ void BraveNewTabUI::CustomizeNewTabWebUIProperties() { void BraveNewTabUI::RenderFrameCreated(content::RenderFrameHost* render_frame_host) { if (0 != (web_ui()->GetBindings() & content::BINDINGS_POLICY_WEB_UI)) { - CustomizeNewTabWebUIProperties(); + CustomizeNewTabWebUIProperties(render_frame_host); } } void BraveNewTabUI::OnPreferenceChanged() { if (0 != (web_ui()->GetBindings() & content::BINDINGS_POLICY_WEB_UI)) { - CustomizeNewTabWebUIProperties(); + CustomizeNewTabWebUIProperties(nullptr); web_ui()->CallJavascriptFunctionUnsafe("brave_new_tab.statsUpdated"); } } diff --git a/browser/ui/webui/brave_new_tab_ui.h b/browser/ui/webui/brave_new_tab_ui.h index 7381bf613c33..72584669dddb 100644 --- a/browser/ui/webui/brave_new_tab_ui.h +++ b/browser/ui/webui/brave_new_tab_ui.h @@ -16,8 +16,8 @@ class BraveNewTabUI : public BasicUI { ~BraveNewTabUI() override; private: - void CustomizeNewTabWebUIProperties(); void RenderFrameCreated(content::RenderFrameHost* render_frame_host) override; + void CustomizeNewTabWebUIProperties(content::RenderFrameHost* render_frame_host); void OnPreferenceChanged(); std::unique_ptr pref_change_registrar_;