WebKit Bugzilla
Attachment 373453 Details for
Bug 199464
: Some layers inside overflow:scroll don't move back to correct positions when the contents are shrunk
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-199464-20190703215706.patch (text/plain), 5.34 KB, created by
Simon Fraser (smfr)
on 2019-07-03 21:57:07 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Simon Fraser (smfr)
Created:
2019-07-03 21:57:07 PDT
Size:
5.34 KB
patch
obsolete
>Subversion Revision: 247134 >diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index 07cd6ac5cbeb6bd3bc7f3289a272d6dfed27db49..2880f71ab73a88b70e3615a02fd036bbd90fea25 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,20 @@ >+2019-07-03 Simon Fraser <simon.fraser@apple.com> >+ >+ Some layers inside overflow:scroll move back to correct positions when the contents are shrunk >+ https://bugs.webkit.org/show_bug.cgi?id=199464 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ When an overflow scroller's content shrink and it becomes non-scrollable, the 'boundsOrigin' in >+ the ancestor clipping stacks of related layers wouldn't get reset to zero, leaving layers in >+ the wrong place, so always set boundsOrigin to zero on the clipping layers of non-overflow entries >+ in the ancestor clipping stack. >+ >+ Test: compositing/scrolling/async-overflow-scrolling/become-non-scrollable-with-child.html >+ >+ * rendering/RenderLayerBacking.cpp: >+ (WebCore::RenderLayerBacking::updateGeometry): >+ > 2019-07-03 Eric Carlson <eric.carlson@apple.com> > > [MSE] Add more debug and error logging >diff --git a/Source/WebCore/rendering/RenderLayerBacking.cpp b/Source/WebCore/rendering/RenderLayerBacking.cpp >index c00696ec7d80649635568a04cc8811a03b2973be..1b7f4bb3ad1799c04099196a608db6fdb3c86de4 100644 >--- a/Source/WebCore/rendering/RenderLayerBacking.cpp >+++ b/Source/WebCore/rendering/RenderLayerBacking.cpp >@@ -1109,7 +1109,8 @@ void RenderLayerBacking::updateGeometry() > > entry.clippingLayer->setBoundsOrigin(scrollOffset); > lastClipLayerRect.moveBy(-scrollOffset); >- } >+ } else >+ entry.clippingLayer->setBoundsOrigin({ }); > } > > parentGraphicsLayerRect = lastClipLayerRect; >diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog >index a88e8cc5a7d8a1c1e8a1acf98a634f7cf0298321..cef9f9815aef8f1c85d3045919c97be356ce6c9f 100644 >--- a/LayoutTests/ChangeLog >+++ b/LayoutTests/ChangeLog >@@ -1,3 +1,13 @@ >+2019-07-03 Simon Fraser <simon.fraser@apple.com> >+ >+ Some layers inside overflow:scroll move back to correct positions when the contents are shrunk >+ https://bugs.webkit.org/show_bug.cgi?id=199464 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * compositing/scrolling/async-overflow-scrolling/become-non-scrollable-with-child-expected.html: Added. >+ * compositing/scrolling/async-overflow-scrolling/become-non-scrollable-with-child.html: Added. >+ > 2019-07-03 Justin Fan <justin_fan@apple.com> > > [WHLSL] Support float4x4 in test harness >diff --git a/LayoutTests/compositing/scrolling/async-overflow-scrolling/become-non-scrollable-with-child-expected.html b/LayoutTests/compositing/scrolling/async-overflow-scrolling/become-non-scrollable-with-child-expected.html >new file mode 100644 >index 0000000000000000000000000000000000000000..aef2d048a4b5154c3f4ff6d242e164ab49a22c3a >--- /dev/null >+++ b/LayoutTests/compositing/scrolling/async-overflow-scrolling/become-non-scrollable-with-child-expected.html >@@ -0,0 +1,31 @@ >+<!DOCTYPE html> <!-- webkit-test-runner [ internal:AsyncOverflowScrollingEnabled=true ] --> >+<html> >+<head> >+ <style> >+ #scroller { >+ overflow: scroll; >+ height: 400px; >+ width: 400px; >+ border: 1px solid black; >+ } >+ >+ .composited { >+ width: 200px; >+ height: 200px; >+ background-color: green; >+ transform: translateZ(0); >+ } >+ >+ .content { >+ height: 100px; >+ } >+ </style> >+</head> >+<body> >+ <section id="scroller"> >+ <div class="composited"></div> >+ <div class="content"></div> >+ </section> >+</body> >+</html> >+ >diff --git a/LayoutTests/compositing/scrolling/async-overflow-scrolling/become-non-scrollable-with-child.html b/LayoutTests/compositing/scrolling/async-overflow-scrolling/become-non-scrollable-with-child.html >new file mode 100644 >index 0000000000000000000000000000000000000000..604b512fab5e02d968833b0789be471eb97d7b2f >--- /dev/null >+++ b/LayoutTests/compositing/scrolling/async-overflow-scrolling/become-non-scrollable-with-child.html >@@ -0,0 +1,48 @@ >+<!DOCTYPE html> <!-- webkit-test-runner [ internal:AsyncOverflowScrollingEnabled=true ] --> >+<html> >+<head> >+ <style> >+ #scroller { >+ overflow: scroll; >+ height: 400px; >+ width: 400px; >+ border: 1px solid black; >+ } >+ >+ .composited { >+ width: 200px; >+ height: 200px; >+ background-color: green; >+ transform: translateZ(0); >+ } >+ >+ .content { >+ height: 700px; >+ } >+ >+ .content.changed { >+ height: 100px; >+ } >+ </style> >+ <script> >+ if (window.testRunner) >+ testRunner.waitUntilDone(); >+ >+ window.addEventListener('load', () => { >+ scroller.scrollTo(0, 100); >+ setTimeout(() => { >+ document.querySelector('.content').classList.add('changed'); >+ if (window.testRunner) >+ testRunner.notifyDone(); >+ }, 0); >+ }, false); >+ </script> >+</head> >+<body> >+ <section id="scroller"> >+ <div class="composited"></div> >+ <div class="content"></div> >+ </section> >+</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:
sam
:
review+
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 199464
:
373416
| 373453