WebKit Bugzilla
Attachment 359737 Details for
Bug 193642
: Fix the position of layers nested inside of composited overflow-scroll
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-193642-20190122082424.patch (text/plain), 6.98 KB, created by
Simon Fraser (smfr)
on 2019-01-22 08:24:25 PST
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Simon Fraser (smfr)
Created:
2019-01-22 08:24:25 PST
Size:
6.98 KB
patch
obsolete
>Subversion Revision: 240220 >diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index 1a5f36d7d859d8bafac9becd636cd7241180ce15..27eed83897a6a6b80e7f8e9f8e262d4a3af82e86 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,18 @@ >+2019-01-20 Simon Fraser <simon.fraser@apple.com> >+ >+ Fix the position of layers nested inside of composited overflow-scroll >+ https://bugs.webkit.org/show_bug.cgi?id=193642 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Remove an iOS #ifdef so that layers inside composited overflow gets the correct >+ positions on macOS too. >+ >+ Test: compositing/geometry/fixed-inside-overflow-scroll.html >+ >+ * rendering/RenderLayerBacking.cpp: >+ (WebCore::RenderLayerBacking::computeParentGraphicsLayerRect const): >+ > 2019-01-20 chris fleizach <cfleizach@apple.com> > > AX: Support returning relative frames for accessibility >diff --git a/Source/WebCore/rendering/RenderLayerBacking.cpp b/Source/WebCore/rendering/RenderLayerBacking.cpp >index 31c326f9f1826f9ed54ae119fcd94877fcf02a8a..9cf8c686560cf6497eac25161cf03e5a1a2ccbf4 100644 >--- a/Source/WebCore/rendering/RenderLayerBacking.cpp >+++ b/Source/WebCore/rendering/RenderLayerBacking.cpp >@@ -946,7 +946,6 @@ LayoutRect RenderLayerBacking::computeParentGraphicsLayerRect(RenderLayer* compo > parentGraphicsLayerRect = snappedGraphicsLayer(clippingBoxOffset, clippingBox.size(), deviceScaleFactor()).m_snappedRect; > } > >-#if PLATFORM(IOS_FAMILY) > if (compositedAncestor->hasCompositedScrollableOverflow()) { > LayoutRect ancestorCompositedBounds = ancestorBackingLayer->compositedBounds(); > auto& renderBox = downcast<RenderBox>(compositedAncestor->renderer()); >@@ -954,7 +953,6 @@ LayoutRect RenderLayerBacking::computeParentGraphicsLayerRect(RenderLayer* compo > ScrollOffset scrollOffset = compositedAncestor->scrollOffset(); > parentGraphicsLayerRect = LayoutRect((paddingBoxIncludingScrollbar.location() - toLayoutSize(ancestorCompositedBounds.location()) - toLayoutSize(scrollOffset)), paddingBoxIncludingScrollbar.size()); > } >-#endif > > if (m_ancestorClippingLayer) { > // Call calculateRects to get the backgroundRect which is what is used to clip the contents of this >diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog >index 91111fba309939a34f1058328c6f7d124a6f35c3..5d7097d5d16d603c54a9e4cb6d5789a721fbdec4 100644 >--- a/LayoutTests/ChangeLog >+++ b/LayoutTests/ChangeLog >@@ -1,3 +1,16 @@ >+2019-01-20 Simon Fraser <simon.fraser@apple.com> >+ >+ Fix the position of layers nested inside of composited overflow-scroll >+ https://bugs.webkit.org/show_bug.cgi?id=193642 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Ref test. Black bar obscures the area that's different because of overlay/non-overlay >+ scrollbar differences between macOS and iOS. >+ >+ * compositing/geometry/fixed-inside-overflow-scroll-expected.html: Added. >+ * compositing/geometry/fixed-inside-overflow-scroll.html: Added. >+ > 2019-01-20 chris fleizach <cfleizach@apple.com> > > AX: Support returning relative frames for accessibility >diff --git a/LayoutTests/compositing/geometry/fixed-inside-overflow-scroll-expected.html b/LayoutTests/compositing/geometry/fixed-inside-overflow-scroll-expected.html >new file mode 100644 >index 0000000000000000000000000000000000000000..c9e160c2abc5abb63ea5e3bc09322ce8048c57f8 >--- /dev/null >+++ b/LayoutTests/compositing/geometry/fixed-inside-overflow-scroll-expected.html >@@ -0,0 +1,70 @@ >+<!DOCTYPE html> >+ >+<html> >+<head> >+ <style> >+ body { >+ margin: 0; >+ } >+ .container { >+ position: relative; >+ z-index: 0; >+ margin: 50px; >+ width: 400px; >+ height: 320px; >+ overflow-y: scroll; >+ border: 30px solid gray; >+ box-shadow: 0 0 10px transparent; >+ padding: 20px; >+ } >+ >+ .inner { >+ position: relative; >+ height: 1000px; >+ width: 100%; >+ background-color: silver; >+ } >+ >+ .inner-fixed { >+ position: absolute; >+ top: 50px; >+ left: 100px; >+ width: 200px; >+ height: 150px; >+ background-color: green; >+ box-shadow: 0 0 10px transparent; >+ will-change: transform; >+ } >+ >+ .placeholder { >+ position: absolute; >+ background-color: red; >+ top: 50px; >+ left: 100px; >+ width: 200px; >+ height: 148px; >+ } >+ >+ .scrollbar-hider { >+ position: absolute; >+ height: 380px; >+ width: 37px; >+ top: 70px; >+ left: 484px; >+ background-color: black; >+ } >+ </style> >+</head> >+<body> >+ >+<div id="scroller" class="container"> >+ <div class="inner"> >+ >+ <div class="placeholder"></div> >+ <div class="inner-fixed"></div> >+ </div> >+</div> >+<div class="scrollbar-hider"></div> >+ >+</body> >+</html> >diff --git a/LayoutTests/compositing/geometry/fixed-inside-overflow-scroll.html b/LayoutTests/compositing/geometry/fixed-inside-overflow-scroll.html >new file mode 100644 >index 0000000000000000000000000000000000000000..c8d3696d3b122c2d4128e9cf59e7f986ccd2ca74 >--- /dev/null >+++ b/LayoutTests/compositing/geometry/fixed-inside-overflow-scroll.html >@@ -0,0 +1,70 @@ >+<!DOCTYPE html> >+ >+<html> >+<head> >+ <style> >+ body { >+ margin: 0; >+ } >+ .container { >+ position: relative; >+ z-index: 0; >+ margin: 50px; >+ width: 400px; >+ height: 320px; >+ overflow-y: scroll; >+ border: 30px solid gray; >+ box-shadow: 0 0 10px transparent; >+ padding: 20px; >+ } >+ >+ .inner { >+ height: 1000px; >+ width: 100%; >+ background-color: silver; >+ } >+ >+ .inner-fixed { >+ position: fixed; >+ top: 150px; >+ left: 200px; >+ width: 200px; >+ height: 150px; >+ background-color: green; >+ box-shadow: 0 0 10px transparent; >+ } >+ >+ .placeholder { >+ background-color: red; >+ width: 200px; >+ height: 148px; >+ margin: 32px 100px; >+ } >+ >+ .scrollbar-hider { >+ position: absolute; >+ height: 380px; >+ width: 37px; >+ top: 70px; >+ left: 484px; >+ background-color: black; >+ } >+ </style> >+ <script> >+ if (window.internals) >+ window.internals.settings.setAsyncOverflowScrollingEnabled(true); >+ </script> >+</head> >+<body> >+ >+<div id="scroller" class="container"> >+ <div class="inner"> >+ >+ <div class="placeholder"></div> >+ <div class="inner-fixed"></div> >+ </div> >+</div> >+<div class="scrollbar-hider"></div> >+ >+</body> >+</html>
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:
koivisto
:
review+
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 193642
:
359667
|
359670
|
359692
|
359695
| 359737