Changeset 256513 in webkit


Ignore:
Timestamp:
Feb 13, 2020 9:20:42 AM (4 years ago)
Author:
Simon Fraser
Message:

REGRESSION (r255037): Zooming in and out on Quip in macOS Safari can cause the content to be offset to the side
https://bugs.webkit.org/show_bug.cgi?id=207674
rdar://problem/59404866

Reviewed by Antti Koivisto.

Source/WebCore:

Remove the early return in ScrollingStateScrollingNode::setRequestedScrollData(); comparing
with the last m_requestedScrollData is wrong, because requested scroll positions are not "state"
in the scrolling tree, they are requests to scroll. Ideally, they would be represented in some
different way in the scrolling tree.

Test: fast/scrolling/programmatic-scroll-to-zero-zero.html

  • page/scrolling/ScrollingStateScrollingNode.cpp:

(WebCore::ScrollingStateScrollingNode::setRequestedScrollData):

LayoutTests:

Test that does a programmatic scroll to 0,0, does a user scroll, then a second programmatic scroll to 0,0,
which is expected to work.

  • fast/scrolling/programmatic-scroll-to-zero-zero-expected.html: Added.
  • fast/scrolling/programmatic-scroll-to-zero-zero.html: Added.
  • platform/ios/TestExpectations: Skip the new test on iOS (it relies on eventSender) and sort the grouping.
Location:
trunk
Files:
2 added
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r256512 r256513  
     12020-02-13  Simon Fraser  <simon.fraser@apple.com>
     2
     3        REGRESSION (r255037): Zooming in and out on Quip in macOS Safari can cause the content to be offset to the side
     4        https://bugs.webkit.org/show_bug.cgi?id=207674
     5        rdar://problem/59404866
     6
     7        Reviewed by Antti Koivisto.
     8       
     9        Test that does a programmatic scroll to 0,0, does a user scroll, then a second programmatic scroll to 0,0,
     10        which is expected to work.
     11
     12        * fast/scrolling/programmatic-scroll-to-zero-zero-expected.html: Added.
     13        * fast/scrolling/programmatic-scroll-to-zero-zero.html: Added.
     14        * platform/ios/TestExpectations: Skip the new test on iOS (it relies on eventSender) and sort the grouping.
     15
    1162020-02-13  Said Abou-Hallawa  <said@apple.com>
    217
  • trunk/LayoutTests/platform/ios/TestExpectations

    r256477 r256513  
    7070
    7171# No wheel events on iOS
    72 fast/scrolling/iframe-scrollable-after-back.html [ Skip ]
    73 fast/scrolling/overflow-scrollable-after-back.html [ Skip ]
    74 fast/events/wheel-event-destroys-frame.html [ Skip ]
    75 fast/events/wheel-event-destroys-overflow.html [ Skip ]
    76 fast/events/wheel-event-outside-body.html [ Skip ]
    77 fast/scrolling/scroll-container-horizontally.html [ Failure ]
    78 fast/events/wheelevent-basic.html [ Skip ]
    79 fast/events/wheelevent-direction-inverted-from-device.html [ Skip ]
    80 fast/events/wheelevent-in-horizontal-scrollbar-in-rtl.html [ Skip ]
    81 fast/events/wheelevent-in-vertical-scrollbar-in-rtl.html [ Skip ]
    82 fast/events/wheelevent-mousewheel-interaction.html [ Skip ]
     72fast/events/continuous-platform-wheelevent-in-scrolling-div.html [ Skip ]
    8373fast/events/platform-wheelevent-in-scrolling-div.html [ Skip ]
    8474fast/events/platform-wheelevent-paging-x-in-non-scrolling-div.html [ Skip ]
     
    9282fast/events/platform-wheelevent-paging-y-in-scrolling-div.html [ Skip ]
    9383fast/events/platform-wheelevent-paging-y-in-scrolling-page.html [ Skip ]
     84fast/events/wheel-event-destroys-frame.html [ Skip ]
     85fast/events/wheel-event-destroys-overflow.html [ Skip ]
     86fast/events/wheel-event-outside-body.html [ Skip ]
     87fast/events/wheelevent-basic.html [ Skip ]
     88fast/events/wheelevent-direction-inverted-from-device.html [ Skip ]
     89fast/events/wheelevent-in-horizontal-scrollbar-in-rtl.html [ Skip ]
    9490fast/events/wheelevent-in-text-node.html [ Skip ]
    95 fast/events/continuous-platform-wheelevent-in-scrolling-div.html [ Skip ]
     91fast/events/wheelevent-in-vertical-scrollbar-in-rtl.html [ Skip ]
     92fast/events/wheelevent-mousewheel-interaction.html [ Skip ]
     93fast/scrolling/iframe-scrollable-after-back.html [ Skip ]
     94fast/scrolling/overflow-scrollable-after-back.html [ Skip ]
     95fast/scrolling/programmatic-scroll-to-zero-zero.html [ Skip ]
     96fast/scrolling/scroll-container-horizontally.html [ Failure ]
    9697
    9798# This test requires alpha-channel video support.
  • trunk/Source/WebCore/ChangeLog

    r256512 r256513  
     12020-02-13  Simon Fraser  <simon.fraser@apple.com>
     2
     3        REGRESSION (r255037): Zooming in and out on Quip in macOS Safari can cause the content to be offset to the side
     4        https://bugs.webkit.org/show_bug.cgi?id=207674
     5        rdar://problem/59404866
     6
     7        Reviewed by Antti Koivisto.
     8       
     9        Remove the early return in ScrollingStateScrollingNode::setRequestedScrollData(); comparing
     10        with the last m_requestedScrollData is wrong, because requested scroll positions are not "state"
     11        in the scrolling tree, they are requests to scroll. Ideally, they would be represented in some
     12        different way in the scrolling tree.
     13
     14        Test: fast/scrolling/programmatic-scroll-to-zero-zero.html
     15
     16        * page/scrolling/ScrollingStateScrollingNode.cpp:
     17        (WebCore::ScrollingStateScrollingNode::setRequestedScrollData):
     18
    1192020-02-13  Said Abou-Hallawa  <said@apple.com>
    220
  • trunk/Source/WebCore/page/scrolling/ScrollingStateScrollingNode.cpp

    r255037 r256513  
    221221void ScrollingStateScrollingNode::setRequestedScrollData(const RequestedScrollData& scrollData)
    222222{
    223     if (scrollData == m_requestedScrollData)
    224         return;
    225 
     223    // Scroll position requests are imperative, not stateful, so we can't early return here.
    226224    m_requestedScrollData = scrollData;
    227225    setPropertyChanged(RequestedScrollPosition);
Note: See TracChangeset for help on using the changeset viewer.