diff --git a/shell/browser/api/electron_api_web_contents.cc b/shell/browser/api/electron_api_web_contents.cc index 238c9f9f27..a0f234aa3f 100644 --- a/shell/browser/api/electron_api_web_contents.cc +++ b/shell/browser/api/electron_api_web_contents.cc @@ -1523,13 +1523,15 @@ void WebContents::HandleNewRenderFrame( // Set the background color of RenderWidgetHostView. auto* web_preferences = WebContentsPreferences::From(web_contents()); if (web_preferences) { - absl::optional maybe_color = web_preferences->GetBackgroundColor(); - web_contents()->SetPageBaseBackgroundColor(maybe_color); - + auto maybe_color = web_preferences->GetBackgroundColor(); bool guest = IsGuest() || type_ == Type::kBrowserView; - SkColor color = + + // If webPreferences has no color stored we need to explicitly set guest + // webContents background color to transparent. + auto bg_color = maybe_color.value_or(guest ? SK_ColorTRANSPARENT : SK_ColorWHITE); - SetBackgroundColor(rwhv, color); + web_contents()->SetPageBaseBackgroundColor(bg_color); + SetBackgroundColor(rwhv, bg_color); } if (!background_throttling_)