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

Side by Side Diff: third_party/WebKit/Source/core/layout/compositing/CompositedLayerMapping.cpp

Issue 2439113003: Fix the bug that negative outline-offset is covered up by composited (Closed)
Patch Set: Draw outline when the decoration layer is not created Created 4 years, 1 month 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
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2009, 2010, 2011 Apple Inc. All rights reserved. 2 * Copyright (C) 2009, 2010, 2011 Apple Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 1. Redistributions of source code must retain the above copyright 7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer. 8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright 9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the 10 * notice, this list of conditions and the following disclaimer in the
(...skipping 541 matching lines...) Expand 10 before | Expand all | Expand 10 after
552 552
553 if (updateClippingLayers(needsAncestorClip, needsDescendantsClippingLayer)) 553 if (updateClippingLayers(needsAncestorClip, needsDescendantsClippingLayer))
554 layerConfigChanged = true; 554 layerConfigChanged = true;
555 555
556 bool scrollingConfigChanged = false; 556 bool scrollingConfigChanged = false;
557 if (updateScrollingLayers(m_owningLayer.needsCompositedScrolling())) { 557 if (updateScrollingLayers(m_owningLayer.needsCompositedScrolling())) {
558 layerConfigChanged = true; 558 layerConfigChanged = true;
559 scrollingConfigChanged = true; 559 scrollingConfigChanged = true;
560 } 560 }
561 561
562 // If the outline needs to draw over the composited scrolling contents layer
563 // or scrollbar layers it needs to be drawn into a separate layer.
564 int minBorderWidth =
565 std::min(layoutObject->style()->borderTopWidth(),
566 std::min(layoutObject->style()->borderLeftWidth(),
567 std::min(layoutObject->style()->borderRightWidth(),
568 layoutObject->style()->borderBottomWidth())));
569 bool needsDecorationLayer =
570 m_owningLayer.getScrollableArea() &&
571 m_owningLayer.getScrollableArea()->usesCompositedScrolling() &&
572 layoutObject->style()->hasOutline() &&
573 layoutObject->style()->outlineOffset() < -minBorderWidth;
574
575 if (updateDecorationLayer(needsDecorationLayer))
576 layerConfigChanged = true;
577
562 if (updateOverflowControlsLayers( 578 if (updateOverflowControlsLayers(
563 requiresHorizontalScrollbarLayer(), requiresVerticalScrollbarLayer(), 579 requiresHorizontalScrollbarLayer(), requiresVerticalScrollbarLayer(),
564 requiresScrollCornerLayer(), needsAncestorClip)) 580 requiresScrollCornerLayer(), needsAncestorClip))
565 layerConfigChanged = true; 581 layerConfigChanged = true;
566 582
567 bool hasPerspective = style.hasPerspective(); 583 bool hasPerspective = style.hasPerspective();
568 bool needsChildTransformLayer = hasPerspective && layoutObject->isBox(); 584 bool needsChildTransformLayer = hasPerspective && layoutObject->isBox();
569 if (updateChildTransformLayer(needsChildTransformLayer)) 585 if (updateChildTransformLayer(needsChildTransformLayer))
570 layerConfigChanged = true; 586 layerConfigChanged = true;
571 587
(...skipping 365 matching lines...) Expand 10 before | Expand all | Expand 10 after
937 clippingBox = clipBox(toLayoutBox(layoutObject())); 953 clippingBox = clipBox(toLayoutBox(layoutObject()));
938 954
939 updateChildTransformLayerGeometry(); 955 updateChildTransformLayerGeometry();
940 updateChildContainmentLayerGeometry(clippingBox, localCompositingBounds); 956 updateChildContainmentLayerGeometry(clippingBox, localCompositingBounds);
941 957
942 updateMaskLayerGeometry(); 958 updateMaskLayerGeometry();
943 updateTransformGeometry(snappedOffsetFromCompositedAncestor, 959 updateTransformGeometry(snappedOffsetFromCompositedAncestor,
944 relativeCompositingBounds); 960 relativeCompositingBounds);
945 updateForegroundLayerGeometry(contentsSize, clippingBox); 961 updateForegroundLayerGeometry(contentsSize, clippingBox);
946 updateBackgroundLayerGeometry(contentsSize); 962 updateBackgroundLayerGeometry(contentsSize);
963 // TODO(yigu): Currently the decoration layer uses the same contentSize
964 // as background layer and foreground layer. There are scenarios that
965 // the sizes could be different. The actual size of the decoration layer
966 // should be calculated separately.
967 // The size of the background layer should be differnet as well. We need to
968 // check whether we are painting the decoration layer into the background and
969 // then ignore or consider the outline when determining the contentSize.
970 updateDecorationLayerGeometry(contentsSize);
947 updateScrollingLayerGeometry(localCompositingBounds); 971 updateScrollingLayerGeometry(localCompositingBounds);
948 updateChildClippingMaskLayerGeometry(); 972 updateChildClippingMaskLayerGeometry();
949 973
950 if (m_owningLayer.getScrollableArea() && 974 if (m_owningLayer.getScrollableArea() &&
951 m_owningLayer.getScrollableArea()->scrollsOverflow()) 975 m_owningLayer.getScrollableArea()->scrollsOverflow())
952 m_owningLayer.getScrollableArea()->positionOverflowControls(); 976 m_owningLayer.getScrollableArea()->positionOverflowControls();
953 977
954 updateLayerBlendMode(layoutObject()->styleRef()); 978 updateLayerBlendMode(layoutObject()->styleRef());
955 updateIsRootForIsolatedGroup(); 979 updateIsRootForIsolatedGroup();
956 updateContentsRect(); 980 updateContentsRect();
(...skipping 407 matching lines...) Expand 10 before | Expand all | Expand 10 after
1364 } 1388 }
1365 m_backgroundLayer->setPosition(FloatPoint()); 1389 m_backgroundLayer->setPosition(FloatPoint());
1366 if (backgroundSize != m_backgroundLayer->size()) { 1390 if (backgroundSize != m_backgroundLayer->size()) {
1367 m_backgroundLayer->setSize(backgroundSize); 1391 m_backgroundLayer->setSize(backgroundSize);
1368 m_backgroundLayer->setNeedsDisplay(); 1392 m_backgroundLayer->setNeedsDisplay();
1369 } 1393 }
1370 m_backgroundLayer->setOffsetFromLayoutObject( 1394 m_backgroundLayer->setOffsetFromLayoutObject(
1371 m_graphicsLayer->offsetFromLayoutObject()); 1395 m_graphicsLayer->offsetFromLayoutObject());
1372 } 1396 }
1373 1397
1398 void CompositedLayerMapping::updateDecorationLayerGeometry(
1399 const FloatSize& relativeCompositingBoundsSize) {
1400 if (!m_decorationLayer)
1401 return;
1402 FloatSize decorationSize = relativeCompositingBoundsSize;
1403 m_decorationLayer->setPosition(FloatPoint());
1404 if (decorationSize != m_decorationLayer->size()) {
1405 m_decorationLayer->setSize(decorationSize);
1406 m_decorationLayer->setNeedsDisplay();
1407 }
1408 m_decorationLayer->setOffsetFromLayoutObject(
1409 m_graphicsLayer->offsetFromLayoutObject());
1410 }
1411
1374 void CompositedLayerMapping::registerScrollingLayers() { 1412 void CompositedLayerMapping::registerScrollingLayers() {
1375 // Register fixed position layers and their containers with the scrolling 1413 // Register fixed position layers and their containers with the scrolling
1376 // coordinator. 1414 // coordinator.
1377 ScrollingCoordinator* scrollingCoordinator = 1415 ScrollingCoordinator* scrollingCoordinator =
1378 scrollingCoordinatorFromLayer(m_owningLayer); 1416 scrollingCoordinatorFromLayer(m_owningLayer);
1379 if (!scrollingCoordinator) 1417 if (!scrollingCoordinator)
1380 return; 1418 return;
1381 1419
1382 scrollingCoordinator->updateLayerPositionConstraint(&m_owningLayer); 1420 scrollingCoordinator->updateLayerPositionConstraint(&m_owningLayer);
1383 1421
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
1431 .containerLayer(); 1469 .containerLayer();
1432 updateBottomLayer(m_overflowControlsAncestorClippingLayer.get()); 1470 updateBottomLayer(m_overflowControlsAncestorClippingLayer.get());
1433 updateBottomLayer(m_overflowControlsHostLayer.get()); 1471 updateBottomLayer(m_overflowControlsHostLayer.get());
1434 if (m_layerForHorizontalScrollbar) 1472 if (m_layerForHorizontalScrollbar)
1435 m_overflowControlsHostLayer->addChild(m_layerForHorizontalScrollbar.get()); 1473 m_overflowControlsHostLayer->addChild(m_layerForHorizontalScrollbar.get());
1436 if (m_layerForVerticalScrollbar) 1474 if (m_layerForVerticalScrollbar)
1437 m_overflowControlsHostLayer->addChild(m_layerForVerticalScrollbar.get()); 1475 m_overflowControlsHostLayer->addChild(m_layerForVerticalScrollbar.get());
1438 if (m_layerForScrollCorner) 1476 if (m_layerForScrollCorner)
1439 m_overflowControlsHostLayer->addChild(m_layerForScrollCorner.get()); 1477 m_overflowControlsHostLayer->addChild(m_layerForScrollCorner.get());
1440 1478
1479 // Now add the DecorationLayer as a subtree to GraphicsLayer
1480 bottomLayer = m_graphicsLayer.get();
1481 updateBottomLayer(m_decorationLayer.get());
flackr 2016/10/28 17:40:02 What if we don't have a m_decorationLayer? Also,
yigu 2016/11/01 17:30:30 That makes total sense. Plus, since addChild doesn
1482
1441 // The squashing containment layer, if it exists, becomes a no-op parent. 1483 // The squashing containment layer, if it exists, becomes a no-op parent.
1442 if (m_squashingLayer) { 1484 if (m_squashingLayer) {
1443 ASSERT((m_ancestorClippingLayer && !m_squashingContainmentLayer) || 1485 ASSERT((m_ancestorClippingLayer && !m_squashingContainmentLayer) ||
1444 (!m_ancestorClippingLayer && m_squashingContainmentLayer)); 1486 (!m_ancestorClippingLayer && m_squashingContainmentLayer));
1445 1487
1446 if (m_squashingContainmentLayer) { 1488 if (m_squashingContainmentLayer) {
1447 m_squashingContainmentLayer->removeAllChildren(); 1489 m_squashingContainmentLayer->removeAllChildren();
1448 m_squashingContainmentLayer->addChild(m_graphicsLayer.get()); 1490 m_squashingContainmentLayer->addChild(m_graphicsLayer.get());
1449 m_squashingContainmentLayer->addChild(m_squashingLayer.get()); 1491 m_squashingContainmentLayer->addChild(m_squashingLayer.get());
1450 } else { 1492 } else {
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
1562 } 1604 }
1563 contentLayer->setBackgroundColor(bgColor.rgb()); 1605 contentLayer->setBackgroundColor(bgColor.rgb());
1564 } 1606 }
1565 } 1607 }
1566 1608
1567 // FIXME: we could refine this to only allocate backings for one of these 1609 // FIXME: we could refine this to only allocate backings for one of these
1568 // layers if possible. 1610 // layers if possible.
1569 if (m_foregroundLayer) 1611 if (m_foregroundLayer)
1570 m_foregroundLayer->setDrawsContent(hasPaintedContent); 1612 m_foregroundLayer->setDrawsContent(hasPaintedContent);
1571 1613
1614 // TODO(yigu): The background should no longer setDrawsContent(true) if we
1615 // only have an outline and we are drawing the outline into the decoration
1616 // layer (i.e. if there is nothing actually drawn into the
1617 // background anymore.)
1618 // "hasPaintedContent" should be calculated in a way that does not take the
1619 // outline into consideration.
1572 if (m_backgroundLayer) 1620 if (m_backgroundLayer)
1573 m_backgroundLayer->setDrawsContent(hasPaintedContent); 1621 m_backgroundLayer->setDrawsContent(hasPaintedContent);
1574 1622
1623 if (m_decorationLayer)
1624 m_decorationLayer->setDrawsContent(true);
1625
1575 if (m_maskLayer) 1626 if (m_maskLayer)
1576 m_maskLayer->setDrawsContent(true); 1627 m_maskLayer->setDrawsContent(true);
1577 1628
1578 if (m_childClippingMaskLayer) 1629 if (m_childClippingMaskLayer)
1579 m_childClippingMaskLayer->setDrawsContent(true); 1630 m_childClippingMaskLayer->setDrawsContent(true);
1580 } 1631 }
1581 1632
1582 void CompositedLayerMapping::updateChildrenTransform() { 1633 void CompositedLayerMapping::updateChildrenTransform() {
1583 if (GraphicsLayer* childTransformLayer = this->childTransformLayer()) { 1634 if (GraphicsLayer* childTransformLayer = this->childTransformLayer()) {
1584 childTransformLayer->setTransform(owningLayer().perspectiveTransform()); 1635 childTransformLayer->setTransform(owningLayer().perspectiveTransform());
(...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after
1764 ApplyToLayersAffectedByPreserve3D = (1 << 0), 1815 ApplyToLayersAffectedByPreserve3D = (1 << 0),
1765 ApplyToSquashingLayer = (1 << 1), 1816 ApplyToSquashingLayer = (1 << 1),
1766 ApplyToScrollbarLayers = (1 << 2), 1817 ApplyToScrollbarLayers = (1 << 2),
1767 ApplyToBackgroundLayer = (1 << 3), 1818 ApplyToBackgroundLayer = (1 << 3),
1768 ApplyToMaskLayers = (1 << 4), 1819 ApplyToMaskLayers = (1 << 4),
1769 ApplyToContentLayers = (1 << 5), 1820 ApplyToContentLayers = (1 << 5),
1770 ApplyToChildContainingLayers = 1821 ApplyToChildContainingLayers =
1771 (1 << 6), // layers between m_graphicsLayer and children 1822 (1 << 6), // layers between m_graphicsLayer and children
1772 ApplyToNonScrollingContentLayers = (1 << 7), 1823 ApplyToNonScrollingContentLayers = (1 << 7),
1773 ApplyToScrollingContentLayers = (1 << 8), 1824 ApplyToScrollingContentLayers = (1 << 8),
1825 ApplyToDecorationLayer = (1 << 9),
1774 ApplyToAllGraphicsLayers = 1826 ApplyToAllGraphicsLayers =
1775 (ApplyToSquashingLayer | ApplyToScrollbarLayers | ApplyToBackgroundLayer | 1827 (ApplyToSquashingLayer | ApplyToScrollbarLayers | ApplyToBackgroundLayer |
1776 ApplyToMaskLayers | 1828 ApplyToMaskLayers |
1777 ApplyToLayersAffectedByPreserve3D | 1829 ApplyToLayersAffectedByPreserve3D |
1778 ApplyToContentLayers | 1830 ApplyToContentLayers |
1779 ApplyToScrollingContentLayers) 1831 ApplyToScrollingContentLayers |
1832 ApplyToDecorationLayer)
1780 }; 1833 };
1781 typedef unsigned ApplyToGraphicsLayersMode; 1834 typedef unsigned ApplyToGraphicsLayersMode;
1782 1835
1783 template <typename Func> 1836 template <typename Func>
1784 static void ApplyToGraphicsLayers(const CompositedLayerMapping* mapping, 1837 static void ApplyToGraphicsLayers(const CompositedLayerMapping* mapping,
1785 const Func& f, 1838 const Func& f,
1786 ApplyToGraphicsLayersMode mode) { 1839 ApplyToGraphicsLayersMode mode) {
1787 ASSERT(mode); 1840 ASSERT(mode);
1788 1841
1789 if ((mode & ApplyToLayersAffectedByPreserve3D) && 1842 if ((mode & ApplyToLayersAffectedByPreserve3D) &&
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
1832 (mode & ApplyToNonScrollingContentLayers)) && 1885 (mode & ApplyToNonScrollingContentLayers)) &&
1833 mapping->backgroundLayer()) 1886 mapping->backgroundLayer())
1834 f(mapping->backgroundLayer()); 1887 f(mapping->backgroundLayer());
1835 1888
1836 if ((mode & ApplyToScrollbarLayers) && mapping->layerForHorizontalScrollbar()) 1889 if ((mode & ApplyToScrollbarLayers) && mapping->layerForHorizontalScrollbar())
1837 f(mapping->layerForHorizontalScrollbar()); 1890 f(mapping->layerForHorizontalScrollbar());
1838 if ((mode & ApplyToScrollbarLayers) && mapping->layerForVerticalScrollbar()) 1891 if ((mode & ApplyToScrollbarLayers) && mapping->layerForVerticalScrollbar())
1839 f(mapping->layerForVerticalScrollbar()); 1892 f(mapping->layerForVerticalScrollbar());
1840 if ((mode & ApplyToScrollbarLayers) && mapping->layerForScrollCorner()) 1893 if ((mode & ApplyToScrollbarLayers) && mapping->layerForScrollCorner())
1841 f(mapping->layerForScrollCorner()); 1894 f(mapping->layerForScrollCorner());
1895
1896 if (((mode & ApplyToDecorationLayer) ||
1897 (mode & ApplyToNonScrollingContentLayers)) &&
1898 mapping->decorationLayer())
1899 f(mapping->decorationLayer());
1842 } 1900 }
1843 1901
1844 struct UpdateRenderingContextFunctor { 1902 struct UpdateRenderingContextFunctor {
1845 void operator()(GraphicsLayer* layer) const { 1903 void operator()(GraphicsLayer* layer) const {
1846 layer->setRenderingContext(renderingContext); 1904 layer->setRenderingContext(renderingContext);
1847 } 1905 }
1848 int renderingContext; 1906 int renderingContext;
1849 }; 1907 };
1850 1908
1851 void CompositedLayerMapping::updateRenderingContext() { 1909 void CompositedLayerMapping::updateRenderingContext() {
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after
2010 layerChanged = true; 2068 layerChanged = true;
2011 } 2069 }
2012 } 2070 }
2013 2071
2014 if (layerChanged && !m_owningLayer.layoutObject()->documentBeingDestroyed()) 2072 if (layerChanged && !m_owningLayer.layoutObject()->documentBeingDestroyed())
2015 compositor()->rootFixedBackgroundsChanged(); 2073 compositor()->rootFixedBackgroundsChanged();
2016 2074
2017 return layerChanged; 2075 return layerChanged;
2018 } 2076 }
2019 2077
2078 bool CompositedLayerMapping::updateDecorationLayer(bool needsDecorationLayer) {
2079 bool layerChanged = false;
2080 if (needsDecorationLayer) {
2081 if (!m_decorationLayer) {
2082 m_decorationLayer =
2083 createGraphicsLayer(CompositingReasonLayerForDecoration);
2084 m_decorationLayer->setPaintingPhase(GraphicsLayerPaintDecoration);
2085 layerChanged = true;
2086 }
2087 } else if (m_decorationLayer) {
2088 m_decorationLayer = nullptr;
2089 layerChanged = true;
2090 }
2091
2092 return layerChanged;
2093 }
2094
2020 bool CompositedLayerMapping::updateMaskLayer(bool needsMaskLayer) { 2095 bool CompositedLayerMapping::updateMaskLayer(bool needsMaskLayer) {
2021 bool layerChanged = false; 2096 bool layerChanged = false;
2022 if (needsMaskLayer) { 2097 if (needsMaskLayer) {
2023 if (!m_maskLayer) { 2098 if (!m_maskLayer) {
2024 m_maskLayer = createGraphicsLayer(CompositingReasonLayerForMask); 2099 m_maskLayer = createGraphicsLayer(CompositingReasonLayerForMask);
2025 m_maskLayer->setPaintingPhase(GraphicsLayerPaintMask); 2100 m_maskLayer->setPaintingPhase(GraphicsLayerPaintMask);
2026 layerChanged = true; 2101 layerChanged = true;
2027 } 2102 }
2028 } else if (m_maskLayer) { 2103 } else if (m_maskLayer) {
2029 m_maskLayer = nullptr; 2104 m_maskLayer = nullptr;
(...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after
2212 2287
2213 GraphicsLayerPaintingPhase 2288 GraphicsLayerPaintingPhase
2214 CompositedLayerMapping::paintingPhaseForPrimaryLayer() const { 2289 CompositedLayerMapping::paintingPhaseForPrimaryLayer() const {
2215 unsigned phase = 0; 2290 unsigned phase = 0;
2216 if (!m_backgroundLayer) 2291 if (!m_backgroundLayer)
2217 phase |= GraphicsLayerPaintBackground; 2292 phase |= GraphicsLayerPaintBackground;
2218 if (!m_foregroundLayer) 2293 if (!m_foregroundLayer)
2219 phase |= GraphicsLayerPaintForeground; 2294 phase |= GraphicsLayerPaintForeground;
2220 if (!m_maskLayer) 2295 if (!m_maskLayer)
2221 phase |= GraphicsLayerPaintMask; 2296 phase |= GraphicsLayerPaintMask;
2297 if (!m_decorationLayer)
2298 phase |= GraphicsLayerPaintDecoration;
2222 2299
2223 if (m_scrollingContentsLayer) { 2300 if (m_scrollingContentsLayer) {
2224 phase &= ~GraphicsLayerPaintForeground; 2301 phase &= ~GraphicsLayerPaintForeground;
2225 phase |= GraphicsLayerPaintCompositedScroll; 2302 phase |= GraphicsLayerPaintCompositedScroll;
2226 } 2303 }
2227 2304
2228 return static_cast<GraphicsLayerPaintingPhase>(phase); 2305 return static_cast<GraphicsLayerPaintingPhase>(phase);
2229 } 2306 }
2230 2307
2231 float CompositedLayerMapping::compositingOpacity( 2308 float CompositedLayerMapping::compositingOpacity(
(...skipping 716 matching lines...) Expand 10 before | Expand all | Expand 10 after
2948 if (graphicsLayerPaintingPhase & GraphicsLayerPaintForeground) 3025 if (graphicsLayerPaintingPhase & GraphicsLayerPaintForeground)
2949 paintLayerFlags |= PaintLayerPaintingCompositingForegroundPhase; 3026 paintLayerFlags |= PaintLayerPaintingCompositingForegroundPhase;
2950 if (graphicsLayerPaintingPhase & GraphicsLayerPaintMask) 3027 if (graphicsLayerPaintingPhase & GraphicsLayerPaintMask)
2951 paintLayerFlags |= PaintLayerPaintingCompositingMaskPhase; 3028 paintLayerFlags |= PaintLayerPaintingCompositingMaskPhase;
2952 if (graphicsLayerPaintingPhase & GraphicsLayerPaintChildClippingMask) 3029 if (graphicsLayerPaintingPhase & GraphicsLayerPaintChildClippingMask)
2953 paintLayerFlags |= PaintLayerPaintingChildClippingMaskPhase; 3030 paintLayerFlags |= PaintLayerPaintingChildClippingMaskPhase;
2954 if (graphicsLayerPaintingPhase & GraphicsLayerPaintOverflowContents) 3031 if (graphicsLayerPaintingPhase & GraphicsLayerPaintOverflowContents)
2955 paintLayerFlags |= PaintLayerPaintingOverflowContents; 3032 paintLayerFlags |= PaintLayerPaintingOverflowContents;
2956 if (graphicsLayerPaintingPhase & GraphicsLayerPaintCompositedScroll) 3033 if (graphicsLayerPaintingPhase & GraphicsLayerPaintCompositedScroll)
2957 paintLayerFlags |= PaintLayerPaintingCompositingScrollingPhase; 3034 paintLayerFlags |= PaintLayerPaintingCompositingScrollingPhase;
3035 if (graphicsLayerPaintingPhase & GraphicsLayerPaintDecoration)
3036 paintLayerFlags |= PaintLayerPaintingCompositingDecorationPhase;
2958 3037
2959 if (graphicsLayer == m_backgroundLayer.get()) 3038 if (graphicsLayer == m_backgroundLayer.get())
2960 paintLayerFlags |= PaintLayerPaintingRootBackgroundOnly; 3039 paintLayerFlags |= PaintLayerPaintingRootBackgroundOnly;
2961 else if (compositor()->fixedRootBackgroundLayer() && 3040 else if (compositor()->fixedRootBackgroundLayer() &&
2962 m_owningLayer.isRootLayer()) 3041 m_owningLayer.isRootLayer())
2963 paintLayerFlags |= PaintLayerPaintingSkipRootBackground; 3042 paintLayerFlags |= PaintLayerPaintingSkipRootBackground;
2964 3043
2965 if (graphicsLayer == m_graphicsLayer.get() || 3044 if (graphicsLayer == m_graphicsLayer.get() ||
2966 graphicsLayer == m_foregroundLayer.get() || 3045 graphicsLayer == m_foregroundLayer.get() ||
2967 graphicsLayer == m_backgroundLayer.get() || 3046 graphicsLayer == m_backgroundLayer.get() ||
2968 graphicsLayer == m_maskLayer.get() || 3047 graphicsLayer == m_maskLayer.get() ||
2969 graphicsLayer == m_childClippingMaskLayer.get() || 3048 graphicsLayer == m_childClippingMaskLayer.get() ||
2970 graphicsLayer == m_scrollingContentsLayer.get()) { 3049 graphicsLayer == m_scrollingContentsLayer.get() ||
3050 graphicsLayer == m_decorationLayer.get()) {
2971 bool paintRootBackgroundOntoScrollingContentsLayer = 3051 bool paintRootBackgroundOntoScrollingContentsLayer =
2972 m_backgroundPaintsOntoScrollingContentsLayer; 3052 m_backgroundPaintsOntoScrollingContentsLayer;
2973 DCHECK(!paintRootBackgroundOntoScrollingContentsLayer || 3053 DCHECK(!paintRootBackgroundOntoScrollingContentsLayer ||
2974 (!m_backgroundLayer && !m_foregroundLayer)); 3054 (!m_backgroundLayer && !m_foregroundLayer));
2975 if (paintRootBackgroundOntoScrollingContentsLayer) { 3055 if (paintRootBackgroundOntoScrollingContentsLayer) {
2976 if (graphicsLayer == m_scrollingContentsLayer.get()) 3056 if (graphicsLayer == m_scrollingContentsLayer.get())
2977 paintLayerFlags &= ~PaintLayerPaintingSkipRootBackground; 3057 paintLayerFlags &= ~PaintLayerPaintingSkipRootBackground;
2978 else 3058 else
2979 paintLayerFlags |= PaintLayerPaintingSkipRootBackground; 3059 paintLayerFlags |= PaintLayerPaintingSkipRootBackground;
2980 } 3060 }
(...skipping 260 matching lines...) Expand 10 before | Expand all | Expand 10 after
3241 } else if (graphicsLayer == m_layerForScrollCorner.get()) { 3321 } else if (graphicsLayer == m_layerForScrollCorner.get()) {
3242 name = "Scroll Corner Layer"; 3322 name = "Scroll Corner Layer";
3243 } else if (graphicsLayer == m_overflowControlsHostLayer.get()) { 3323 } else if (graphicsLayer == m_overflowControlsHostLayer.get()) {
3244 name = "Overflow Controls Host Layer"; 3324 name = "Overflow Controls Host Layer";
3245 } else if (graphicsLayer == m_overflowControlsAncestorClippingLayer.get()) { 3325 } else if (graphicsLayer == m_overflowControlsAncestorClippingLayer.get()) {
3246 name = "Overflow Controls Ancestor Clipping Layer"; 3326 name = "Overflow Controls Ancestor Clipping Layer";
3247 } else if (graphicsLayer == m_scrollingLayer.get()) { 3327 } else if (graphicsLayer == m_scrollingLayer.get()) {
3248 name = "Scrolling Layer"; 3328 name = "Scrolling Layer";
3249 } else if (graphicsLayer == m_scrollingContentsLayer.get()) { 3329 } else if (graphicsLayer == m_scrollingContentsLayer.get()) {
3250 name = "Scrolling Contents Layer"; 3330 name = "Scrolling Contents Layer";
3331 } else if (graphicsLayer == m_decorationLayer.get()) {
3332 name = "Decoration Layer";
3251 } else { 3333 } else {
3252 ASSERT_NOT_REACHED(); 3334 ASSERT_NOT_REACHED();
3253 } 3335 }
3254 3336
3255 return name; 3337 return name;
3256 } 3338 }
3257 3339
3258 } // namespace blink 3340 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698