diff --git a/shell/browser/api/electron_api_browser_window.cc b/shell/browser/api/electron_api_browser_window.cc index 18246f5512..0c7f79f9ed 100644 --- a/shell/browser/api/electron_api_browser_window.cc +++ b/shell/browser/api/electron_api_browser_window.cc @@ -362,7 +362,11 @@ void BrowserWindow::Blur() { void BrowserWindow::SetBackgroundColor(const std::string& color_name) { BaseWindow::SetBackgroundColor(color_name); - web_contents()->SetPageBaseBackgroundColor(ParseHexColor(color_name)); + SkColor color = ParseHexColor(color_name); + web_contents()->SetPageBaseBackgroundColor(color); + auto* rwhv = web_contents()->GetRenderWidgetHostView(); + if (rwhv) + rwhv->SetBackgroundColor(color); // Also update the web preferences object otherwise the view will be reset on // the next load URL call if (api_web_contents_) { diff --git a/shell/browser/api/electron_api_web_contents.cc b/shell/browser/api/electron_api_web_contents.cc index 9dc56374fd..8246637e12 100644 --- a/shell/browser/api/electron_api_web_contents.cc +++ b/shell/browser/api/electron_api_web_contents.cc @@ -1373,8 +1373,9 @@ void WebContents::HandleNewRenderFrame( // Set the background color of RenderWidgetHostView. auto* web_preferences = WebContentsPreferences::From(web_contents()); if (web_preferences) { - web_contents()->SetPageBaseBackgroundColor( - web_preferences->GetBackgroundColor()); + absl::optional color = web_preferences->GetBackgroundColor(); + web_contents()->SetPageBaseBackgroundColor(color); + rwhv->SetBackgroundColor(color.value_or(SK_ColorWHITE)); } if (!background_throttling_) @@ -3866,6 +3867,12 @@ gin::Handle WebContents::CreateFromWebPreferences( if (gin::ConvertFromV8(isolate, web_preferences.GetHandle(), &web_preferences_dict)) { existing_preferences->SetFromDictionary(web_preferences_dict); + absl::optional color = + existing_preferences->GetBackgroundColor(); + web_contents->web_contents()->SetPageBaseBackgroundColor(color); + auto* rwhv = web_contents->web_contents()->GetRenderWidgetHostView(); + if (rwhv) + rwhv->SetBackgroundColor(color.value_or(SK_ColorWHITE)); } } else { // Create one if not.