⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 248354 in webkit


Ignore:
Timestamp:
Aug 6, 2019, 11:52:50 PM (7 years ago)
Author:
Kocsen Chung
Message:

Cherry-pick r248015. rdar://problem/54017889

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.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@248015 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Location:
branches/safari-608.1-branch
Files:
2 added
3 edited

Legend:

Unmodified
Added
Removed
  • branches/safari-608.1-branch/LayoutTests/ChangeLog

    r248352 r248354  
     12019-08-06  Kocsen Chung  <kocsen_chung@apple.com>
     2
     3        Cherry-pick r248015. rdar://problem/54017889
     4
     5    Can't scroll on yummly.co.uk recipe (scale(0) div covers the content and hit-tests)
     6    https://bugs.webkit.org/show_bug.cgi?id=200263
     7    rdar://problem/53679408
     8   
     9    Reviewed by Antti Koivisto.
     10   
     11    Source/WebKit:
     12   
     13    The content on this page had a scale(0) div overlaying an overflow:scroll element,
     14    and our UI-side hit-testing code would find this scale(0) element, because apparently
     15    -[UIView convertPoint:fromView:] will happily work with non-invertible matrices, and
     16    -[UIView pointInside:withEvent:] just compares the point with the view bounds.
     17   
     18    Since the view frame takes the transform into account, we can look for an empty frame
     19    to detect these non-invertible transforms.
     20   
     21    * UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.mm:
     22    (WebKit::collectDescendantViewsAtPoint):
     23   
     24    LayoutTests:
     25   
     26    * fast/scrolling/ios/non-invertible-transformed-over-scroller-expected.txt: Added.
     27    * fast/scrolling/ios/non-invertible-transformed-over-scroller.html: Added.
     28   
     29    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@248015 268f45cc-cd09-0410-ab3c-d52691b4dbfc
     30
     31    2019-07-29  Simon Fraser  <simon.fraser@apple.com>
     32
     33            Can't scroll on yummly.co.uk recipe (scale(0) div covers the content and hit-tests)
     34            https://bugs.webkit.org/show_bug.cgi?id=200263
     35            rdar://problem/53679408
     36
     37            Reviewed by Antti Koivisto.
     38
     39            * fast/scrolling/ios/non-invertible-transformed-over-scroller-expected.txt: Added.
     40            * fast/scrolling/ios/non-invertible-transformed-over-scroller.html: Added.
     41
    1422019-08-06  Kocsen Chung  <kocsen_chung@apple.com>
    243
  • branches/safari-608.1-branch/Source/WebKit/ChangeLog

    r248353 r248354  
    112019-08-06  Kocsen Chung  <kocsen_chung@apple.com>
    22
    3         Cherry-pick r247920. rdar://problem/54017883
    4 
    5     Contextual menu does not present when holding an embedded photo but works with link and attachments
    6     https://bugs.webkit.org/show_bug.cgi?id=200239
    7     <rdar://problem/53318733>
    8    
    9     Reviewed by Tim Horton.
    10    
    11     If the user long-pressed on an image, and the client implemented the new API but did
    12     not provide a configuration, we were not falling back to the default behaviour of
    13     giving a menu allowing the user to copy/share/save the image.
    14    
    15     * UIProcess/ios/WKContentViewInteraction.mm:
    16     (-[WKContentView continueContextMenuInteraction:]): If we get through the delegates,
    17     and the element is an image, return the default configuration.
    18    
    19     git-svn-id: https://svn.webkit.org/repository/webkit/trunk@247920 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    20 
    21     2019-07-29  Dean Jackson  <dino@apple.com>
    22 
    23             Contextual menu does not present when holding an embedded photo but works with link and attachments
    24             https://bugs.webkit.org/show_bug.cgi?id=200239
    25             <rdar://problem/53318733>
    26 
    27             Reviewed by Tim Horton.
    28 
    29             If the user long-pressed on an image, and the client implemented the new API but did
    30             not provide a configuration, we were not falling back to the default behaviour of
    31             giving a menu allowing the user to copy/share/save the image.
    32 
    33             * UIProcess/ios/WKContentViewInteraction.mm:
    34             (-[WKContentView continueContextMenuInteraction:]): If we get through the delegates,
    35             and the element is an image, return the default configuration.
     3        Cherry-pick r248015. rdar://problem/54017889
     4
     5    Can't scroll on yummly.co.uk recipe (scale(0) div covers the content and hit-tests)
     6    https://bugs.webkit.org/show_bug.cgi?id=200263
     7    rdar://problem/53679408
     8   
     9    Reviewed by Antti Koivisto.
     10   
     11    Source/WebKit:
     12   
     13    The content on this page had a scale(0) div overlaying an overflow:scroll element,
     14    and our UI-side hit-testing code would find this scale(0) element, because apparently
     15    -[UIView convertPoint:fromView:] will happily work with non-invertible matrices, and
     16    -[UIView pointInside:withEvent:] just compares the point with the view bounds.
     17   
     18    Since the view frame takes the transform into account, we can look for an empty frame
     19    to detect these non-invertible transforms.
     20   
     21    * UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.mm:
     22    (WebKit::collectDescendantViewsAtPoint):
     23   
     24    LayoutTests:
     25   
     26    * fast/scrolling/ios/non-invertible-transformed-over-scroller-expected.txt: Added.
     27    * fast/scrolling/ios/non-invertible-transformed-over-scroller.html: Added.
     28   
     29    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@248015 268f45cc-cd09-0410-ab3c-d52691b4dbfc
     30
     31    2019-08-06  Kocsen Chung  <kocsen_chung@apple.com>
     32
     33            Cherry-pick r247920. rdar://problem/54017883
     34
     35        Contextual menu does not present when holding an embedded photo but works with link and attachments
     36        https://bugs.webkit.org/show_bug.cgi?id=200239
     37        <rdar://problem/53318733>
     38
     39        Reviewed by Tim Horton.
     40
     41        If the user long-pressed on an image, and the client implemented the new API but did
     42        not provide a configuration, we were not falling back to the default behaviour of
     43        giving a menu allowing the user to copy/share/save the image.
     44
     45        * UIProcess/ios/WKContentViewInteraction.mm:
     46        (-[WKContentView continueContextMenuInteraction:]): If we get through the delegates,
     47        and the element is an image, return the default configuration.
     48
     49        git-svn-id: https://svn.webkit.org/repository/webkit/trunk@247920 268f45cc-cd09-0410-ab3c-d52691b4dbfc
     50
     51        2019-07-29  Dean Jackson  <dino@apple.com>
     52
     53                Contextual menu does not present when holding an embedded photo but works with link and attachments
     54                https://bugs.webkit.org/show_bug.cgi?id=200239
     55                <rdar://problem/53318733>
     56
     57                Reviewed by Tim Horton.
     58
     59                If the user long-pressed on an image, and the client implemented the new API but did
     60                not provide a configuration, we were not falling back to the default behaviour of
     61                giving a menu allowing the user to copy/share/save the image.
     62
     63                * UIProcess/ios/WKContentViewInteraction.mm:
     64                (-[WKContentView continueContextMenuInteraction:]): If we get through the delegates,
     65                and the element is an image, return the default configuration.
    3666
    37672019-08-06  Kocsen Chung  <kocsen_chung@apple.com>
     
    319349            on those synchronous IPCs. It is safe to re-enter the WebContent process on these sync IPCs
    320350            since they are triggered by JS and we return to JS right after. This should avoid UIProcess
     3512019-07-29  Simon Fraser  <simon.fraser@apple.com>
     352
     353        Can't scroll on yummly.co.uk recipe (scale(0) div covers the content and hit-tests)
     354        https://bugs.webkit.org/show_bug.cgi?id=200263
     355        rdar://problem/53679408
     356
     357        Reviewed by Antti Koivisto.
     358
     359        The content on this page had a scale(0) div overlaying an overflow:scroll element,
     360        and our UI-side hit-testing code would find this scale(0) element, because apparently
     361        -[UIView convertPoint:fromView:] will happily work with non-invertible matrices, and
     362        -[UIView pointInside:withEvent:] just compares the point with the view bounds.
     363
     364        Since the view frame takes the transform into account, we can look for an empty frame
     365        to detect these non-invertible transforms.
     366
     367        * UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.mm:
     368        (WebKit::collectDescendantViewsAtPoint):
     369
    321370            hangs when the UIProcess is sending a sync IPC to the WebContent process, which is itself
    322371            stuck on the sync IPC to show a JS alert.
  • branches/safari-608.1-branch/Source/WebKit/UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.mm

    r247618 r248354  
    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.