Title: [248772] trunk
- Revision
- 248772
- Author
- an...@apple.com
- Date
- 2019-08-16 08:48:03 -0700 (Fri, 16 Aug 2019)
Log Message
Content in <iframe> should override "touch-action" set in embedding document
https://bugs.webkit.org/show_bug.cgi?id=200204
<rdar://problem/54355249>
Reviewed by Antoine Quint.
Source/WebCore:
Test: pointerevents/ios/touch-action-region-frame.html
Subframes where content doesn't use any touch-action properties won't generate event region for their main layer.
As a result the touch-action property gets computed in UI process to the parent frames touch-action (instead of 'auto').
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateEventRegion):
Generate event region for the main layer of subframes.
LayoutTests:
* pointerevents/ios/touch-action-region-frame-expected.txt: Added.
* pointerevents/ios/touch-action-region-frame.html: Added.
Modified Paths
Added Paths
Diff
Modified: trunk/LayoutTests/ChangeLog (248771 => 248772)
--- trunk/LayoutTests/ChangeLog 2019-08-16 15:04:39 UTC (rev 248771)
+++ trunk/LayoutTests/ChangeLog 2019-08-16 15:48:03 UTC (rev 248772)
@@ -1,3 +1,14 @@
+2019-08-16 Antti Koivisto <an...@apple.com>
+
+ Content in <iframe> should override "touch-action" set in embedding document
+ https://bugs.webkit.org/show_bug.cgi?id=200204
+ <rdar://problem/54355249>
+
+ Reviewed by Antoine Quint.
+
+ * pointerevents/ios/touch-action-region-frame-expected.txt: Added.
+ * pointerevents/ios/touch-action-region-frame.html: Added.
+
2019-08-16 Chris Lord <cl...@igalia.com>
Update WebGL test expectations for WebKit WPE
Added: trunk/LayoutTests/pointerevents/ios/touch-action-region-frame-expected.txt (0 => 248772)
--- trunk/LayoutTests/pointerevents/ios/touch-action-region-frame-expected.txt (rev 0)
+++ trunk/LayoutTests/pointerevents/ios/touch-action-region-frame-expected.txt 2019-08-16 15:48:03 UTC (rev 248772)
@@ -0,0 +1,43 @@
+
+(GraphicsLayer
+ (anchor 0.00 0.00)
+ (bounds 300.00 1016.00)
+ (children 1
+ (GraphicsLayer
+ (bounds 300.00 1016.00)
+ (drawsContent 1)
+ (event region
+ (rect (0,0) width=300 height=1016)
+ )
+ (children 1
+ (GraphicsLayer
+ )
+ )
+ )
+ )
+)
+(GraphicsLayer
+ (anchor 0.00 0.00)
+ (bounds 300.00 1016.00)
+ (children 1
+ (GraphicsLayer
+ (bounds 300.00 1016.00)
+ (drawsContent 1)
+ (event region
+ (rect (0,0) width=300 height=1016)
+ (touch-action
+ (manipulation
+ (rect (0,0) width=27 height=8)
+ (rect (0,8) width=292 height=11)
+ (rect (8,19) width=284 height=989)
+ )
+ )
+ )
+ (children 1
+ (GraphicsLayer
+ )
+ )
+ )
+ )
+)
+
Added: trunk/LayoutTests/pointerevents/ios/touch-action-region-frame.html (0 => 248772)
--- trunk/LayoutTests/pointerevents/ios/touch-action-region-frame.html (rev 0)
+++ trunk/LayoutTests/pointerevents/ios/touch-action-region-frame.html 2019-08-16 15:48:03 UTC (rev 248772)
@@ -0,0 +1,28 @@
+<!DOCTYPE html> <!-- webkit-test-runner [ internal:AsyncOverflowScrollingEnabled=true internal:AsyncFrameScrollingEnabled=true ] -->
+<html>
+<style>
+body { touch-action: none; }
+</style>
+<body _onload_="test()">
+<iframe srcdoc="<body style='height:1000px'>Test</body>"></iframe>
+<iframe srcdoc="<body style='height:1000px;touch-action:manipulation'>Test</body>"></iframe>
+
+<pre id="results"></pre>
+<script>
+if (window.testRunner) {
+ testRunner.dumpAsText();
+ testRunner.waitUntilDone();
+}
+
+function test() {
+ if (!window.internals)
+ return;
+ for (const frame of document.querySelectorAll("iframe")) {
+ const doc = frame.contentDocument;
+ results.innerText += internals.layerTreeAsText(doc, internals.LAYER_TREE_INCLUDES_EVENT_REGION | internals.LAYER_TREE_INCLUDES_ROOT_LAYER_PROPERTIES);
+ }
+ testRunner.notifyDone();
+}
+</script>
+</body>
+</html>
Modified: trunk/Source/WebCore/ChangeLog (248771 => 248772)
--- trunk/Source/WebCore/ChangeLog 2019-08-16 15:04:39 UTC (rev 248771)
+++ trunk/Source/WebCore/ChangeLog 2019-08-16 15:48:03 UTC (rev 248772)
@@ -1,3 +1,21 @@
+2019-08-16 Antti Koivisto <an...@apple.com>
+
+ Content in <iframe> should override "touch-action" set in embedding document
+ https://bugs.webkit.org/show_bug.cgi?id=200204
+ <rdar://problem/54355249>
+
+ Reviewed by Antoine Quint.
+
+ Test: pointerevents/ios/touch-action-region-frame.html
+
+ Subframes where content doesn't use any touch-action properties won't generate event region for their main layer.
+ As a result the touch-action property gets computed in UI process to the parent frames touch-action (instead of 'auto').
+
+ * rendering/RenderLayerBacking.cpp:
+ (WebCore::RenderLayerBacking::updateEventRegion):
+
+ Generate event region for the main layer of subframes.
+
2019-08-16 Miguel Gomez <mago...@igalia.com>
[GTK][WPE] Move TextureMapperAnimation to the nicosia namespace as Nicosia::Animation
Modified: trunk/Source/WebCore/rendering/RenderLayerBacking.cpp (248771 => 248772)
--- trunk/Source/WebCore/rendering/RenderLayerBacking.cpp 2019-08-16 15:04:39 UTC (rev 248771)
+++ trunk/Source/WebCore/rendering/RenderLayerBacking.cpp 2019-08-16 15:48:03 UTC (rev 248772)
@@ -1588,7 +1588,7 @@
#if ENABLE(POINTER_EVENTS)
hasTouchActionElements = renderer().document().mayHaveElementsWithNonAutoTouchAction();
#endif
- if (m_owningLayer.isRenderViewLayer() && !hasTouchActionElements)
+ if (m_isMainFrameRenderViewLayer && !hasTouchActionElements)
return;
GraphicsContext nullContext(nullptr);
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes