Commit 0bcec1b0 authored by Rune Lillesveen's avatar Rune Lillesveen Committed by Commit Bot

Allow iframes to paint the base background for color-scheme.

According to spec[1], a mismatching used color-scheme for embedding
iframe element and iframe document root element should cause an opaque
canvas background for the color-scheme to be painted behind the document
background.

Modify the ViewPainter to allow painting the base background in an
iframe for these cases.

Bug: 1058822
Change-Id: I0097d8207c2f697367c477b795bfb2443ebd5cb2
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2418322
Commit-Queue: Rune Lillesveen <futhark@chromium.org>
Reviewed-by: default avatarStefan Zager <szager@chromium.org>
Cr-Commit-Position: refs/heads/master@{#809508}
parent b11bca62
...@@ -870,7 +870,7 @@ void LayoutView::UpdateFromStyle() { ...@@ -870,7 +870,7 @@ void LayoutView::UpdateFromStyle() {
LayoutBlockFlow::UpdateFromStyle(); LayoutBlockFlow::UpdateFromStyle();
// LayoutView of the main frame is responsible for painting base background. // LayoutView of the main frame is responsible for painting base background.
if (GetDocument().IsInMainFrame()) if (GetFrameView()->ShouldPaintBaseBackgroundColor())
SetHasBoxDecorationBackground(true); SetHasBoxDecorationBackground(true);
} }
......
...@@ -43,7 +43,7 @@ void ViewPainter::PaintRootGroup(const PaintInfo& paint_info, ...@@ -43,7 +43,7 @@ void ViewPainter::PaintRootGroup(const PaintInfo& paint_info,
const Document& document, const Document& document,
const DisplayItemClient& client, const DisplayItemClient& client,
const PropertyTreeStateOrAlias& state) { const PropertyTreeStateOrAlias& state) {
if (!document.IsInMainFrame()) if (!layout_view_.GetFrameView()->ShouldPaintBaseBackgroundColor())
return; return;
bool should_clear_canvas = bool should_clear_canvas =
document.GetSettings() && document.GetSettings() &&
...@@ -245,7 +245,7 @@ void ViewPainter::PaintRootElementGroup( ...@@ -245,7 +245,7 @@ void ViewPainter::PaintRootElementGroup(
const Document& document = layout_view_.GetDocument(); const Document& document = layout_view_.GetDocument();
const LocalFrameView& frame_view = *layout_view_.GetFrameView(); const LocalFrameView& frame_view = *layout_view_.GetFrameView();
bool paints_base_background = document.IsInMainFrame() && bool paints_base_background = frame_view.ShouldPaintBaseBackgroundColor() &&
(frame_view.BaseBackgroundColor().Alpha() > 0); (frame_view.BaseBackgroundColor().Alpha() > 0);
Color base_background_color = Color base_background_color =
paints_base_background ? frame_view.BaseBackgroundColor() : Color(); paints_base_background ? frame_view.BaseBackgroundColor() : Color();
......
...@@ -1332,9 +1332,6 @@ crbug.com/1012289 external/wpt/css/css-lists/list-style-type-string-005b.html [ ...@@ -1332,9 +1332,6 @@ crbug.com/1012289 external/wpt/css/css-lists/list-style-type-string-005b.html [
crbug.com/995106 external/wpt/css/css-pseudo/first-letter-exclude-inline-marker.html [ Failure ] crbug.com/995106 external/wpt/css/css-pseudo/first-letter-exclude-inline-marker.html [ Failure ]
crbug.com/995106 external/wpt/css/css-pseudo/first-letter-exclude-inline-child-marker.html [ Failure ] crbug.com/995106 external/wpt/css/css-pseudo/first-letter-exclude-inline-child-marker.html [ Failure ]
crbug.com/1058822 external/wpt/css/css-color-adjust/rendering/dark-color-scheme/color-scheme-iframe-background-mismatch-alpha.html [ Failure ]
crbug.com/1058822 external/wpt/css/css-color-adjust/rendering/dark-color-scheme/color-scheme-iframe-background-mismatch-opaque.html [ Failure ]
crbug.com/1058822 external/wpt/css/css-color-adjust/rendering/dark-color-scheme/color-scheme-iframe-background-mismatch-opaque-cross-origin.sub.html [ Failure ]
crbug.com/929098 external/wpt/css/css-color-adjust/rendering/dark-color-scheme/color-scheme-change-checkbox.html [ Failure ] crbug.com/929098 external/wpt/css/css-color-adjust/rendering/dark-color-scheme/color-scheme-change-checkbox.html [ Failure ]
crbug.com/929098 virtual/dark-color-scheme/external/wpt/css/css-color-adjust/rendering/dark-color-scheme/color-scheme-change-checkbox.html [ Pass ] crbug.com/929098 virtual/dark-color-scheme/external/wpt/css/css-color-adjust/rendering/dark-color-scheme/color-scheme-change-checkbox.html [ Pass ]
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment