<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>148155</bug_id>
          
          <creation_ts>2015-08-18 18:29:21 -0700</creation_ts>
          <short_desc>Scroll snapping should trigger when receiving a momentum end wheel event</short_desc>
          <delta_ts>2015-08-21 14:35:46 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>148326</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ap</cc>
    
    <cc>bfulgham</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1118764</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2015-08-18 18:29:21 -0700</bug_when>
    <thetext>Scroll snapping should trigger when receiving a wheel event indicating momentum end. This will allow our failing scroll snapping layout tests to pass, since asynchronous momentum wheel events are currently being coalesced. However, in theory, if a user were to flick extremely lightly on the trackpad and generate fewer than 3 wheel momentum events before letting go, scroll snapping would not occur.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1118765</commentid>
    <comment_count>1</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2015-08-18 18:29:55 -0700</bug_when>
    <thetext>&lt;rdar://problem/22336880&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1118851</commentid>
    <comment_count>2</comment_count>
      <attachid>259361</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2015-08-18 23:06:25 -0700</bug_when>
    <thetext>Created attachment 259361
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1118905</commentid>
    <comment_count>3</comment_count>
      <attachid>259361</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-08-19 08:53:47 -0700</bug_when>
    <thetext>Comment on attachment 259361
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=259361&amp;action=review

&gt; Source/WebCore/platform/cocoa/ScrollController.mm:571
&gt; +        else {
&gt; +            snapState.clearInitialWheelDeltaWindow();
&gt; +            snapState.m_shouldOverrideWheelEvent = false;
&gt; +        }

It&apos;s not obvious to me why this is inside an &quot;else&quot;. beginScrollSnapAnimation does set these variables, but not in all code paths.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1118909</commentid>
    <comment_count>4</comment_count>
      <attachid>259361</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2015-08-19 09:05:12 -0700</bug_when>
    <thetext>Comment on attachment 259361
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=259361&amp;action=review

Thanks for the review!

&gt;&gt; Source/WebCore/platform/cocoa/ScrollController.mm:571
&gt;&gt; +        }
&gt; 
&gt; It&apos;s not obvious to me why this is inside an &quot;else&quot;. beginScrollSnapAnimation does set these variables, but not in all code paths.

Good point. I should be able to lift the logic to reset the delta window and override state out of the else clause, since we should be doing this anyway even if we don&apos;t trigger a glide here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1118932</commentid>
    <comment_count>5</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2015-08-19 11:14:00 -0700</bug_when>
    <thetext>Committed r188641: &lt;http://trac.webkit.org/changeset/188641&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>259361</attachid>
            <date>2015-08-18 23:06:25 -0700</date>
            <delta_ts>2015-08-19 08:53:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148155-20150818230622.patch</filename>
            <type>text/plain</type>
            <size>5390</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg4NjIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGY5ZTBjYjA2YWIwZmFi
