WebKit Bugzilla
Attachment 371841 Details for
Bug 198753
: REGRESSION (iOS): Can't scroll litter-robot.com checkout form's dropdown menus
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
patch
user-interaction-overlap.patch (text/plain), 5.91 KB, created by
Antti Koivisto
on 2019-06-11 07:00:15 PDT
(
hide
)
Description:
patch
Filename:
MIME Type:
Creator:
Antti Koivisto
Created:
2019-06-11 07:00:15 PDT
Size:
5.91 KB
patch
obsolete
>Index: Source/WebKit/ChangeLog >=================================================================== >--- Source/WebKit/ChangeLog (revision 246310) >+++ Source/WebKit/ChangeLog (working copy) >@@ -1,3 +1,24 @@ >+2019-06-11 Antti Koivisto <antti@apple.com> >+ >+ REGRESSION (iOS): Can't scroll litter-robot.com checkout form's dropdown menus >+ https://bugs.webkit.org/show_bug.cgi?id=198753 >+ <rdar://problem/51355686> >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ If an element with 'overflow:scroll' also had 'visibility:hidden' or 'pointer-events:none' it would >+ capture touches and prevent scrolling of any overlapped scrollers. >+ >+ * UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.mm: >+ (WebKit::collectDescendantViewsAtPoint): >+ >+ Filter out views with 'isUserInteractionEnabled == NO' (set for hidden and pointer-events:none layers). >+ This prevents it being considered as the first view hit when determining scrolling relationships. >+ >+ (-[UIView _web_findDescendantViewAtPoint:withEvent:]): >+ >+ No need to skip here anymore. >+ > 2019-06-11 Carlos Garcia Campos <cgarcia@igalia.com> > > [GTK] Remove option REDIRECTED_XCOMPOSITE_WINDOW >Index: Source/WebKit/UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.mm >=================================================================== >--- Source/WebKit/UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.mm (revision 246303) >+++ Source/WebKit/UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.mm (working copy) >@@ -47,6 +47,10 @@ static void collectDescendantViewsAtPoin > CGPoint subviewPoint = [view convertPoint:point fromView:parent]; > > auto handlesEvent = [&] { >+ // FIXME: isUserInteractionEnabled is mostly redundant with event regions for web content layers. >+ // It is currently only needed for scroll views. >+ if (!view.isUserInteractionEnabled) >+ return false; > if (![view pointInside:subviewPoint withEvent:event]) > return false; > if (![view isKindOfClass:[WKCompositingView class]]) >@@ -133,9 +137,6 @@ - (UIView *)_web_findDescendantViewAtPoi > WebKit::collectDescendantViewsAtPoint(viewsAtPoint, self, point, event); > > for (auto *view : WTF::makeReversedRange(viewsAtPoint)) { >- if (!view.isUserInteractionEnabled) >- continue; >- > if ([view conformsToProtocol:@protocol(WKNativelyInteractible)]) { > CGPoint subviewPoint = [view convertPoint:point fromView:self]; > return [view hitTest:subviewPoint withEvent:event]; >Index: LayoutTests/ChangeLog >=================================================================== >--- LayoutTests/ChangeLog (revision 246303) >+++ LayoutTests/ChangeLog (working copy) >@@ -1,3 +1,14 @@ >+2019-06-11 Antti Koivisto <antti@apple.com> >+ >+ REGRESSION (iOS): Can't scroll litter-robot.com checkout form's dropdown menus >+ https://bugs.webkit.org/show_bug.cgi?id=198753 >+ <rdar://problem/51355686> >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * fast/scrolling/ios/overflow-scroll-user-interaction-disabled-expected.txt: Added. >+ * fast/scrolling/ios/overflow-scroll-user-interaction-disabled.html: Added. >+ > 2019-06-10 Daniel Bates <dabates@apple.com> > > [CSP] Blob URLs should inherit their CSP policy >Index: LayoutTests/fast/scrolling/ios/overflow-scroll-user-interaction-disabled-expected.txt >=================================================================== >--- LayoutTests/fast/scrolling/ios/overflow-scroll-user-interaction-disabled-expected.txt (nonexistent) >+++ LayoutTests/fast/scrolling/ios/overflow-scroll-user-interaction-disabled-expected.txt (working copy) >@@ -0,0 +1,5 @@ >+Test that a 'visibility:hidden' or 'pointer-events:none' scroll layer does not block scrolling of overlapped scrollers. >+ >+case 1: Scrollable 1 >+case 2: Scrollable 3 >+ >Index: LayoutTests/fast/scrolling/ios/overflow-scroll-user-interaction-disabled.html >=================================================================== >--- LayoutTests/fast/scrolling/ios/overflow-scroll-user-interaction-disabled.html (nonexistent) >+++ LayoutTests/fast/scrolling/ios/overflow-scroll-user-interaction-disabled.html (working copy) >@@ -0,0 +1,74 @@ >+<!DOCTYPE html> <!-- webkit-test-runner [ internal:AsyncOverflowScrollingEnabled=true ] --> >+<html> >+<head> >+<meta name="viewport" content="width=device-width, initial-scale=1"> >+<script src="../../../resources/ui-helper.js"></script> >+<script src="../resources/overflow-scroll-overlap.js"></script> >+<style> >+.case { >+ width: 150px; >+ height: 150px; >+ display: inline-block; >+ position: relative; >+} >+.scrollcontent { >+ width: 500px; >+ height: 500px; >+ background: green; >+} >+ >+.overflowscroll { >+ overflow: scroll; >+ height: 100px; >+ width: 100px; >+ position: absolute; >+ border: 2px solid black; >+} >+.overlapping { >+ position:absolute; >+ left: 25px; >+ top: 25px; >+ width: 100px; >+ height: 100px; >+ background: red; >+} >+.clip { >+ position:absolute; >+ width: 100px; >+ height: 100px; >+ overflow:hidden; >+} >+.large { >+ width: 3000px; >+ height: 150px; >+} >+#log { >+ position:relative; >+ white-space: pre; >+} >+</style> >+</head> >+<body onload="runTest()"> >+<p> >+Test that a 'visibility:hidden' or 'pointer-events:none' scroll layer does not block scrolling of overlapped scrollers. >+</p> >+<div class="case"> >+ <div class="overflowscroll target" style="z-index:0"> >+ <div class="scrollcontent"></div> >+ </div> >+ <div class="overflowscroll overlapping" style="pointer-events:none"> >+ <div class="scrollcontent"></div> >+ </div> >+</div> >+<div class="case"> >+ <div class="overflowscroll target" style="z-index:0"> >+ <div class="scrollcontent"></div> >+ </div> >+ <div class="overflowscroll overlapping" style="visibility:hidden"> >+ <div class="scrollcontent"></div> >+ </div> >+</div> >+<div id=log></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
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 198753
: 371841