fix: preserve background color through reload (#15105)
* fix: preserve background color through reload * fix: only set backgroundColor on top-level frames
This commit is contained in:
parent
70c49b78ae
commit
89bf71e580
1 changed files with 16 additions and 12 deletions
|
@ -200,22 +200,26 @@ void RendererClientBase::RenderFrameCreated(
|
||||||
blink::WebSecurityPolicy::AddOriginAccessWhitelistEntry(
|
blink::WebSecurityPolicy::AddOriginAccessWhitelistEntry(
|
||||||
GURL(kPdfViewerUIOrigin), "file", "", true);
|
GURL(kPdfViewerUIOrigin), "file", "", true);
|
||||||
#endif // BUILDFLAG(ENABLE_PDF_VIEWER)
|
#endif // BUILDFLAG(ENABLE_PDF_VIEWER)
|
||||||
|
|
||||||
|
content::RenderView* render_view = render_frame->GetRenderView();
|
||||||
|
if (render_frame->IsMainFrame() && render_view) {
|
||||||
|
blink::WebFrameWidget* web_frame_widget = render_view->GetWebFrameWidget();
|
||||||
|
if (web_frame_widget) {
|
||||||
|
base::CommandLine* cmd = base::CommandLine::ForCurrentProcess();
|
||||||
|
if (cmd->HasSwitch(switches::kGuestInstanceID)) { // webview.
|
||||||
|
web_frame_widget->SetBaseBackgroundColor(SK_ColorTRANSPARENT);
|
||||||
|
} else { // normal window.
|
||||||
|
std::string name = cmd->GetSwitchValueASCII(switches::kBackgroundColor);
|
||||||
|
SkColor color =
|
||||||
|
name.empty() ? SK_ColorTRANSPARENT : ParseHexColor(name);
|
||||||
|
web_frame_widget->SetBaseBackgroundColor(color);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void RendererClientBase::RenderViewCreated(content::RenderView* render_view) {
|
void RendererClientBase::RenderViewCreated(content::RenderView* render_view) {
|
||||||
new AtomRenderViewObserver(render_view);
|
new AtomRenderViewObserver(render_view);
|
||||||
blink::WebFrameWidget* web_frame_widget = render_view->GetWebFrameWidget();
|
|
||||||
if (!web_frame_widget)
|
|
||||||
return;
|
|
||||||
|
|
||||||
base::CommandLine* cmd = base::CommandLine::ForCurrentProcess();
|
|
||||||
if (cmd->HasSwitch(switches::kGuestInstanceID)) { // webview.
|
|
||||||
web_frame_widget->SetBaseBackgroundColor(SK_ColorTRANSPARENT);
|
|
||||||
} else { // normal window.
|
|
||||||
std::string name = cmd->GetSwitchValueASCII(switches::kBackgroundColor);
|
|
||||||
SkColor color = name.empty() ? SK_ColorTRANSPARENT : ParseHexColor(name);
|
|
||||||
web_frame_widget->SetBaseBackgroundColor(color);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void RendererClientBase::DidClearWindowObject(
|
void RendererClientBase::DidClearWindowObject(
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue