Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(118)

Side by Side Diff: third_party/WebKit/Source/platform/graphics/paint/PaintControllerTest.cpp

Issue 2743363006: Clean up cc/paint interfaces (Closed)
Patch Set: Fix PaintControllerTest v2 Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « third_party/WebKit/Source/platform/graphics/paint/PaintController.cpp ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "platform/graphics/paint/PaintController.h" 5 #include "platform/graphics/paint/PaintController.h"
6 6
7 #include "platform/RuntimeEnabledFeatures.h" 7 #include "platform/RuntimeEnabledFeatures.h"
8 #include "platform/graphics/GraphicsContext.h" 8 #include "platform/graphics/GraphicsContext.h"
9 #include "platform/graphics/paint/ClipPathDisplayItem.h" 9 #include "platform/graphics/paint/ClipPathDisplayItem.h"
10 #include "platform/graphics/paint/ClipPathRecorder.h" 10 #include "platform/graphics/paint/ClipPathRecorder.h"
(...skipping 780 matching lines...) Expand 10 before | Expand all | Expand 10 after
791 FloatRect(100, 100, 150, 150)); 791 FloatRect(100, 100, 150, 150));
792 drawRect(context, second, backgroundDrawingType, 792 drawRect(context, second, backgroundDrawingType,
793 FloatRect(100, 100, 150, 150)); 793 FloatRect(100, 100, 150, 150));
794 getPaintController().commitNewDisplayItems(); 794 getPaintController().commitNewDisplayItems();
795 795
796 EXPECT_DISPLAY_LIST(getPaintController().getDisplayItemList(), 2, 796 EXPECT_DISPLAY_LIST(getPaintController().getDisplayItemList(), 2,
797 TestDisplayItem(first, backgroundDrawingType), 797 TestDisplayItem(first, backgroundDrawingType),
798 TestDisplayItem(second, backgroundDrawingType)); 798 TestDisplayItem(second, backgroundDrawingType));
799 EXPECT_TRUE(getPaintController().clientCacheIsValid(first)); 799 EXPECT_TRUE(getPaintController().clientCacheIsValid(first));
800 EXPECT_TRUE(getPaintController().clientCacheIsValid(second)); 800 EXPECT_TRUE(getPaintController().clientCacheIsValid(second));
801 const PaintRecord* firstPaintRecord = 801 sk_sp<const PaintRecord> firstPaintRecord =
802 static_cast<const DrawingDisplayItem&>( 802 static_cast<const DrawingDisplayItem&>(
803 getPaintController().getDisplayItemList()[0]) 803 getPaintController().getDisplayItemList()[0])
804 .GetPaintRecord(); 804 .GetPaintRecord();
805 const PaintRecord* secondPaintRecord = 805 sk_sp<const PaintRecord> secondPaintRecord =
806 static_cast<const DrawingDisplayItem&>( 806 static_cast<const DrawingDisplayItem&>(
807 getPaintController().getDisplayItemList()[1]) 807 getPaintController().getDisplayItemList()[1])
808 .GetPaintRecord(); 808 .GetPaintRecord();
809 809
810 first.setDisplayItemsUncached(); 810 first.setDisplayItemsUncached();
811 EXPECT_FALSE(getPaintController().clientCacheIsValid(first)); 811 EXPECT_FALSE(getPaintController().clientCacheIsValid(first));
812 EXPECT_TRUE(getPaintController().clientCacheIsValid(second)); 812 EXPECT_TRUE(getPaintController().clientCacheIsValid(second));
813 813
814 if (RuntimeEnabledFeatures::slimmingPaintV2Enabled()) { 814 if (RuntimeEnabledFeatures::slimmingPaintV2Enabled()) {
815 getPaintController().updateCurrentPaintChunkProperties( 815 getPaintController().updateCurrentPaintChunkProperties(
(...skipping 770 matching lines...) Expand 10 before | Expand all | Expand 10 after
1586 drawRect(context, content, foregroundDrawingType, rect2); 1586 drawRect(context, content, foregroundDrawingType, rect2);
1587 getPaintController().endSkippingCache(); 1587 getPaintController().endSkippingCache();
1588 1588
1589 getPaintController().commitNewDisplayItems(); 1589 getPaintController().commitNewDisplayItems();
1590 1590
1591 EXPECT_DISPLAY_LIST(getPaintController().getDisplayItemList(), 3, 1591 EXPECT_DISPLAY_LIST(getPaintController().getDisplayItemList(), 3,
1592 TestDisplayItem(multicol, backgroundDrawingType), 1592 TestDisplayItem(multicol, backgroundDrawingType),
1593 TestDisplayItem(content, foregroundDrawingType), 1593 TestDisplayItem(content, foregroundDrawingType),
1594 TestDisplayItem(content, foregroundDrawingType)); 1594 TestDisplayItem(content, foregroundDrawingType));
1595 sk_sp<const PaintRecord> record1 = 1595 sk_sp<const PaintRecord> record1 =
1596 sk_ref_sp(static_cast<const DrawingDisplayItem&>( 1596 static_cast<const DrawingDisplayItem&>(
1597 getPaintController().getDisplayItemList()[1]) 1597 getPaintController().getDisplayItemList()[1])
1598 .GetPaintRecord()); 1598 .GetPaintRecord();
1599 sk_sp<const PaintRecord> record2 = 1599 sk_sp<const PaintRecord> record2 =
1600 sk_ref_sp(static_cast<const DrawingDisplayItem&>( 1600 static_cast<const DrawingDisplayItem&>(
1601 getPaintController().getDisplayItemList()[2]) 1601 getPaintController().getDisplayItemList()[2])
1602 .GetPaintRecord()); 1602 .GetPaintRecord();
1603 EXPECT_NE(record1, record2); 1603 EXPECT_NE(record1, record2);
1604 1604
1605 if (RuntimeEnabledFeatures::slimmingPaintV2Enabled()) { 1605 if (RuntimeEnabledFeatures::slimmingPaintV2Enabled()) {
1606 EXPECT_EQ(1u, getPaintController().paintChunks().size()); 1606 EXPECT_EQ(1u, getPaintController().paintChunks().size());
1607 EXPECT_THAT(getPaintController().paintChunks()[0].rasterInvalidationRects, 1607 EXPECT_THAT(getPaintController().paintChunks()[0].rasterInvalidationRects,
1608 UnorderedElementsAre(FloatRect(LayoutRect::infiniteIntRect()))); 1608 UnorderedElementsAre(FloatRect(LayoutRect::infiniteIntRect())));
1609 1609
1610 getPaintController().updateCurrentPaintChunkProperties( 1610 getPaintController().updateCurrentPaintChunkProperties(
1611 &m_rootPaintChunkId, defaultPaintChunkProperties()); 1611 &m_rootPaintChunkId, defaultPaintChunkProperties());
1612 } 1612 }
(...skipping 14 matching lines...) Expand all
1627 EXPECT_EQ(0, numOutOfOrderMatches()); 1627 EXPECT_EQ(0, numOutOfOrderMatches());
1628 EXPECT_EQ(0, numIndexedItems()); 1628 EXPECT_EQ(0, numIndexedItems());
1629 #endif 1629 #endif
1630 1630
1631 getPaintController().commitNewDisplayItems(); 1631 getPaintController().commitNewDisplayItems();
1632 1632
1633 EXPECT_DISPLAY_LIST(getPaintController().getDisplayItemList(), 3, 1633 EXPECT_DISPLAY_LIST(getPaintController().getDisplayItemList(), 3,
1634 TestDisplayItem(multicol, backgroundDrawingType), 1634 TestDisplayItem(multicol, backgroundDrawingType),
1635 TestDisplayItem(content, foregroundDrawingType), 1635 TestDisplayItem(content, foregroundDrawingType),
1636 TestDisplayItem(content, foregroundDrawingType)); 1636 TestDisplayItem(content, foregroundDrawingType));
1637 EXPECT_NE(record1.get(), static_cast<const DrawingDisplayItem&>( 1637 EXPECT_NE(record1, static_cast<const DrawingDisplayItem&>(
1638 getPaintController().getDisplayItemList()[1]) 1638 getPaintController().getDisplayItemList()[1])
1639 .GetPaintRecord()); 1639 .GetPaintRecord());
1640 EXPECT_NE(record2.get(), static_cast<const DrawingDisplayItem&>( 1640 EXPECT_NE(record2, static_cast<const DrawingDisplayItem&>(
1641 getPaintController().getDisplayItemList()[2]) 1641 getPaintController().getDisplayItemList()[2])
1642 .GetPaintRecord()); 1642 .GetPaintRecord());
1643 1643
1644 if (RuntimeEnabledFeatures::slimmingPaintV2Enabled()) { 1644 if (RuntimeEnabledFeatures::slimmingPaintV2Enabled()) {
1645 EXPECT_EQ(1u, getPaintController().paintChunks().size()); 1645 EXPECT_EQ(1u, getPaintController().paintChunks().size());
1646 EXPECT_THAT( 1646 EXPECT_THAT(
1647 getPaintController().paintChunks()[0].rasterInvalidationRects, 1647 getPaintController().paintChunks()[0].rasterInvalidationRects,
1648 UnorderedElementsAre( 1648 UnorderedElementsAre(
1649 FloatRect(100, 100, 100, 100), // Old bounds of |content|. 1649 FloatRect(100, 100, 100, 100), // Old bounds of |content|.
1650 FloatRect(100, 100, 100, 100))); // New bounds of |content|. 1650 FloatRect(100, 100, 100, 100))); // New bounds of |content|.
1651 1651
1652 getPaintController().updateCurrentPaintChunkProperties( 1652 getPaintController().updateCurrentPaintChunkProperties(
(...skipping 10 matching lines...) Expand all
1663 drawRect(context, content, foregroundDrawingType, rect2); 1663 drawRect(context, content, foregroundDrawingType, rect2);
1664 drawRect(context, content, foregroundDrawingType, rect3); 1664 drawRect(context, content, foregroundDrawingType, rect3);
1665 getPaintController().endSkippingCache(); 1665 getPaintController().endSkippingCache();
1666 1666
1667 // We should repaint everything on invalidation of the scope container. 1667 // We should repaint everything on invalidation of the scope container.
1668 EXPECT_DISPLAY_LIST(getPaintController().newDisplayItemList(), 4, 1668 EXPECT_DISPLAY_LIST(getPaintController().newDisplayItemList(), 4,
1669 TestDisplayItem(multicol, backgroundDrawingType), 1669 TestDisplayItem(multicol, backgroundDrawingType),
1670 TestDisplayItem(content, foregroundDrawingType), 1670 TestDisplayItem(content, foregroundDrawingType),
1671 TestDisplayItem(content, foregroundDrawingType), 1671 TestDisplayItem(content, foregroundDrawingType),
1672 TestDisplayItem(content, foregroundDrawingType)); 1672 TestDisplayItem(content, foregroundDrawingType));
1673 EXPECT_NE(record1.get(), static_cast<const DrawingDisplayItem&>( 1673 EXPECT_NE(record1, static_cast<const DrawingDisplayItem&>(
1674 getPaintController().newDisplayItemList()[1]) 1674 getPaintController().newDisplayItemList()[1])
1675 .GetPaintRecord()); 1675 .GetPaintRecord());
1676 EXPECT_NE(record2.get(), static_cast<const DrawingDisplayItem&>( 1676 EXPECT_NE(record2, static_cast<const DrawingDisplayItem&>(
1677 getPaintController().newDisplayItemList()[2]) 1677 getPaintController().newDisplayItemList()[2])
1678 .GetPaintRecord()); 1678 .GetPaintRecord());
1679 1679
1680 getPaintController().commitNewDisplayItems(); 1680 getPaintController().commitNewDisplayItems();
1681 1681
1682 if (RuntimeEnabledFeatures::slimmingPaintV2Enabled()) { 1682 if (RuntimeEnabledFeatures::slimmingPaintV2Enabled()) {
1683 EXPECT_EQ(1u, getPaintController().paintChunks().size()); 1683 EXPECT_EQ(1u, getPaintController().paintChunks().size());
1684 EXPECT_THAT( 1684 EXPECT_THAT(
1685 getPaintController().paintChunks()[0].rasterInvalidationRects, 1685 getPaintController().paintChunks()[0].rasterInvalidationRects,
1686 UnorderedElementsAre( 1686 UnorderedElementsAre(
1687 FloatRect(100, 100, 200, 200), // Old bounds of |multicol|. 1687 FloatRect(100, 100, 200, 200), // Old bounds of |multicol|.
1688 FloatRect(100, 100, 200, 200), // New bounds of |multicol|. 1688 FloatRect(100, 100, 200, 200), // New bounds of |multicol|.
(...skipping 20 matching lines...) Expand all
1709 getPaintController().endSkippingCache(); 1709 getPaintController().endSkippingCache();
1710 drawRect(context, content, foregroundDrawingType, rect3); 1710 drawRect(context, content, foregroundDrawingType, rect3);
1711 1711
1712 getPaintController().commitNewDisplayItems(); 1712 getPaintController().commitNewDisplayItems();
1713 1713
1714 EXPECT_DISPLAY_LIST(getPaintController().getDisplayItemList(), 3, 1714 EXPECT_DISPLAY_LIST(getPaintController().getDisplayItemList(), 3,
1715 TestDisplayItem(content, backgroundDrawingType), 1715 TestDisplayItem(content, backgroundDrawingType),
1716 TestDisplayItem(content, foregroundDrawingType), 1716 TestDisplayItem(content, foregroundDrawingType),
1717 TestDisplayItem(content, foregroundDrawingType)); 1717 TestDisplayItem(content, foregroundDrawingType));
1718 sk_sp<const PaintRecord> record0 = 1718 sk_sp<const PaintRecord> record0 =
1719 sk_ref_sp(static_cast<const DrawingDisplayItem&>( 1719 static_cast<const DrawingDisplayItem&>(
1720 getPaintController().getDisplayItemList()[0]) 1720 getPaintController().getDisplayItemList()[0])
1721 .GetPaintRecord()); 1721 .GetPaintRecord();
1722 sk_sp<const PaintRecord> record1 = 1722 sk_sp<const PaintRecord> record1 =
1723 sk_ref_sp(static_cast<const DrawingDisplayItem&>( 1723 static_cast<const DrawingDisplayItem&>(
1724 getPaintController().getDisplayItemList()[1]) 1724 getPaintController().getDisplayItemList()[1])
1725 .GetPaintRecord()); 1725 .GetPaintRecord();
1726 sk_sp<const PaintRecord> record2 = 1726 sk_sp<const PaintRecord> record2 =
1727 sk_ref_sp(static_cast<const DrawingDisplayItem&>( 1727 static_cast<const DrawingDisplayItem&>(
1728 getPaintController().getDisplayItemList()[2]) 1728 getPaintController().getDisplayItemList()[2])
1729 .GetPaintRecord()); 1729 .GetPaintRecord();
1730 EXPECT_NE(record1, record2); 1730 EXPECT_NE(record1, record2);
1731 1731
1732 // Content's cache is invalid because it has display items skipped cache. 1732 // Content's cache is invalid because it has display items skipped cache.
1733 EXPECT_FALSE(getPaintController().clientCacheIsValid(content)); 1733 EXPECT_FALSE(getPaintController().clientCacheIsValid(content));
1734 EXPECT_EQ(PaintInvalidationFull, content.getPaintInvalidationReason()); 1734 EXPECT_EQ(PaintInvalidationFull, content.getPaintInvalidationReason());
1735 1735
1736 if (RuntimeEnabledFeatures::slimmingPaintV2Enabled()) { 1736 if (RuntimeEnabledFeatures::slimmingPaintV2Enabled()) {
1737 getPaintController().updateCurrentPaintChunkProperties( 1737 getPaintController().updateCurrentPaintChunkProperties(
1738 &m_rootPaintChunkId, defaultPaintChunkProperties()); 1738 &m_rootPaintChunkId, defaultPaintChunkProperties());
1739 } 1739 }
(...skipping 10 matching lines...) Expand all
1750 EXPECT_EQ(0, numOutOfOrderMatches()); 1750 EXPECT_EQ(0, numOutOfOrderMatches());
1751 EXPECT_EQ(0, numIndexedItems()); 1751 EXPECT_EQ(0, numIndexedItems());
1752 #endif 1752 #endif
1753 1753
1754 getPaintController().commitNewDisplayItems(); 1754 getPaintController().commitNewDisplayItems();
1755 1755
1756 EXPECT_DISPLAY_LIST(getPaintController().getDisplayItemList(), 3, 1756 EXPECT_DISPLAY_LIST(getPaintController().getDisplayItemList(), 3,
1757 TestDisplayItem(content, backgroundDrawingType), 1757 TestDisplayItem(content, backgroundDrawingType),
1758 TestDisplayItem(content, foregroundDrawingType), 1758 TestDisplayItem(content, foregroundDrawingType),
1759 TestDisplayItem(content, foregroundDrawingType)); 1759 TestDisplayItem(content, foregroundDrawingType));
1760 EXPECT_NE(record0.get(), static_cast<const DrawingDisplayItem&>( 1760 EXPECT_NE(record0, static_cast<const DrawingDisplayItem&>(
1761 getPaintController().getDisplayItemList()[0]) 1761 getPaintController().getDisplayItemList()[0])
1762 .GetPaintRecord()); 1762 .GetPaintRecord());
1763 EXPECT_NE(record1.get(), static_cast<const DrawingDisplayItem&>( 1763 EXPECT_NE(record1, static_cast<const DrawingDisplayItem&>(
1764 getPaintController().getDisplayItemList()[1]) 1764 getPaintController().getDisplayItemList()[1])
1765 .GetPaintRecord()); 1765 .GetPaintRecord());
1766 EXPECT_NE(record2.get(), static_cast<const DrawingDisplayItem&>( 1766 EXPECT_NE(record2, static_cast<const DrawingDisplayItem&>(
1767 getPaintController().getDisplayItemList()[2]) 1767 getPaintController().getDisplayItemList()[2])
1768 .GetPaintRecord()); 1768 .GetPaintRecord());
1769 } 1769 }
1770 1770
1771 TEST_F(PaintControllerTestBase, OptimizeNoopPairs) { 1771 TEST_F(PaintControllerTestBase, OptimizeNoopPairs) {
1772 FakeDisplayItemClient first("first"); 1772 FakeDisplayItemClient first("first");
1773 FakeDisplayItemClient second("second"); 1773 FakeDisplayItemClient second("second");
1774 FakeDisplayItemClient third("third"); 1774 FakeDisplayItemClient third("third");
1775 1775
1776 GraphicsContext context(getPaintController()); 1776 GraphicsContext context(getPaintController());
1777 drawRect(context, first, backgroundDrawingType, FloatRect(0, 0, 100, 100)); 1777 drawRect(context, first, backgroundDrawingType, FloatRect(0, 0, 100, 100));
1778 { 1778 {
(...skipping 525 matching lines...) Expand 10 before | Expand all | Expand 10 after
2304 } 2304 }
2305 2305
2306 TEST_F(PaintControllerUnderInvalidationTest, 2306 TEST_F(PaintControllerUnderInvalidationTest,
2307 FoldCompositingDrawingInSubsequence) { 2307 FoldCompositingDrawingInSubsequence) {
2308 testFoldCompositingDrawingInSubsequence(); 2308 testFoldCompositingDrawingInSubsequence();
2309 } 2309 }
2310 2310
2311 #endif // defined(GTEST_HAS_DEATH_TEST) && !OS(ANDROID) 2311 #endif // defined(GTEST_HAS_DEATH_TEST) && !OS(ANDROID)
2312 2312
2313 } // namespace blink 2313 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/platform/graphics/paint/PaintController.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698