Skip to content

Commit

Permalink
Use correct RenderViewHost on newtab to avoid crashes
Browse files Browse the repository at this point in the history
  • Loading branch information
bbondy committed Aug 15, 2018
1 parent 860d43f commit 3add23a
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 7 deletions.
19 changes: 13 additions & 6 deletions browser/ui/webui/brave_new_tab_ui.cc
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand All @@ -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");
}
}
2 changes: 1 addition & 1 deletion browser/ui/webui/brave_new_tab_ui.h
Original file line number Diff line number Diff line change
Expand Up @@ -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<PrefChangeRegistrar> pref_change_registrar_;
Expand Down

0 comments on commit 3add23a

Please sign in to comment.