The code we currently use to gather regions for elements with touch-action set on them is very basic and does not account for any element that might overlap it. For instance, having "touch-action: none" on an element and having another element overlap in a different hierarchy means the other element is also treated to have "touch-action: none".
<rdar://problem/48194708>
Created attachment 366929 [details] wip
Created attachment 366932 [details] wip
Moved the part that computes the touch actions from remote layer tree to bug 196701 for review.
Found an issue where elements with "display: inline-block" don't have a touch-action region, see https://bugs.webkit.org/show_bug.cgi?id=197281.
Created attachment 369410 [details] Patch
Comment on attachment 369410 [details] Patch Attachment 369410 [details] did not pass win-ews (win): Output: https://webkit-queues.webkit.org/results/12136954 New failing tests: security/contentSecurityPolicy/video-with-file-url-allowed-by-media-src-star.html legacy-animation-engine/compositing/reflections/load-video-in-reflection.html
Created attachment 369438 [details] Archive of layout-test-results from ews213 for win-future The attached test failures were seen while running run-webkit-tests on the win-ews. Bot: ews213 Port: win-future Platform: CYGWIN_NT-10.0-17763-3.0.5-338.x86_64-x86_64-64bit
Comment on attachment 369410 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=369410&action=review r=me > Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:1342 > + if (!touchActions.contains(WebCore::TouchAction::PinchZoom)) > + _webView.scrollView.pinchGestureRecognizer.enabled = NO; Where does this thing get reset?
(In reply to Antti Koivisto from comment #9) > Comment on attachment 369410 [details] > Patch > > View in context: > https://bugs.webkit.org/attachment.cgi?id=369410&action=review > > r=me > > > Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:1342 > > + if (!touchActions.contains(WebCore::TouchAction::PinchZoom)) > > + _webView.scrollView.pinchGestureRecognizer.enabled = NO; > > Where does this thing get reset? I'm not actually sure, but testing indicates that the value is reset as expected. Maybe UIKit performs that reset internally, I couldn't find any code in WebKit that would do this.
Committed r245112: <https://trac.webkit.org/changeset/245112>