WebKit Bugzilla
Attachment 361038 Details for
Bug 194205
: Async overflow scroll with border-radius renders incorrectly
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-194205-20190203220345.patch (text/plain), 26.83 KB, created by
Simon Fraser (smfr)
on 2019-02-03 22:03:46 PST
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Simon Fraser (smfr)
Created:
2019-02-03 22:03:46 PST
Size:
26.83 KB
patch
obsolete
>Subversion Revision: 240901 >diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index 990c955991d45ab7c63e1ca9bef6e410329ce712..cb6f4e8d973e6fbe0a2c852114b54a8ebbea9f51 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,31 @@ >+2019-02-03 Simon Fraser <simon.fraser@apple.com> >+ >+ Async overflow scroll with border-radius renders incorrectly >+ https://bugs.webkit.org/show_bug.cgi?id=194205 >+ <rdar://problem/47771668> >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ When an element has composited overflow:scroll and border-radius, we need to make a layer >+ to clip to the inside of the border radius if necessary. >+ >+ Existing code simply turned off needsDescendantsClippingLayer for composited scrolling >+ layers, but now we check to see if the inner border is rounded. If we have both a m_childContainmentLayer >+ and scrolling layers, we need to adjust the location of the scrolling layers (which are parented >+ in m_childContainmentLayer). >+ >+ Also fix offsetFromRenderer for these layers; it's positive for layers inset from the top left >+ of the border box. >+ >+ Tests: compositing/clipping/border-radius-async-overflow-clipping-layer.html >+ compositing/clipping/border-radius-async-overflow-non-stacking.html >+ compositing/clipping/border-radius-async-overflow-stacking.html >+ >+ * rendering/RenderLayerBacking.cpp: >+ (WebCore::RenderLayerBacking::updateConfiguration): >+ (WebCore::RenderLayerBacking::updateGeometry): >+ (WebCore::RenderLayerBacking::updateChildClippingStrategy): Layout is always up-to-date now, so remove the comment. >+ > 2019-02-02 Simon Fraser <simon.fraser@apple.com> > > Tidy up data memebers of FrameView and related classes to shrink class sizes >diff --git a/Source/WebCore/rendering/RenderLayerBacking.cpp b/Source/WebCore/rendering/RenderLayerBacking.cpp >index eb3bb3b9195a3c50e69cd6ea2326adef3815aadd..49cb77979808213da4afd5bc0f6965f4c651b64d 100644 >--- a/Source/WebCore/rendering/RenderLayerBacking.cpp >+++ b/Source/WebCore/rendering/RenderLayerBacking.cpp >@@ -702,22 +702,26 @@ bool RenderLayerBacking::updateConfiguration() > ASSERT(!renderer().view().needsLayout()); > > bool layerConfigChanged = false; >+ auto& compositor = this->compositor(); > >- setBackgroundLayerPaintsFixedRootBackground(compositor().needsFixedRootBackgroundLayer(m_owningLayer)); >+ setBackgroundLayerPaintsFixedRootBackground(compositor.needsFixedRootBackgroundLayer(m_owningLayer)); > > if (updateBackgroundLayer(m_backgroundLayerPaintsFixedRootBackground || m_requiresBackgroundLayer)) > layerConfigChanged = true; > >- if (updateForegroundLayer(compositor().needsContentsCompositingLayer(m_owningLayer))) >+ if (updateForegroundLayer(compositor.needsContentsCompositingLayer(m_owningLayer))) > layerConfigChanged = true; > >- // This requires descendants to have been updated. >- bool needsDescendantsClippingLayer = compositor().clipsCompositingDescendants(m_owningLayer); >+ bool needsDescendantsClippingLayer = false; > bool usesCompositedScrolling = m_owningLayer.hasCompositedScrollableOverflow(); > >- // Our scrolling layer will clip. >- if (usesCompositedScrolling) >- needsDescendantsClippingLayer = false; >+ if (usesCompositedScrolling) { >+ // If it's scrollable, it has to be a box. >+ auto& renderBox = downcast<RenderBox>(renderer()); >+ FloatRoundedRect contentsClippingRect = renderer().style().getRoundedInnerBorderFor(renderBox.borderBoxRect()).pixelSnappedRoundedRectForPainting(deviceScaleFactor()); >+ needsDescendantsClippingLayer = contentsClippingRect.isRounded(); >+ } else >+ needsDescendantsClippingLayer = compositor.clipsCompositingDescendants(m_owningLayer); > > if (updateScrollingLayers(usesCompositedScrolling)) > layerConfigChanged = true; >@@ -726,7 +730,7 @@ bool RenderLayerBacking::updateConfiguration() > layerConfigChanged = true; > > // clippedByAncestor() does a tree walk. >- if (updateAncestorClippingLayer(compositor().clippedByAncestor(m_owningLayer))) >+ if (updateAncestorClippingLayer(compositor.clippedByAncestor(m_owningLayer))) > layerConfigChanged = true; > > if (updateOverflowControlsLayers(requiresHorizontalScrollbarLayer(), requiresVerticalScrollbarLayer(), requiresScrollCornerLayer())) >@@ -794,7 +798,7 @@ bool RenderLayerBacking::updateConfiguration() > layerConfigChanged = true; > } > #endif >- if (is<RenderWidget>(renderer()) && compositor().parentFrameContentLayers(downcast<RenderWidget>(renderer()))) { >+ if (is<RenderWidget>(renderer()) && compositor.parentFrameContentLayers(downcast<RenderWidget>(renderer()))) { > m_owningLayer.setNeedsCompositingGeometryUpdate(); > layerConfigChanged = true; > } >@@ -1082,6 +1086,7 @@ void RenderLayerBacking::updateGeometry() > // If we have a layer that clips children, position it. > LayoutRect clippingBox; > if (auto* clipLayer = clippingLayer()) { >+ // clipLayer is the m_childContainmentLayer. > clippingBox = clipBox(downcast<RenderBox>(renderer())); > // Clipping layer is parented in the primary graphics layer. > LayoutSize clipBoxOffsetFromGraphicsLayer = toLayoutSize(clippingBox.location()) + rendererOffset.fromPrimaryGraphicsLayer(); >@@ -1185,24 +1190,25 @@ void RenderLayerBacking::updateGeometry() > ASSERT(m_scrolledContentsLayer); > auto& renderBox = downcast<RenderBox>(renderer()); > LayoutRect paddingBoxIncludingScrollbar = renderBox.paddingBoxRectIncludingScrollbar(); >- ScrollOffset scrollOffset = m_owningLayer.scrollOffset(); >+ LayoutRect parentLayerBounds = clippingLayer() ? clippingBox : compositedBounds(); > > // FIXME: need to do some pixel snapping here. >- m_scrollContainerLayer->setPosition(FloatPoint(paddingBoxIncludingScrollbar.location() - compositedBounds().location())); >- m_scrollContainerLayer->setSize(roundedIntSize(LayoutSize(renderBox.clientWidth(), renderBox.clientHeight()))); >+ m_scrollContainerLayer->setPosition(FloatPoint(paddingBoxIncludingScrollbar.location() - parentLayerBounds.location())); >+ m_scrollContainerLayer->setSize(roundedIntSize(LayoutSize(renderBox.paddingBoxWidth(), renderBox.paddingBoxHeight()))); > >+ ScrollOffset scrollOffset = m_owningLayer.scrollOffset(); > updateScrollOffset(scrollOffset); > #if PLATFORM(IOS_FAMILY) > m_scrolledContentsLayer->setPosition({ }); // FIXME: necessary? > #endif > > FloatSize oldScrollingLayerOffset = m_scrollContainerLayer->offsetFromRenderer(); >- m_scrollContainerLayer->setOffsetFromRenderer(-toFloatSize(paddingBoxIncludingScrollbar.location())); >+ m_scrollContainerLayer->setOffsetFromRenderer(toFloatSize(paddingBoxIncludingScrollbar.location())); > > if (m_childClippingMaskLayer) { > m_childClippingMaskLayer->setPosition(m_scrollContainerLayer->position()); > m_childClippingMaskLayer->setSize(m_scrollContainerLayer->size()); >- m_childClippingMaskLayer->setOffsetFromRenderer(-toFloatSize(paddingBoxIncludingScrollbar.location())); >+ m_childClippingMaskLayer->setOffsetFromRenderer(toFloatSize(paddingBoxIncludingScrollbar.location())); > } > > bool paddingBoxOffsetChanged = oldScrollingLayerOffset != m_scrollContainerLayer->offsetFromRenderer(); >@@ -1708,7 +1714,6 @@ void RenderLayerBacking::updateChildClippingStrategy(bool needsDescendantsClippi > { > if (hasClippingLayer() && needsDescendantsClippingLayer) { > if (is<RenderBox>(renderer()) && (renderer().style().clipPath() || renderer().style().hasBorderRadius())) { >- // FIXME: we shouldn't get geometry here as layout may not have been udpated. > LayoutRect boxRect(LayoutPoint(), downcast<RenderBox>(renderer()).size()); > boxRect.move(contentOffsetInCompostingLayer()); > FloatRoundedRect contentsClippingRect = renderer().style().getRoundedInnerBorderFor(boxRect).pixelSnappedRoundedRectForPainting(deviceScaleFactor()); >diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog >index 966680f90c3bf76196d8a2a4025dff1e7a94b6e5..988a8b43831b8f8d924fdd14715acf3ddb2047a1 100644 >--- a/LayoutTests/ChangeLog >+++ b/LayoutTests/ChangeLog >@@ -1,3 +1,26 @@ >+2019-02-03 Simon Fraser <simon.fraser@apple.com> >+ >+ Async overflow scroll with border-radius renders incorrectly >+ https://bugs.webkit.org/show_bug.cgi?id=194205 >+ <rdar://problem/47771668> >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ New baselines, mostly correcting offsetFromRenderer. >+ >+ * compositing/clipping/border-radius-async-overflow-clipping-layer-expected.txt: Added. >+ * compositing/clipping/border-radius-async-overflow-clipping-layer.html: Added. >+ * compositing/clipping/border-radius-async-overflow-non-stacking-expected.html: Added. >+ * compositing/clipping/border-radius-async-overflow-non-stacking.html: Added. >+ * compositing/clipping/border-radius-async-overflow-stacking-expected.html: Added. >+ * compositing/clipping/border-radius-async-overflow-stacking.html: Added. >+ * compositing/scrolling/overflow-scrolling-layers-are-self-painting-expected.txt: >+ * platform/ios/compositing/overflow/scrolling-without-painting-expected.txt: >+ * platform/ios/compositing/overflow/textarea-scroll-touch-expected.txt: html.css specifies a border-radius on <textarea> for iOS, so we make additional >+ clipping layers. >+ * platform/ios/compositing/rtl/rtl-scrolling-with-transformed-descendants-expected.txt: >+ * platform/ios/compositing/scrolling/overflow-scrolling-layers-are-self-painting-expected.txt: >+ > 2019-02-02 Justin Fan <justin_fan@apple.com> > > [WebGPU] Fix GPURenderPassEncoder::setVertexBuffers and allow overlapping indices with GPUBindGroups >diff --git a/LayoutTests/compositing/clipping/border-radius-async-overflow-clipping-layer-expected.txt b/LayoutTests/compositing/clipping/border-radius-async-overflow-clipping-layer-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..74275d073f110d898a924f262e4acf326bad49df >--- /dev/null >+++ b/LayoutTests/compositing/clipping/border-radius-async-overflow-clipping-layer-expected.txt >@@ -0,0 +1,87 @@ >+This is the scrolled contents >+This is the scrolled contents >+(GraphicsLayer >+ (anchor 0.00 0.00) >+ (bounds 800.00 600.00) >+ (children 1 >+ (GraphicsLayer >+ (bounds 800.00 600.00) >+ (contentsOpaque 1) >+ (children 2 >+ (GraphicsLayer >+ (offsetFromRenderer width=-14 height=-14) >+ (position 14.00 6.00) >+ (bounds 408.00 288.00) >+ (drawsContent 1) >+ (children 2 >+ (GraphicsLayer >+ (offsetFromRenderer width=30 height=30) >+ (position 44.00 44.00) >+ (bounds 320.00 200.00) >+ (children 1 >+ (GraphicsLayer >+ (offsetFromRenderer width=30 height=30) >+ (anchor 0.00 0.00) >+ (bounds 320.00 1020.00) >+ (children 1 >+ (GraphicsLayer >+ (position 10.00 10.00) >+ (bounds 300.00 1000.00) >+ (contentsOpaque 1) >+ (drawsContent 1) >+ ) >+ ) >+ ) >+ ) >+ ) >+ (GraphicsLayer >+ (position 349.00 44.00) >+ (bounds 15.00 200.00) >+ (drawsContent 1) >+ ) >+ ) >+ ) >+ (GraphicsLayer >+ (offsetFromRenderer width=-14 height=-14) >+ (position 14.00 286.00) >+ (bounds 408.00 288.00) >+ (drawsContent 1) >+ (children 2 >+ (GraphicsLayer >+ (offsetFromRenderer width=30 height=30) >+ (position 44.00 44.00) >+ (bounds 320.00 200.00) >+ (children 1 >+ (GraphicsLayer >+ (offsetFromRenderer width=30 height=30) >+ (bounds 320.00 200.00) >+ (children 1 >+ (GraphicsLayer >+ (offsetFromRenderer width=30 height=30) >+ (anchor 0.00 0.00) >+ (bounds 320.00 1020.00) >+ (children 1 >+ (GraphicsLayer >+ (position 10.00 10.00) >+ (bounds 300.00 1000.00) >+ (contentsOpaque 1) >+ (drawsContent 1) >+ ) >+ ) >+ ) >+ ) >+ ) >+ ) >+ ) >+ (GraphicsLayer >+ (position 349.00 44.00) >+ (bounds 15.00 200.00) >+ (drawsContent 1) >+ ) >+ ) >+ ) >+ ) >+ ) >+ ) >+) >+ >diff --git a/LayoutTests/compositing/clipping/border-radius-async-overflow-clipping-layer.html b/LayoutTests/compositing/clipping/border-radius-async-overflow-clipping-layer.html >new file mode 100644 >index 0000000000000000000000000000000000000000..244f504e8ba01ccbe47c9377a603aef07ab966ae >--- /dev/null >+++ b/LayoutTests/compositing/clipping/border-radius-async-overflow-clipping-layer.html >@@ -0,0 +1,59 @@ >+<!DOCTYPE html> >+ >+<html> >+<head> >+ <title>Tests layer tree for radius-clips that do and do not affect the padding box</title> >+ <style> >+ .scroller { >+ margin: 20px; >+ width: 300px; >+ height: 180px; >+ overflow-y: scroll; >+ border: 30px solid green; >+ padding: 10px; >+ line-height: 1.5em; >+ border-radius: 30px; >+ box-shadow: 0 0 10px black; >+ } >+ >+ .stacking-context { >+ position: relative; >+ z-index: 0; >+ } >+ >+ .contents { >+ width: 100%; >+ background-color: silver; >+ height: 1000px; >+ } >+ >+ .composited { >+ transform: translateZ(0); >+ } >+ </style> >+ <script> >+ if (window.testRunner) >+ testRunner.dumpAsText(); >+ >+ if (window.internals) { >+ internals.settings.setAsyncOverflowScrollingEnabled(true); >+ internals.setUsesOverlayScrollbars(true); >+ } >+ >+ window.addEventListener('load', () => { >+ if (window.testRunner) >+ document.getElementById('layers').innerText = window.internals.layerTreeAsText(document); >+ }, false); >+ </script> >+ >+</head> >+<body> >+ <div class="stacking-context scroller" style="border-radius: 30px"> >+ <div class="composited contents">This is the scrolled contents</div> >+ </div> >+ <div class="stacking-context scroller" style="border-radius: 25%"> >+ <div class="composited contents">This is the scrolled contents</div> >+ </div> >+<pre id="layers"></pre> >+</body> >+</html> >diff --git a/LayoutTests/compositing/clipping/border-radius-async-overflow-non-stacking-expected.html b/LayoutTests/compositing/clipping/border-radius-async-overflow-non-stacking-expected.html >new file mode 100644 >index 0000000000000000000000000000000000000000..8dbbdbfc1133227bbfbb26e83fb0609b7a8fb212 >--- /dev/null >+++ b/LayoutTests/compositing/clipping/border-radius-async-overflow-non-stacking-expected.html >@@ -0,0 +1,44 @@ >+<!DOCTYPE html> >+ >+<html> >+<head> >+ <style> >+ .scroller { >+ margin: 10px; >+ width: 300px; >+ height: 200px; >+ overflow: hidden; >+ border: 30px solid green; >+ padding: 20px; >+ line-height: 1.5em; >+ border-top-right-radius: 150px 267px; >+ border-bottom-left-radius: 150px 267px; >+ } >+ >+ .contents { >+ width: 100%; >+ background-color: silver; >+ height: 1000px; >+ } >+ >+ .composited { >+ transform: translateZ(0); >+ } >+ >+ .scrollbar-hider { >+ position: absolute; >+ width: 17px; >+ height: 240px; >+ left: 372px; >+ top: 40px; >+ background-color: gray; >+ } >+ </style> >+</head> >+<body> >+ <div class="scroller"> >+ <div class="composited contents">This is the scrolled contents</div> >+ </div> >+ <div class="scrollbar-hider"></div> >+</body> >+</html> >diff --git a/LayoutTests/compositing/clipping/border-radius-async-overflow-non-stacking.html b/LayoutTests/compositing/clipping/border-radius-async-overflow-non-stacking.html >new file mode 100644 >index 0000000000000000000000000000000000000000..e375d5951a99ebeb21cdac21a9621423d172bc46 >--- /dev/null >+++ b/LayoutTests/compositing/clipping/border-radius-async-overflow-non-stacking.html >@@ -0,0 +1,50 @@ >+<!DOCTYPE html> >+ >+<html> >+<head> >+ <style> >+ .scroller { >+ margin: 10px; >+ width: 300px; >+ height: 200px; >+ overflow-y: scroll; >+ border: 30px solid green; >+ padding: 20px; >+ line-height: 1.5em; >+ border-top-right-radius: 150px 267px; >+ border-bottom-left-radius: 150px 267px; >+ } >+ >+ .contents { >+ width: 100%; >+ background-color: silver; >+ height: 1000px; >+ } >+ >+ .composited { >+ transform: translateZ(0); >+ } >+ >+ .scrollbar-hider { >+ position: absolute; >+ width: 17px; >+ height: 240px; >+ left: 372px; >+ top: 40px; >+ background-color: gray; >+ } >+ </style> >+ <script> >+ if (window.internals) { >+ internals.settings.setAsyncOverflowScrollingEnabled(true); >+ internals.setUsesOverlayScrollbars(true); >+ } >+ </script> >+</head> >+<body> >+ <div class="scroller"> >+ <div class="composited contents">This is the scrolled contents</div> >+ </div> >+ <div class="scrollbar-hider"></div> >+</body> >+</html> >diff --git a/LayoutTests/compositing/clipping/border-radius-async-overflow-stacking-expected.html b/LayoutTests/compositing/clipping/border-radius-async-overflow-stacking-expected.html >new file mode 100644 >index 0000000000000000000000000000000000000000..d213e888f01d4837199bb175af02bc6046957f06 >--- /dev/null >+++ b/LayoutTests/compositing/clipping/border-radius-async-overflow-stacking-expected.html >@@ -0,0 +1,49 @@ >+<!DOCTYPE html> >+ >+<html> >+<head> >+ <style> >+ .scroller { >+ margin: 10px; >+ width: 300px; >+ height: 200px; >+ overflow: hidden; >+ border: 30px solid green; >+ padding: 20px; >+ line-height: 1.5em; >+ border-top-right-radius: 150px 267px; >+ border-bottom-left-radius: 150px 267px; >+ } >+ >+ .stacking-context { >+ position: relative; >+ z-index: 0; >+ } >+ >+ .contents { >+ width: 100%; >+ background-color: silver; >+ height: 1000px; >+ } >+ >+ .composited { >+ transform: translateZ(0); >+ } >+ >+ .scrollbar-hider { >+ position: absolute; >+ width: 17px; >+ height: 240px; >+ left: 372px; >+ top: 40px; >+ background-color: gray; >+ } >+ </style> >+</head> >+<body> >+ <div class="scroller stacking-context"> >+ <div class="composited contents">This is the scrolled contents</div> >+ </div> >+ <div class="scrollbar-hider"></div> >+</body> >+</html> >diff --git a/LayoutTests/compositing/clipping/border-radius-async-overflow-stacking.html b/LayoutTests/compositing/clipping/border-radius-async-overflow-stacking.html >new file mode 100644 >index 0000000000000000000000000000000000000000..261cd1af4a3197f8e85508e506b65911d08177bf >--- /dev/null >+++ b/LayoutTests/compositing/clipping/border-radius-async-overflow-stacking.html >@@ -0,0 +1,55 @@ >+<!DOCTYPE html> >+ >+<html> >+<head> >+ <style> >+ .scroller { >+ margin: 10px; >+ width: 300px; >+ height: 200px; >+ overflow-y: scroll; >+ border: 30px solid green; >+ padding: 20px; >+ line-height: 1.5em; >+ border-top-right-radius: 150px 267px; >+ border-bottom-left-radius: 150px 267px; >+ } >+ >+ .stacking-context { >+ position: relative; >+ z-index: 0; >+ } >+ >+ .contents { >+ width: 100%; >+ background-color: silver; >+ height: 1000px; >+ } >+ >+ .composited { >+ transform: translateZ(0); >+ } >+ >+ .scrollbar-hider { >+ position: absolute; >+ width: 17px; >+ height: 240px; >+ left: 372px; >+ top: 40px; >+ background-color: gray; >+ } >+ </style> >+ <script> >+ if (window.internals) { >+ internals.settings.setAsyncOverflowScrollingEnabled(true); >+ internals.setUsesOverlayScrollbars(true); >+ } >+ </script> >+</head> >+<body> >+ <div class="scroller stacking-context"> >+ <div class="composited contents">This is the scrolled contents</div> >+ </div> >+ <div class="scrollbar-hider"></div> >+</body> >+</html> >diff --git a/LayoutTests/compositing/scrolling/overflow-scrolling-layers-are-self-painting-expected.txt b/LayoutTests/compositing/scrolling/overflow-scrolling-layers-are-self-painting-expected.txt >index ea8cb7627480e82730338ad0006f39869ee3cfa1..b41529d02f64461bc4c6248aea38a2525463eb9b 100644 >--- a/LayoutTests/compositing/scrolling/overflow-scrolling-layers-are-self-painting-expected.txt >+++ b/LayoutTests/compositing/scrolling/overflow-scrolling-layers-are-self-painting-expected.txt >@@ -12,7 +12,7 @@ > (drawsContent 1) > (children 1 > (GraphicsLayer >- (offsetFromRenderer width=-1 height=-1) >+ (offsetFromRenderer width=1 height=1) > (position 1.00 1.00) > (bounds 285.00 285.00) > (children 1 >diff --git a/LayoutTests/platform/ios/compositing/overflow/scrolling-without-painting-expected.txt b/LayoutTests/platform/ios/compositing/overflow/scrolling-without-painting-expected.txt >index 571efd035db1142d14c558b2b752b5dd5fc588e5..5339e219c0d1699fd1b0429ede26958c99abc474 100644 >--- a/LayoutTests/platform/ios/compositing/overflow/scrolling-without-painting-expected.txt >+++ b/LayoutTests/platform/ios/compositing/overflow/scrolling-without-painting-expected.txt >@@ -12,7 +12,7 @@ > (drawsContent 1) > (children 1 > (GraphicsLayer >- (offsetFromRenderer width=-1 height=-1) >+ (offsetFromRenderer width=1 height=1) > (position 1.00 1.00) > (bounds origin 0.00 25.00) > (bounds 200.00 200.00) >diff --git a/LayoutTests/platform/ios/compositing/overflow/textarea-scroll-touch-expected.txt b/LayoutTests/platform/ios/compositing/overflow/textarea-scroll-touch-expected.txt >index 8770b179a9bb5b1390f3de8fe78b3ad643a46439..a8cda7b260eaef796ff90f11b7644aea45344119 100644 >--- a/LayoutTests/platform/ios/compositing/overflow/textarea-scroll-touch-expected.txt >+++ b/LayoutTests/platform/ios/compositing/overflow/textarea-scroll-touch-expected.txt >@@ -13,17 +13,23 @@ > (drawsContent 1) > (children 1 > (GraphicsLayer >- (offsetFromRenderer width=-1 height=-1) >+ (offsetFromRenderer width=1 height=1) > (position 1.00 1.00) >- (bounds origin 0.00 50.00) > (bounds 204.00 124.00) > (children 1 > (GraphicsLayer > (offsetFromRenderer width=1 height=1) >- (scrollOffset (0,50)) >- (anchor 0.00 0.00) >- (bounds 204.00 270.00) >- (drawsContent 1) >+ (bounds origin 0.00 50.00) >+ (bounds 204.00 124.00) >+ (children 1 >+ (GraphicsLayer >+ (offsetFromRenderer width=1 height=1) >+ (scrollOffset (0,50)) >+ (anchor 0.00 0.00) >+ (bounds 204.00 270.00) >+ (drawsContent 1) >+ ) >+ ) > ) > ) > ) >@@ -36,17 +42,23 @@ > (drawsContent 1) > (children 1 > (GraphicsLayer >- (offsetFromRenderer width=-1 height=-1) >+ (offsetFromRenderer width=1 height=1) > (position 1.00 1.00) >- (bounds origin 0.00 50.00) > (bounds 204.00 124.00) > (children 1 > (GraphicsLayer > (offsetFromRenderer width=1 height=1) >- (scrollOffset (0,50)) >- (anchor 0.00 0.00) >- (bounds 204.00 270.00) >- (drawsContent 1) >+ (bounds origin 0.00 50.00) >+ (bounds 204.00 124.00) >+ (children 1 >+ (GraphicsLayer >+ (offsetFromRenderer width=1 height=1) >+ (scrollOffset (0,50)) >+ (anchor 0.00 0.00) >+ (bounds 204.00 270.00) >+ (drawsContent 1) >+ ) >+ ) > ) > ) > ) >diff --git a/LayoutTests/platform/ios/compositing/rtl/rtl-scrolling-with-transformed-descendants-expected.txt b/LayoutTests/platform/ios/compositing/rtl/rtl-scrolling-with-transformed-descendants-expected.txt >index b623498783b966c8684466999dad81e24381d134..31fe83da3ae326c03a0c4371805559a59457f5d4 100644 >--- a/LayoutTests/platform/ios/compositing/rtl/rtl-scrolling-with-transformed-descendants-expected.txt >+++ b/LayoutTests/platform/ios/compositing/rtl/rtl-scrolling-with-transformed-descendants-expected.txt >@@ -13,7 +13,7 @@ > (drawsContent 1) > (children 1 > (GraphicsLayer >- (offsetFromRenderer width=-2 height=-2) >+ (offsetFromRenderer width=2 height=2) > (position 2.00 2.00) > (bounds origin 366.00 0.00) > (bounds 400.00 205.00) >diff --git a/LayoutTests/platform/ios/compositing/scrolling/overflow-scrolling-layers-are-self-painting-expected.txt b/LayoutTests/platform/ios/compositing/scrolling/overflow-scrolling-layers-are-self-painting-expected.txt >index ae28cdb4be40169f78c73ce84178c454daf02007..79c4fa2d097b97ea290d6ef605b4b556bd9cd990 100644 >--- a/LayoutTests/platform/ios/compositing/scrolling/overflow-scrolling-layers-are-self-painting-expected.txt >+++ b/LayoutTests/platform/ios/compositing/scrolling/overflow-scrolling-layers-are-self-painting-expected.txt >@@ -12,7 +12,7 @@ > (drawsContent 1) > (children 1 > (GraphicsLayer >- (offsetFromRenderer width=-1 height=-1) >+ (offsetFromRenderer width=1 height=1) > (position 1.00 1.00) > (bounds 300.00 300.00) > (children 1
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Flags:
zalan
:
review+
ews-watchlist
:
commit-queue-
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 194205
:
361018
|
361019
| 361038 |
361044