Index: third_party/WebKit/Source/core/paint/PaintLayerScrollableAreaTest.cpp |
diff --git a/third_party/WebKit/Source/core/paint/PaintLayerScrollableAreaTest.cpp b/third_party/WebKit/Source/core/paint/PaintLayerScrollableAreaTest.cpp |
index 7678aa3e6b99335d95182f37b897e04590220430..fe8363771987342c1d82a6522eb44bdd21f3cf1f 100644 |
--- a/third_party/WebKit/Source/core/paint/PaintLayerScrollableAreaTest.cpp |
+++ b/third_party/WebKit/Source/core/paint/PaintLayerScrollableAreaTest.cpp |
@@ -19,10 +19,10 @@ class PaintLayerScrollableAreaTest : public RenderingTest { |
PaintLayerScrollableAreaTest() |
: RenderingTest(EmptyFrameLoaderClient::create()) {} |
- bool canPaintBackgroundOntoScrollingContentsLayer(const char* elementId) { |
+ BackgroundPaintLocation backgroundPaintLocation(const char* elementId) { |
PaintLayer* paintLayer = |
toLayoutBoxModelObject(getLayoutObjectByElementId(elementId))->layer(); |
- return paintLayer->canPaintBackgroundOntoScrollingContentsLayer(); |
+ return paintLayer->backgroundPaintLocation(); |
} |
private: |
@@ -83,77 +83,101 @@ TEST_F(PaintLayerScrollableAreaTest, |
"1px solid black; outline: 1px solid blue; outline-offset: -2px;'><div " |
"class='spacer'></div></div>" |
"<div id='scroller16' class='scroller' style='background: white; clip: " |
- "rect(0px,10px,10px,0px);'><div class='spacer'></div></div>"); |
+ "rect(0px,10px,10px,0px);'><div class='spacer'></div></div>" |
+ "<div id='scroller17' class='scroller' style='background:" |
+ "rgba(255, 255, 255, 0.5) border-box; border: 5px solid " |
+ "rgba(0, 0, 0, 0.5);'><div class='spacer'></div></div>"); |
// #scroller1 cannot paint background into scrolling contents layer because it |
// has a negative z-index child. |
- EXPECT_FALSE(canPaintBackgroundOntoScrollingContentsLayer("scroller1")); |
+ EXPECT_EQ(BackgroundPaintInGraphicsLayer, |
+ backgroundPaintLocation("scroller1")); |
// #scroller2 cannot paint background into scrolling contents layer because it |
// has a content-box clip without local attachment. |
- EXPECT_FALSE(canPaintBackgroundOntoScrollingContentsLayer("scroller2")); |
+ EXPECT_EQ(BackgroundPaintInGraphicsLayer, |
+ backgroundPaintLocation("scroller2")); |
// #scroller3 can paint background into scrolling contents layer. |
- EXPECT_TRUE(canPaintBackgroundOntoScrollingContentsLayer("scroller3")); |
+ EXPECT_EQ(BackgroundPaintInScrollingContents, |
+ backgroundPaintLocation("scroller3")); |
// #scroller4 cannot paint background into scrolling contents layer because |
// the background image is not locally attached. |
- EXPECT_FALSE(canPaintBackgroundOntoScrollingContentsLayer("scroller4")); |
+ EXPECT_EQ(BackgroundPaintInGraphicsLayer, |
+ backgroundPaintLocation("scroller4")); |
// #scroller5 can paint background into scrolling contents layer because both |
// the image and color are locally attached. |
- EXPECT_TRUE(canPaintBackgroundOntoScrollingContentsLayer("scroller5")); |
+ EXPECT_EQ(BackgroundPaintInScrollingContents, |
+ backgroundPaintLocation("scroller5")); |
// #scroller6 can paint background into scrolling contents layer because the |
// image is locally attached and even though the color is not, it is filled to |
// the padding box so it will be drawn the same as a locally attached |
// background. |
- EXPECT_TRUE(canPaintBackgroundOntoScrollingContentsLayer("scroller6")); |
+ EXPECT_EQ(BackgroundPaintInScrollingContents, |
+ backgroundPaintLocation("scroller6")); |
// #scroller7 cannot paint background into scrolling contents layer because |
// the color is filled to the content box and we have padding so it is not |
// equivalent to a locally attached background. |
- EXPECT_FALSE(canPaintBackgroundOntoScrollingContentsLayer("scroller7")); |
+ EXPECT_EQ(BackgroundPaintInGraphicsLayer, |
+ backgroundPaintLocation("scroller7")); |
// #scroller8 can paint background into scrolling contents layer because its |
// border-box is equivalent to its padding box since it has no border. |
- EXPECT_TRUE(canPaintBackgroundOntoScrollingContentsLayer("scroller8")); |
+ EXPECT_EQ(BackgroundPaintInScrollingContents, |
+ backgroundPaintLocation("scroller8")); |
// #scroller9 can paint background into scrolling contents layer because its |
// border is opaque so it completely covers the background outside of the |
// padding-box. |
- EXPECT_TRUE(canPaintBackgroundOntoScrollingContentsLayer("scroller9")); |
+ EXPECT_EQ(BackgroundPaintInScrollingContents, |
+ backgroundPaintLocation("scroller9")); |
- // #scroller10 cannot paint background into scrolling contents layer because |
- // its border is partially transparent so the background must be drawn to the |
+ // #scroller10 paints the background into both layers because its border is |
+ // partially transparent so the background must be drawn to the |
// border-box edges. |
- EXPECT_FALSE(canPaintBackgroundOntoScrollingContentsLayer("scroller10")); |
+ EXPECT_EQ(BackgroundPaintInGraphicsLayer | BackgroundPaintInScrollingContents, |
+ backgroundPaintLocation("scroller10")); |
// #scroller11 can paint background into scrolling contents layer because its |
// content-box is equivalent to its padding box since it has no padding. |
- EXPECT_TRUE(canPaintBackgroundOntoScrollingContentsLayer("scroller11")); |
+ EXPECT_EQ(BackgroundPaintInScrollingContents, |
+ backgroundPaintLocation("scroller11")); |
// #scroller12 cannot paint background into scrolling contents layer because |
// it has padding so its content-box is not equivalent to its padding-box. |
- EXPECT_FALSE(canPaintBackgroundOntoScrollingContentsLayer("scroller12")); |
+ EXPECT_EQ(BackgroundPaintInGraphicsLayer, |
+ backgroundPaintLocation("scroller12")); |
- // #scroller13 cannot paint background into scrolling contents layer because |
- // it has a custom scrollbar which the background may need to draw under. |
- EXPECT_FALSE(canPaintBackgroundOntoScrollingContentsLayer("scroller13")); |
+ // #scroller13 paints the background into both layers because it has a custom |
+ // scrollbar which the background may need to draw under. |
+ EXPECT_EQ(BackgroundPaintInGraphicsLayer | BackgroundPaintInScrollingContents, |
+ backgroundPaintLocation("scroller13")); |
// #scroller14 can paint background into scrolling contents layer because the |
// outline is drawn outside the padding box. |
- EXPECT_TRUE(canPaintBackgroundOntoScrollingContentsLayer("scroller14")); |
+ EXPECT_EQ(BackgroundPaintInScrollingContents, |
+ backgroundPaintLocation("scroller14")); |
// #scroller15 can paint background into scrolling contents layer because |
// the outline is drawn into the decoration layer which will not be covered |
// up. |
- EXPECT_TRUE(canPaintBackgroundOntoScrollingContentsLayer("scroller15")); |
+ EXPECT_EQ(BackgroundPaintInScrollingContents, |
+ backgroundPaintLocation("scroller15")); |
// #scroller16 cannot paint background into scrolling contents layer because |
// the scroller has a clip which would not be respected by the scrolling |
// contents layer. |
- EXPECT_FALSE(canPaintBackgroundOntoScrollingContentsLayer("scroller16")); |
+ EXPECT_EQ(BackgroundPaintInGraphicsLayer, |
+ backgroundPaintLocation("scroller16")); |
+ |
+ // #scroller17 can only be painted once as it is translucent, and it must |
+ // be painted in the graphics layer to be under the translucent border. |
+ EXPECT_EQ(BackgroundPaintInGraphicsLayer, |
+ backgroundPaintLocation("scroller17")); |
} |
TEST_F(PaintLayerScrollableAreaTest, OpaqueContainedLayersPromoted) { |