OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "config.h" | 5 #include "config.h" |
6 | 6 |
7 #include "core/paint/PaintControllerPaintTest.h" | 7 #include "core/paint/PaintControllerPaintTest.h" |
8 #include "core/paint/PaintLayerPainter.h" | 8 #include "core/paint/PaintLayerPainter.h" |
9 #include "platform/graphics/GraphicsContext.h" | |
10 | 9 |
11 namespace blink { | 10 namespace blink { |
12 | 11 |
13 using TableCellPainterTest = PaintControllerPaintTest; | 12 using TableCellPainterTest = PaintControllerPaintTest; |
14 | 13 |
15 // TODO(wangxianzhu): Create a version for slimming paint v2 when it supports in
terest rect | 14 // TODO(wangxianzhu): Create a version for slimming paint v2 when it supports in
terest rect |
16 TEST_F(TableCellPainterTest, TableCellBackgroundInterestRect) | 15 TEST_F(TableCellPainterTest, TableCellBackgroundInterestRect) |
17 { | 16 { |
| 17 RuntimeEnabledFeatures::setSlimmingPaintSynchronizedPaintingEnabled(true); |
| 18 |
18 setBodyInnerHTML( | 19 setBodyInnerHTML( |
19 "<style>" | 20 "<style>" |
20 " td { width: 200px; height: 200px; border: none; }" | 21 " td { width: 200px; height: 200px; border: none; }" |
21 " tr { background-color: blue; }" | 22 " tr { background-color: blue; }" |
22 " table { border: none; border-spacing: 0; border-collapse: collapse; }
" | 23 " table { border: none; border-spacing: 0; border-collapse: collapse; }
" |
23 "</style>" | 24 "</style>" |
24 "<table>" | 25 "<table>" |
25 " <tr><td id='cell1'></td></tr>" | 26 " <tr><td id='cell1'></td></tr>" |
26 " <tr><td id='cell2'></td></tr>" | 27 " <tr><td id='cell2'></td></tr>" |
27 "</table>"); | 28 "</table>"); |
28 | 29 |
29 LayoutView& layoutView = *document().layoutView(); | 30 LayoutView& layoutView = *document().layoutView(); |
30 PaintLayer& rootLayer = *layoutView.layer(); | 31 PaintLayer& rootLayer = *layoutView.layer(); |
31 LayoutObject& cell1 = *document().getElementById("cell1")->layoutObject(); | 32 LayoutObject& cell1 = *document().getElementById("cell1")->layoutObject(); |
32 LayoutObject& cell2 = *document().getElementById("cell2")->layoutObject(); | 33 LayoutObject& cell2 = *document().getElementById("cell2")->layoutObject(); |
33 | 34 |
34 GraphicsContext context(rootPaintController()); | 35 rootPaintController().invalidateAll(); |
35 PaintLayerPaintingInfo paintingInfo(&rootLayer, LayoutRect(0, 0, 200, 200),
GlobalPaintNormalPhase, LayoutSize()); | 36 updateLifecyclePhasesBeforePaint(); |
36 PaintLayerPainter(rootLayer).paintLayerContents(&context, paintingInfo, Pain
tLayerPaintingCompositingAllPhases); | 37 IntRect interestRect(0, 0, 200, 200); |
37 rootPaintController().commitNewDisplayItems(); | 38 paint(&interestRect); |
| 39 commit(); |
38 | 40 |
39 EXPECT_DISPLAY_LIST(rootPaintController().displayItemList(), 2, | 41 EXPECT_DISPLAY_LIST(rootPaintController().displayItemList(), 4, |
40 TestDisplayItem(layoutView, DisplayItem::BoxDecorationBackground), | 42 TestDisplayItem(layoutView, DisplayItem::BoxDecorationBackground), |
41 TestDisplayItem(cell1, DisplayItem::TableCellBackgroundFromRow)); | 43 TestDisplayItem(rootLayer, subsequenceType), |
| 44 TestDisplayItem(cell1, DisplayItem::TableCellBackgroundFromRow), |
| 45 TestDisplayItem(rootLayer, endSubsequenceType)); |
42 | 46 |
43 PaintLayerPaintingInfo paintingInfo1(&rootLayer, LayoutRect(0, 300, 200, 200
), GlobalPaintNormalPhase, LayoutSize()); | 47 updateLifecyclePhasesBeforePaint(); |
44 PaintLayerPainter(rootLayer).paintLayerContents(&context, paintingInfo1, Pai
ntLayerPaintingCompositingAllPhases); | 48 interestRect = IntRect(0, 300, 200, 1000); |
45 rootPaintController().commitNewDisplayItems(); | 49 paint(&interestRect); |
| 50 commit(); |
46 | 51 |
47 EXPECT_DISPLAY_LIST(rootPaintController().displayItemList(), 2, | 52 EXPECT_DISPLAY_LIST(rootPaintController().displayItemList(), 4, |
48 TestDisplayItem(layoutView, DisplayItem::BoxDecorationBackground), | 53 TestDisplayItem(layoutView, DisplayItem::BoxDecorationBackground), |
49 TestDisplayItem(cell2, DisplayItem::TableCellBackgroundFromRow)); | 54 TestDisplayItem(rootLayer, subsequenceType), |
| 55 TestDisplayItem(cell2, DisplayItem::TableCellBackgroundFromRow), |
| 56 TestDisplayItem(rootLayer, endSubsequenceType)); |
50 } | 57 } |
51 | 58 |
52 } // namespace blink | 59 } // namespace blink |
OLD | NEW |