Changeset 248015 in webkit


Ignore:
Timestamp:
Jul 30, 2019 1:21:25 PM (5 years ago)
Author:
Simon Fraser
Message:

Can't scroll on yummly.co.uk recipe (scale(0) div covers the content and hit-tests)
https://bugs.webkit.org/show_bug.cgi?id=200263
rdar://problem/53679408

Reviewed by Antti Koivisto.

Source/WebKit:

The content on this page had a scale(0) div overlaying an overflow:scroll element,
and our UI-side hit-testing code would find this scale(0) element, because apparently
-[UIView convertPoint:fromView:] will happily work with non-invertible matrices, and
-[UIView pointInside:withEvent:] just compares the point with the view bounds.

Since the view frame takes the transform into account, we can look for an empty frame
to detect these non-invertible transforms.

  • UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.mm:

(WebKit::collectDescendantViewsAtPoint):

LayoutTests:

  • fast/scrolling/ios/non-invertible-transformed-over-scroller-expected.txt: Added.
  • fast/scrolling/ios/non-invertible-transformed-over-scroller.html: Added.
Location:
trunk
Files:
2 added
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r248011 r248015  
    119119        * compositing/shared-backing/backing-sharing-repaint-expected.html: Added.
    120120        * compositing/shared-backing/backing-sharing-repaint.html: Added.
     121
     1222019-07-29  Simon Fraser  <simon.fraser@apple.com>
     123
     124        Can't scroll on yummly.co.uk recipe (scale(0) div covers the content and hit-tests)
     125        https://bugs.webkit.org/show_bug.cgi?id=200263
     126        rdar://problem/53679408
     127
     128        Reviewed by Antti Koivisto.
     129
     130        * fast/scrolling/ios/non-invertible-transformed-over-scroller-expected.txt: Added.
     131        * fast/scrolling/ios/non-invertible-transformed-over-scroller.html: Added.
    121132
    1221332019-07-29  Simon Fraser  <simon.fraser@apple.com>
  • trunk/Source/WebKit/ChangeLog

    r248014 r248015  
    318318        context to ensure that the completion handler for the nested request is invoked before the outer request is
    319319        finished.
     320
     3212019-07-29  Simon Fraser  <simon.fraser@apple.com>
     322
     323        Can't scroll on yummly.co.uk recipe (scale(0) div covers the content and hit-tests)
     324        https://bugs.webkit.org/show_bug.cgi?id=200263
     325        rdar://problem/53679408
     326
     327        Reviewed by Antti Koivisto.
     328
     329        The content on this page had a scale(0) div overlaying an overflow:scroll element,
     330        and our UI-side hit-testing code would find this scale(0) element, because apparently
     331        -[UIView convertPoint:fromView:] will happily work with non-invertible matrices, and
     332        -[UIView pointInside:withEvent:] just compares the point with the view bounds.
     333
     334        Since the view frame takes the transform into account, we can look for an empty frame
     335        to detect these non-invertible transforms.
     336
     337        * UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.mm:
     338        (WebKit::collectDescendantViewsAtPoint):
    320339
    3213402019-07-29  Youenn Fablet  <youenn@apple.com>
  • trunk/Source/WebKit/UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.mm

    r247557 r248015  
    5353            if (!view.isUserInteractionEnabled)
    5454                return false;
     55
     56            if (CGRectIsEmpty([view frame]))
     57                return false;
     58
    5559            if (![view pointInside:subviewPoint withEvent:event])
    5660                return false;
     61
    5762            if (![view isKindOfClass:[WKCompositingView class]])
    5863                return true;
Note: See TracChangeset for help on using the changeset viewer.