fix: BrowserView and <webview> should be transparent by default (#40866)

This commit is contained in:
Jeremy Rose 2024-01-04 07:04:56 -08:00 committed by GitHub
parent 0672f59f26
commit 84ba0c6c7d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -3778,15 +3778,17 @@ void WebContents::SetImageAnimationPolicy(const std::string& new_policy) {
}
void WebContents::SetBackgroundColor(absl::optional<SkColor> maybe_color) {
web_contents()->SetPageBaseBackgroundColor(maybe_color);
SkColor color = maybe_color.value_or(type_ == Type::kWebView ||
type_ == Type::kBrowserView
? SK_ColorTRANSPARENT
: SK_ColorWHITE);
web_contents()->SetPageBaseBackgroundColor(color);
content::RenderFrameHost* rfh = web_contents()->GetPrimaryMainFrame();
if (!rfh)
return;
content::RenderWidgetHostView* rwhv = rfh->GetView();
if (rwhv) {
SkColor color =
maybe_color.value_or(IsGuest() ? SK_ColorTRANSPARENT : SK_ColorWHITE);
rwhv->SetBackgroundColor(color);
static_cast<content::RenderWidgetHostViewBase*>(rwhv)
->SetContentBackgroundColor(color);