MDk2YjM2NGIzN2NhYzAxNTVjMjQ5MGJlNC4uZmRjN2JkNTFkNTMyY2Y2N2Y2MmUyNDYxMTBiN2Vk
MDlhMjU1MTI3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDE1LTA4LTE4ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFNjcm9sbCBzbmFw
cGluZyBzaG91bGQgdHJpZ2dlciB3aGVuIHJlY2VpdmluZyBhIG1vbWVudHVtIGVuZCB3aGVlbCBl
dmVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ4
MTU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8g
bmV3IHRlc3RzLCBzaW5jZSB0aGUgcHVycG9zZSBvZiB0aGlzIHBhdGNoIGlzIHRvIGdldCBleGlz
dGluZyB0ZXN0cyB0byBwYXNzIHdoZW4KKyAgICAgICAgYWxsb3dpbmcgc2ltaWxhciB3aGVlbCBl
dmVudHMgdG8gY29hbGVzY2UuIFRvIGFjY29tcGxpc2ggdGhpcywgd2UgcmVsYXggb3VyIGFzc3Vt
cHRpb24KKyAgICAgICAgdGhhdCB0aGUgdXNlciBtdXN0IGhhdmUgZ2VuZXJhdGVkIGF0IGxlYXN0
IDMgbW9tZW50dW0gd2hlZWwgZXZlbnRzIGluIG9yZGVyIGZvciB0aGUKKyAgICAgICAgZ2xpZGlu
ZyBhbmltYXRpb24gdG8gdHJpZ2dlci4gVXBvbiByZWNlaXZpbmcgYSB3aGVlbCBldmVudCBpbmRp
Y2F0aW5nIHRoZSBlbmQgb2YgdGhlCisgICAgICAgIG1vbWVudHVtIHBoYXNlLCB3ZSBub3cga2lj
ayBvZmYgdGhlIGdsaWRpbmcgYW5pbWF0aW9uIGFzIGxvbmcgYXMgYW55IG1vbWVudHVtIGV2ZW50
CisgICAgICAgIHdhcyB0cmFja2VkIGVhcmxpZXIgaW4gdGhlIGdlc3R1cmUgd2l0aCBhIG5vbnpl
cm8gd2hlZWwgZGVsdGEuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250cm9s
bGVyLm1tOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQ29udHJvbGxlcjo6cHJvY2Vzc1doZWVs
RXZlbnRGb3JTY3JvbGxTbmFwT25BeGlzKTogQWRkZWQgbG9naWMgdG8KKyAgICAgICAgICAgIGJl
Z2luIGEgZ2xpZGUgYW5pbWF0aW9uIGlmIHdlIGhhdmUgcmVjZWl2ZWQgYSBtb21lbnR1bSBlbmQg
ZXZlbnQgYnV0IGhhdmUgbm90CisgICAgICAgICAgICB5ZXQgdHJpZ2dlcmVkIGEgZ2xpZGluZyBh
bmltYXRpb24uCisgICAgICAgICogcGxhdGZvcm0vY29jb2EvU2Nyb2xsU25hcEFuaW1hdG9yU3Rh
dGUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9TY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZS5t
bToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFNuYXBBbmltYXRvclN0YXRlOjp3aGVlbERlbHRh
VHJhY2tpbmdJc0luUHJvZ3Jlc3MpOiBNaW5vciByZWZhY3RvcmluZworICAgICAgICAgICAgdG8g
bWFrZSB0aGUgd2hlZWwgZXZlbnQgcHJvY2Vzc2luZyBjb2RlIG1vcmUgcmVhZGFibGUuCisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZTo6aGFzRmluaXNoZWRUcmFja2lu
Z1doZWVsRGVsdGFzKTogRGl0dG8uCisKIDIwMTUtMDgtMTggIERlYW4gSmFja3NvbiAgPGRpbm9A
YXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBudWxsIGNoZWNrIGluIEltYWdlQnVmZmVyRGF0YTo6
Z2V0RGF0YQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xs
Q29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Njcm9sbENvbnRy
b2xsZXIubW0KaW5kZXggNjk1ZTI4NGUyNzIzMjZlZTc0NTNkNGM0MWUzMTlkMjUxY2VlOTIxMi4u
NjI3MTM0ZDdlOWU2M2VhNGI2MDc4NmEwMzVmMDEwNzlhNTlkZDBmOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250cm9sbGVyLm1tCkBAIC01NTQsMTcg
KzU1NCwyMSBAQCB2b2lkIFNjcm9sbENvbnRyb2xsZXI6OnByb2Nlc3NXaGVlbEV2ZW50Rm9yU2Ny
b2xsU25hcE9uQXhpcyhTY3JvbGxFdmVudEF4aXMgYXhpcwogICAgIGNhc2UgV2hlZWxFdmVudFN0
YXR1czo6SW5lcnRpYWxTY3JvbGxpbmc6CiAgICAgICAgIC8vIFRoaXMgY2hlY2sgZm9yIERlc3Rp
bmF0aW9uUmVhY2hlZCBlbnN1cmVzIHRoYXQgd2UgZG9uJ3QgcmVjZWl2ZSBhbm90aGVyIHNldCBv
ZiBtb21lbnR1bSBldmVudHMgYWZ0ZXIgZW5kaW5nIHRoZSBsYXN0IGdsaWRlLgogICAgICAgICBp
ZiAoc25hcFN0YXRlLm1fY3VycmVudFN0YXRlICE9IFNjcm9sbFNuYXBTdGF0ZTo6R2xpZGluZyAm
JiBzbmFwU3RhdGUubV9jdXJyZW50U3RhdGUgIT0gU2Nyb2xsU25hcFN0YXRlOjpEZXN0aW5hdGlv
blJlYWNoZWQpIHsKLSAgICAgICAgICAgIGlmIChzbmFwU3RhdGUubV9udW1XaGVlbERlbHRhc1Ry
YWNrZWQgPCBzbmFwU3RhdGUud2hlZWxEZWx0YVdpbmRvd1NpemUgJiYgd2hlZWxEZWx0YSkKKyAg
ICAgICAgICAgIGlmIChzbmFwU3RhdGUud2hlZWxEZWx0YVRyYWNraW5nSXNJblByb2dyZXNzKCkg
JiYgd2hlZWxEZWx0YSkKICAgICAgICAgICAgICAgICBzbmFwU3RhdGUucHVzaEluaXRpYWxXaGVl
bERlbHRhKHdoZWVsRGVsdGEpOwogICAgICAgICAgICAgCi0gICAgICAgICAgICBpZiAoKHNuYXBT
dGF0ZS5tX251bVdoZWVsRGVsdGFzVHJhY2tlZCA9PSBzbmFwU3RhdGUud2hlZWxEZWx0YVdpbmRv
d1NpemUpICYmIHNuYXBTdGF0ZS5hdmVyYWdlSW5pdGlhbFdoZWVsRGVsdGEoKSkKKyAgICAgICAg
ICAgIGlmIChzbmFwU3RhdGUuaGFzRmluaXNoZWRUcmFja2luZ1doZWVsRGVsdGFzKCkgJiYgc25h
cFN0YXRlLmF2ZXJhZ2VJbml0aWFsV2hlZWxEZWx0YSgpKQogICAgICAgICAgICAgICAgIGJlZ2lu
U2Nyb2xsU25hcEFuaW1hdGlvbihheGlzLCBTY3JvbGxTbmFwU3RhdGU6OkdsaWRpbmcpOwogICAg
ICAgICB9CiAgICAgICAgIGJyZWFrOwogICAgICAgICAKICAgICBjYXNlIFdoZWVsRXZlbnRTdGF0
dXM6OkluZXJ0aWFsU2Nyb2xsRW5kOgotICAgICAgICBzbmFwU3RhdGUuY2xlYXJJbml0aWFsV2hl
ZWxEZWx0YVdpbmRvdygpOwotICAgICAgICBzbmFwU3RhdGUubV9zaG91bGRPdmVycmlkZVdoZWVs
RXZlbnQgPSBmYWxzZTsKKyAgICAgICAgaWYgKHNuYXBTdGF0ZS53aGVlbERlbHRhVHJhY2tpbmdJ
c0luUHJvZ3Jlc3MoKSAmJiBzbmFwU3RhdGUuYXZlcmFnZUluaXRpYWxXaGVlbERlbHRhKCkpCisg
ICAgICAgICAgICBiZWdpblNjcm9sbFNuYXBBbmltYXRpb24oYXhpcywgU2Nyb2xsU25hcFN0YXRl
OjpHbGlkaW5nKTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBzbmFwU3RhdGUuY2xlYXJJ
bml0aWFsV2hlZWxEZWx0YVdpbmRvdygpOworICAgICAgICAgICAgc25hcFN0YXRlLm1fc2hvdWxk
T3ZlcnJpZGVXaGVlbEV2ZW50ID0gZmFsc2U7CisgICAgICAgIH0KICAgICAgICAgYnJlYWs7CiAK
ICAgICBjYXNlIFdoZWVsRXZlbnRTdGF0dXM6OlN0YXRlbGVzc1Njcm9sbEV2ZW50OgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xsU25hcEFuaW1hdG9yU3Rh
dGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Njcm9sbFNuYXBBbmltYXRvclN0
YXRlLmgKaW5kZXggNWIyMDdmYWE0MDQwMzkwOTRiYTJlNzY1NzkzODNhNmNkOWRkNDcxOS4uMTMz
MDEwNWNhZGYxZTVhNzhlNjQ2MzUyYjU3NDg3ZjNmMjFkMTc5ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xsU25hcEFuaW1hdG9yU3RhdGUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZS5oCkBA
IC01Miw2ICs1Miw4IEBAIHN0cnVjdCBTY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZSB7CiAgICAgdm9p
ZCBjbGVhckluaXRpYWxXaGVlbERlbHRhV2luZG93KCk7CiAgICAgYm9vbCBpc1NuYXBwaW5nKCkg
Y29uc3Q7CiAgICAgYm9vbCBjYW5SZWFjaFRhcmdldFdpdGhDdXJyZW50SW5pdGlhbFNjcm9sbERl
bHRhKCkgY29uc3Q7CisgICAgYm9vbCB3aGVlbERlbHRhVHJhY2tpbmdJc0luUHJvZ3Jlc3MoKSBj
b25zdDsKKyAgICBib29sIGhhc0ZpbmlzaGVkVHJhY2tpbmdXaGVlbERlbHRhcygpIGNvbnN0Owog
ICAgIGZsb2F0IGludGVycG9sYXRlZE9mZnNldEF0UHJvZ3Jlc3MoZmxvYXQpIGNvbnN0OwogICAg
IAogICAgIHN0YXRpYyBjb25zdCBpbnQgd2hlZWxEZWx0YVdpbmRvd1NpemUgPSAzOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xsU25hcEFuaW1hdG9yU3Rh
dGUubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TY3JvbGxTbmFwQW5pbWF0b3JT
dGF0ZS5tbQppbmRleCA2ZjY5ODAyMjZmNDJhODBkZWI4MGFjOTg4M2Y0M2YyMTBlNzc4MmY5Li43
ZmE2NDMyOGY1ZmI3YmUyNTA2NWVjYjU0OTlhYzhmMzBjNGQ5NTdkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZS5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZS5t
bQpAQCAtODQsNiArODQsMTYgQEAgYm9vbCBTY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZTo6Y2FuUmVh
Y2hUYXJnZXRXaXRoQ3VycmVudEluaXRpYWxTY3JvbGxEZWx0YSgpIGNvbnMKICAgICByZXR1cm4g
bV9pbml0aWFsT2Zmc2V0IDwgbV90YXJnZXRPZmZzZXQgPyBtX2luaXRpYWxTY3JvbGxEZWx0YSA+
IDAgOiBtX2luaXRpYWxTY3JvbGxEZWx0YSA8IDA7CiB9CiAgICAgCitib29sIFNjcm9sbFNuYXBB
bmltYXRvclN0YXRlOjp3aGVlbERlbHRhVHJhY2tpbmdJc0luUHJvZ3Jlc3MoKSBjb25zdAorewor
ICAgIHJldHVybiBtX251bVdoZWVsRGVsdGFzVHJhY2tlZCAmJiBtX251bVdoZWVsRGVsdGFzVHJh
Y2tlZCA8IHdoZWVsRGVsdGFXaW5kb3dTaXplOworfQorCitib29sIFNjcm9sbFNuYXBBbmltYXRv
clN0YXRlOjpoYXNGaW5pc2hlZFRyYWNraW5nV2hlZWxEZWx0YXMoKSBjb25zdAoreworICAgIHJl
dHVybiBtX251bVdoZWVsRGVsdGFzVHJhY2tlZCA9PSB3aGVlbERlbHRhV2luZG93U2l6ZTsKK30K
KwogZmxvYXQgU2Nyb2xsU25hcEFuaW1hdG9yU3RhdGU6OmludGVycG9sYXRlZE9mZnNldEF0UHJv
Z3Jlc3MoZmxvYXQgcHJvZ3Jlc3MpIGNvbnN0CiB7CiAgICAgcHJvZ3Jlc3MgPSBzdGQ6Om1heCgw
LjBmLCBzdGQ6Om1pbigxLjBmLCBwcm9ncmVzcykpOwo=
</data>
<flag name="review"
          id="284534"
          type_id="1"
          status="+"
          setter="ap"
    />
          </attachment>
      

    </bug>

</bugzilla>