fix: apply transparency settings to WebContentsPreferences (#31685)
* fix: add transparency to web_contents_preferences * fix: correctly apply transparency settings to new webContents from webPreferences
This commit is contained in:
parent
190dd31dbc
commit
86f6285299
2 changed files with 10 additions and 2 deletions
|
@ -4059,9 +4059,11 @@ gin::Handle<WebContents> WebContents::CreateFromWebPreferences(
|
||||||
absl::optional<SkColor> color =
|
absl::optional<SkColor> color =
|
||||||
existing_preferences->GetBackgroundColor();
|
existing_preferences->GetBackgroundColor();
|
||||||
web_contents->web_contents()->SetPageBaseBackgroundColor(color);
|
web_contents->web_contents()->SetPageBaseBackgroundColor(color);
|
||||||
|
// Because web preferences don't recognize transparency,
|
||||||
|
// only set rwhv background color if a color exists
|
||||||
auto* rwhv = web_contents->web_contents()->GetRenderWidgetHostView();
|
auto* rwhv = web_contents->web_contents()->GetRenderWidgetHostView();
|
||||||
if (rwhv)
|
if (rwhv && color.has_value())
|
||||||
rwhv->SetBackgroundColor(color.value_or(SK_ColorWHITE));
|
rwhv->SetBackgroundColor(color.value());
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// Create one if not.
|
// Create one if not.
|
||||||
|
|
|
@ -225,6 +225,12 @@ void WebContentsPreferences::SetFromDictionary(
|
||||||
web_preferences.Get("disablePopups", &disable_popups_);
|
web_preferences.Get("disablePopups", &disable_popups_);
|
||||||
web_preferences.Get("disableDialogs", &disable_dialogs_);
|
web_preferences.Get("disableDialogs", &disable_dialogs_);
|
||||||
web_preferences.Get("safeDialogs", &safe_dialogs_);
|
web_preferences.Get("safeDialogs", &safe_dialogs_);
|
||||||
|
// preferences don't save a transparency option,
|
||||||
|
// apply any existing transparency setting to background_color_
|
||||||
|
bool transparent;
|
||||||
|
if (web_preferences.Get(options::kTransparent, &transparent)) {
|
||||||
|
background_color_ = SK_ColorTRANSPARENT;
|
||||||
|
}
|
||||||
std::string background_color;
|
std::string background_color;
|
||||||
if (web_preferences.GetHidden(options::kBackgroundColor, &background_color))
|
if (web_preferences.GetHidden(options::kBackgroundColor, &background_color))
|
||||||
background_color_ = ParseHexColor(background_color);
|
background_color_ = ParseHexColor(background_color);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue