Title: [273392] branches/safari-611-branch
- Revision
- 273392
- Author
- repst...@apple.com
- Date
- 2021-02-24 09:10:16 -0800 (Wed, 24 Feb 2021)
Log Message
Cherry-pick r273129. rdar://problem/74623422
Scrolling on https://www.apple.com/ipad-air/ can jitter on certain sections
https://bugs.webkit.org/show_bug.cgi?id=222136
rdar://71881767
Reviewed by Zalan Bujtas.
Source/WebCore:
On macOS computers with 16MB of memory, https://www.apple.com/ipad-air/ can trigger the
"conservative" compositing mode where RenderLayerCompositor tries to reduce the number of
composited layers.
On this particular page, a "will-change: transform" element with an overflow:hidden ancestor
triggers some bad compositing bounds geometry computation (webkit.org/b/222092,
webkit.org/b/222124) which has the end result of changing the composited bounds of the
"position:sticky" layer on every scroll. This results in layer contents temporarily
appearing stretched or in the wrong place (webkit.org/b/222132).
For now, do a conservative fix to avoid this problem, which is to continue to allow
"will-change: transform" to trigger compositing on macOS in conservative mode. This
actually reduces memory use on this page, because webkit.org/b/222092 was triggering
excessively large backing store.
Tested by compositing/layer-creation/compositing-policy.html
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::requiresCompositingForWillChange const):
LayoutTests:
* platform/mac/compositing/layer-creation/compositing-policy-expected.txt: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@273129 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Modified Paths
Added Paths
Diff
Modified: branches/safari-611-branch/LayoutTests/ChangeLog (273391 => 273392)
--- branches/safari-611-branch/LayoutTests/ChangeLog 2021-02-24 17:10:12 UTC (rev 273391)
+++ branches/safari-611-branch/LayoutTests/ChangeLog 2021-02-24 17:10:16 UTC (rev 273392)
@@ -1,3 +1,52 @@
+2021-02-23 Alan Coon <alanc...@apple.com>
+
+ Cherry-pick r273129. rdar://problem/74623422
+
+ Scrolling on https://www.apple.com/ipad-air/ can jitter on certain sections
+ https://bugs.webkit.org/show_bug.cgi?id=222136
+ rdar://71881767
+
+ Reviewed by Zalan Bujtas.
+
+ Source/WebCore:
+
+ On macOS computers with 16MB of memory, https://www.apple.com/ipad-air/ can trigger the
+ "conservative" compositing mode where RenderLayerCompositor tries to reduce the number of
+ composited layers.
+
+ On this particular page, a "will-change: transform" element with an overflow:hidden ancestor
+ triggers some bad compositing bounds geometry computation (webkit.org/b/222092,
+ webkit.org/b/222124) which has the end result of changing the composited bounds of the
+ "position:sticky" layer on every scroll. This results in layer contents temporarily
+ appearing stretched or in the wrong place (webkit.org/b/222132).
+
+ For now, do a conservative fix to avoid this problem, which is to continue to allow
+ "will-change: transform" to trigger compositing on macOS in conservative mode. This
+ actually reduces memory use on this page, because webkit.org/b/222092 was triggering
+ excessively large backing store.
+
+ Tested by compositing/layer-creation/compositing-policy.html
+
+ * rendering/RenderLayerCompositor.cpp:
+ (WebCore::RenderLayerCompositor::requiresCompositingForWillChange const):
+
+ LayoutTests:
+
+ * platform/mac/compositing/layer-creation/compositing-policy-expected.txt: Added.
+
+
+ git-svn-id: https://svn.webkit.org/repository/webkit/trunk@273129 268f45cc-cd09-0410-ab3c-d52691b4dbfc
+
+ 2021-02-18 Simon Fraser <simon.fra...@apple.com>
+
+ Scrolling on https://www.apple.com/ipad-air/ can jitter on certain sections
+ https://bugs.webkit.org/show_bug.cgi?id=222136
+ rdar://71881767
+
+ Reviewed by Zalan Bujtas.
+
+ * platform/mac/compositing/layer-creation/compositing-policy-expected.txt: Added.
+
2021-02-17 Ruben Turcios <rubent...@apple.com>
Cherry-pick r272626. rdar://problem/74410222
Added: branches/safari-611-branch/LayoutTests/platform/mac/compositing/layer-creation/compositing-policy-expected.txt (0 => 273392)
--- branches/safari-611-branch/LayoutTests/platform/mac/compositing/layer-creation/compositing-policy-expected.txt (rev 0)
+++ branches/safari-611-branch/LayoutTests/platform/mac/compositing/layer-creation/compositing-policy-expected.txt 2021-02-24 17:10:16 UTC (rev 273392)
@@ -0,0 +1,34 @@
+transform: translate3d(10px, 1px, 1px)
+Has backing under low memory.
+transform: translateZ(0)
+translateZ(0): No backing under low memory.
+transform: translate3d(10px, 1px, 0)
+No backing under low memory.
+will-change: transform
+No backing under low memory.
+ (GraphicsLayer
+ (anchor 0.00 0.00)
+ (bounds 800.00 1018.00)
+ (children 1
+ (GraphicsLayer
+ (bounds 800.00 1018.00)
+ (contentsOpaque 1)
+ (children 2
+ (GraphicsLayer
+ (position 18.00 10.00)
+ (bounds 308.00 108.00)
+ (contentsOpaque 1)
+ (drawsContent 1)
+ (transform [1.00 0.00 0.00 0.00] [0.00 1.00 0.00 0.00] [0.00 0.00 1.00 0.00] [10.00 1.00 1.00 1.00])
+ )
+ (GraphicsLayer
+ (position 18.00 364.00)
+ (bounds 308.00 108.00)
+ (contentsOpaque 1)
+ (drawsContent 1)
+ )
+ )
+ )
+ )
+)
+
Modified: branches/safari-611-branch/Source/WebCore/ChangeLog (273391 => 273392)
--- branches/safari-611-branch/Source/WebCore/ChangeLog 2021-02-24 17:10:12 UTC (rev 273391)
+++ branches/safari-611-branch/Source/WebCore/ChangeLog 2021-02-24 17:10:16 UTC (rev 273392)
@@ -1,5 +1,72 @@
2021-02-23 Alan Coon <alanc...@apple.com>
+ Cherry-pick r273129. rdar://problem/74623422
+
+ Scrolling on https://www.apple.com/ipad-air/ can jitter on certain sections
+ https://bugs.webkit.org/show_bug.cgi?id=222136
+ rdar://71881767
+
+ Reviewed by Zalan Bujtas.
+
+ Source/WebCore:
+
+ On macOS computers with 16MB of memory, https://www.apple.com/ipad-air/ can trigger the
+ "conservative" compositing mode where RenderLayerCompositor tries to reduce the number of
+ composited layers.
+
+ On this particular page, a "will-change: transform" element with an overflow:hidden ancestor
+ triggers some bad compositing bounds geometry computation (webkit.org/b/222092,
+ webkit.org/b/222124) which has the end result of changing the composited bounds of the
+ "position:sticky" layer on every scroll. This results in layer contents temporarily
+ appearing stretched or in the wrong place (webkit.org/b/222132).
+
+ For now, do a conservative fix to avoid this problem, which is to continue to allow
+ "will-change: transform" to trigger compositing on macOS in conservative mode. This
+ actually reduces memory use on this page, because webkit.org/b/222092 was triggering
+ excessively large backing store.
+
+ Tested by compositing/layer-creation/compositing-policy.html
+
+ * rendering/RenderLayerCompositor.cpp:
+ (WebCore::RenderLayerCompositor::requiresCompositingForWillChange const):
+
+ LayoutTests:
+
+ * platform/mac/compositing/layer-creation/compositing-policy-expected.txt: Added.
+
+
+ git-svn-id: https://svn.webkit.org/repository/webkit/trunk@273129 268f45cc-cd09-0410-ab3c-d52691b4dbfc
+
+ 2021-02-18 Simon Fraser <simon.fra...@apple.com>
+
+ Scrolling on https://www.apple.com/ipad-air/ can jitter on certain sections
+ https://bugs.webkit.org/show_bug.cgi?id=222136
+ rdar://71881767
+
+ Reviewed by Zalan Bujtas.
+
+ On macOS computers with 16MB of memory, https://www.apple.com/ipad-air/ can trigger the
+ "conservative" compositing mode where RenderLayerCompositor tries to reduce the number of
+ composited layers.
+
+ On this particular page, a "will-change: transform" element with an overflow:hidden ancestor
+ triggers some bad compositing bounds geometry computation (webkit.org/b/222092,
+ webkit.org/b/222124) which has the end result of changing the composited bounds of the
+ "position:sticky" layer on every scroll. This results in layer contents temporarily
+ appearing stretched or in the wrong place (webkit.org/b/222132).
+
+ For now, do a conservative fix to avoid this problem, which is to continue to allow
+ "will-change: transform" to trigger compositing on macOS in conservative mode. This
+ actually reduces memory use on this page, because webkit.org/b/222092 was triggering
+ excessively large backing store.
+
+ Tested by compositing/layer-creation/compositing-policy.html
+
+ * rendering/RenderLayerCompositor.cpp:
+ (WebCore::RenderLayerCompositor::requiresCompositingForWillChange const):
+
+2021-02-23 Alan Coon <alanc...@apple.com>
+
Cherry-pick r272358. rdar://problem/74622890
Avoid an ancestor walk in HTMLFormControlElement::computeWillValidate()
Modified: branches/safari-611-branch/Source/WebCore/rendering/RenderLayerCompositor.cpp (273391 => 273392)
--- branches/safari-611-branch/Source/WebCore/rendering/RenderLayerCompositor.cpp 2021-02-24 17:10:12 UTC (rev 273391)
+++ branches/safari-611-branch/Source/WebCore/rendering/RenderLayerCompositor.cpp 2021-02-24 17:10:16 UTC (rev 273392)
@@ -3111,8 +3111,11 @@
return false;
#endif
+#if !PLATFORM(MAC)
+ // Ugly workaround for rdar://71881767. Undo when webkit.org/b/222092 and webkit.org/b/222132 are fixed.
if (m_compositingPolicy == CompositingPolicy::Conservative)
return false;
+#endif
if (is<RenderBox>(renderer))
return true;
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes