<?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>130441</bug_id>
          
          <creation_ts>2014-03-18 19:25:36 -0700</creation_ts>
          <short_desc>WebKit2 View Gestures: Swipe gesture can track vertical movement instead of horizontal movement</short_desc>
          <delta_ts>2014-03-19 10:57:45 -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>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tim Horton">thorton</reporter>
          <assigned_to name="Tim Horton">thorton</assigned_to>
          <cc>andersca</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>991992</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-03-18 19:25:36 -0700</bug_when>
    <thetext>ViewGestureController::handleScrollWheelEvent properly bails in a wide variety of cases, but wheelEventWasNotHandledByWebCore does not, so we can pick up a wheel event that was rejected by the web process (and would have been rejected by the checks in handleScrollWheelEvent) and use it to start tracking a swipe.

One of the cases we check in handleScrollWheelEvent is that the horizontal delta is bigger; since we don&apos;t check this in wheelEventWasNotHandledByWebCore, we can start tracking a swipe from an event with a predominantly vertical delta, which results in the swipe tracking vertical movement instead of horizontal movement.

We should factor out all of the cases and check in both places.

&lt;rdar://problem/16337279&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>991996</commentid>
    <comment_count>1</comment_count>
      <attachid>227147</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-03-18 19:35:37 -0700</bug_when>
    <thetext>Created attachment 227147
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>992009</commentid>
    <comment_count>2</comment_count>
      <attachid>227152</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-03-18 20:46:58 -0700</bug_when>
    <thetext>Created attachment 227152
patch that builds</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>992172</commentid>
    <comment_count>3</comment_count>
      <attachid>227152</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-03-19 10:45:15 -0700</bug_when>
    <thetext>Comment on attachment 227152
patch that builds

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

&gt; Source/WebKit2/UIProcess/mac/ViewGestureControllerMac.mm:267
&gt;      if (!event.hasPreciseScrollingDeltas)
&gt;          return false;
&gt;  
&gt;      if (![NSEvent isSwipeTrackingFromScrollEventsEnabled])
&gt;          return false;

Would be cheaper to do these early returns sooner.

&gt; Source/WebKit2/UIProcess/mac/ViewGestureControllerMac.mm:279
&gt; +    m_hasPendingSwipe = false;

Does this need to be cleared before the previous return?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>992179</commentid>
    <comment_count>4</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-03-19 10:57:45 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/165903</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>227147</attachid>
            <date>2014-03-18 19:35:37 -0700</date>
            <delta_ts>2014-03-18 20:46:58 -0700</delta_ts>
            <desc>patch</desc>
            <filename>swipe-vertical.diff</filename>
            <type>text/plain</type>
            <size>4255</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA2Yjc5NjZhLi5iODcyMWUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjYg
QEAKIDIwMTQtMDMtMTggIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAK
KyAgICAgICAgV2ViS2l0MiBWaWV3IEdlc3R1cmVzOiBTd2lwZSBnZXN0dXJlIGNhbiB0cmFjayB2
ZXJ0aWNhbCBtb3ZlbWVudCBpbnN0ZWFkIG9mIGhvcml6b250YWwgbW92ZW1lbnQKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMDQ0MQorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vMTYzMzcyNzk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1ZpZXdHZXN0dXJlQ29udHJvbGxlck1h
Yy5tbToKKyAgICAgICAgKFdlYktpdDo6c2Nyb2xsRXZlbnRDYW5CZWNvbWVTd2lwZSk6CisgICAg
ICAgIEZhY3RvciBsb2dpYyB0aGF0IGRldGVybWluZXMgaWYgYSBzY3JvbGwgZXZlbnQgY2FuIGJl
Y29tZSBhIHN3aXBlCisgICAgICAgIG91dCBpbnRvIHNjcm9sbEV2ZW50Q2FuQmVjb21lU3dpcGUu
CisgICAgICAgIFVzZSBDR0ZBYnMgaW5zdGVhZCBvZiBmYWJzLCBzaW5jZSBzY3JvbGxpbmcgZGVs
dGFzIGFyZSBDR0Zsb2F0cy4KKyAgICAgICAgVXNlIDw9IGluc3RlYWQgb2YgPCB3aGVuIGNvbXBh
cmluZyB0aGUgYXhlcywgYmVjYXVzZSB3ZSBkb24ndCB3YW50CisgICAgICAgIHRvIHN0YXJ0IGEg
c3dpcGUgb24gYSBjb21wbGV0ZWx5IGRpYWdvbmFsIHNjcm9sbCBlaXRoZXIgKGJlY2F1c2UgQXBw
S2l0CisgICAgICAgIGNhbiBzdGFydCB0cmFja2luZyBhIHZlcnRpY2FsIHN3aXBlIGluIHRoYXQg
Y2FzZSkuCisKKyAgICAgICAgKFdlYktpdDo6Vmlld0dlc3R1cmVDb250cm9sbGVyOjpoYW5kbGVT
Y3JvbGxXaGVlbEV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6Vmlld0dlc3R1cmVDb250cm9sbGVy
Ojp3aGVlbEV2ZW50V2FzTm90SGFuZGxlZEJ5V2ViQ29yZSk6CisgICAgICAgIE1ha2UgdXNlIG9m
IHNjcm9sbEV2ZW50Q2FuQmVjb21lU3dpcGUuCisKKzIwMTQtMDMtMTggIFRpbSBIb3J0b24gIDx0
aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKICAgICAgICAgW2lPU11bV2ViS2l0Ml0gTWFyayBs
YXllciBjb250ZW50cyBhcyBiZWluZyBvcGFxdWUgaWYgdGhleSBhcmUKICAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMDQyNwogICAgICAgICA8cmRhcjov
L3Byb2JsZW0vMTU1NDA0MzQ+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
bWFjL1ZpZXdHZXN0dXJlQ29udHJvbGxlck1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9tYWMvVmlld0dlc3R1cmVDb250cm9sbGVyTWFjLm1tCmluZGV4IDlkNDNhYzkuLjc4YWQ0ZTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvVmlld0dlc3R1cmVDb250
cm9sbGVyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvVmlld0dlc3R1
cmVDb250cm9sbGVyTWFjLm1tCkBAIC0yNDcsMzIgKzI0Nyw0MSBAQCB2b2lkIFZpZXdHZXN0dXJl
Q29udHJvbGxlcjo6ZGlkQ29sbGVjdEdlb21ldHJ5Rm9yU21hcnRNYWduaWZpY2F0aW9uR2VzdHVy
ZShGbG9hdAogICAgIG1fbGFzdE1hZ25pZmljYXRpb25HZXN0dXJlV2FzU21hcnRNYWduaWZpY2F0
aW9uID0gdHJ1ZTsKIH0KIAotYm9vbCBWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OmhhbmRsZVNjcm9s
bFdoZWVsRXZlbnQoTlNFdmVudCAqZXZlbnQpCitzdGF0aWMgYm9vbCBzY3JvbGxFdmVudENhbkJl
Y29tZVN3aXBlKE5TRXZlbnQgKmV2ZW50LCBXZWJQYWdlUHJveHkmIHdlYlBhZ2VQcm94eSwgVmll
d0dlc3R1cmVDb250cm9sbGVyOjpTd2lwZURpcmVjdGlvbiYgcG90ZW50aWFsU3dpcGVEaXJlY3Rp
b24pCiB7Ci0gICAgaWYgKG1fYWN0aXZlR2VzdHVyZVR5cGUgIT0gVmlld0dlc3R1cmVUeXBlOjpO
b25lKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KICAgICBpZiAoZXZlbnQucGhhc2UgIT0gTlNF
dmVudFBoYXNlQmVnYW4pCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIG1faGFzUGVuZGlu
Z1N3aXBlID0gZmFsc2U7Ci0KLSAgICBpZiAoZmFicyhldmVudC5zY3JvbGxpbmdEZWx0YVgpIDwg
ZmFicyhldmVudC5zY3JvbGxpbmdEZWx0YVkpKQorICAgIGlmIChDR0ZBYnMoZXZlbnQuc2Nyb2xs
aW5nRGVsdGFYKSA8PSBDR0ZBYnMoZXZlbnQuc2Nyb2xsaW5nRGVsdGFZKSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCi0gICAgYm9vbCB3aWxsU3dpcGVMZWZ0ID0gZXZlbnQuc2Nyb2xsaW5nRGVs
dGFYID4gMCAmJiBtX3dlYlBhZ2VQcm94eS5pc1Bpbm5lZFRvTGVmdFNpZGUoKSAmJiBtX3dlYlBh
Z2VQcm94eS5iYWNrRm9yd2FyZExpc3QoKS5iYWNrSXRlbSgpOwotICAgIGJvb2wgd2lsbFN3aXBl
UmlnaHQgPSBldmVudC5zY3JvbGxpbmdEZWx0YVggPCAwICYmIG1fd2ViUGFnZVByb3h5LmlzUGlu
bmVkVG9SaWdodFNpZGUoKSAmJiBtX3dlYlBhZ2VQcm94eS5iYWNrRm9yd2FyZExpc3QoKS5mb3J3
YXJkSXRlbSgpOworICAgIGJvb2wgd2lsbFN3aXBlTGVmdCA9IGV2ZW50LnNjcm9sbGluZ0RlbHRh
WCA+IDAgJiYgd2ViUGFnZVByb3h5LmlzUGlubmVkVG9MZWZ0U2lkZSgpICYmIHdlYlBhZ2VQcm94
eS5iYWNrRm9yd2FyZExpc3QoKS5iYWNrSXRlbSgpOworICAgIGJvb2wgd2lsbFN3aXBlUmlnaHQg
PSBldmVudC5zY3JvbGxpbmdEZWx0YVggPCAwICYmIHdlYlBhZ2VQcm94eS5pc1Bpbm5lZFRvUmln
aHRTaWRlKCkgJiYgd2ViUGFnZVByb3h5LmJhY2tGb3J3YXJkTGlzdCgpLmZvcndhcmRJdGVtKCk7
CiAgICAgaWYgKCF3aWxsU3dpcGVMZWZ0ICYmICF3aWxsU3dpcGVSaWdodCkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCi0gICAgU3dpcGVEaXJlY3Rpb24gZGlyZWN0aW9uID0gd2lsbFN3aXBlTGVm
dCA/IFN3aXBlRGlyZWN0aW9uOjpMZWZ0IDogU3dpcGVEaXJlY3Rpb246OlJpZ2h0OwotCiAgICAg
aWYgKCFldmVudC5oYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKICAgICBpZiAoIVtOU0V2ZW50IGlzU3dpcGVUcmFja2luZ0Zyb21TY3JvbGxFdmVudHNF
bmFibGVkXSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCisgICAgcG90ZW50aWFsU3dpcGVEaXJl
Y3Rpb24gPSB3aWxsU3dpcGVMZWZ0ID8gVmlld0dlc3R1cmVDb250cm9sbGVyOjpTd2lwZURpcmVj
dGlvbjo6TGVmdCA6IFZpZXdHZXN0dXJlQ29udHJvbGxlcjo6U3dpcGVEaXJlY3Rpb246OlJpZ2h0
OworCisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgVmlld0dlc3R1cmVDb250cm9sbGVyOjpo
YW5kbGVTY3JvbGxXaGVlbEV2ZW50KE5TRXZlbnQgKmV2ZW50KQoreworICAgIGlmIChtX2FjdGl2
ZUdlc3R1cmVUeXBlICE9IFZpZXdHZXN0dXJlVHlwZTo6Tm9uZSkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworCisgICAgbV9oYXNQZW5kaW5nU3dpcGUgPSBmYWxzZTsKKworICAgIFN3aXBlRGlyZWN0
aW9uIGRpcmVjdGlvbjsKKyAgICBpZiAoIXNjcm9sbEV2ZW50Q2FuQmVjb21lU3dpcGUoZXZlbnQs
IG1fd2ViUGFnZVByb3h5LCBkaXJlY3Rpb24pKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKICAg
ICBpZiAobV93ZWJQYWdlUHJveHkud2lsbEhhbmRsZUhvcml6b250YWxTY3JvbGxFdmVudHMoKSkg
ewogICAgICAgICBtX2hhc1BlbmRpbmdTd2lwZSA9IHRydWU7CiAgICAgICAgIG1fcGVuZGluZ1N3
aXBlRGlyZWN0aW9uID0gZGlyZWN0aW9uOwpAQCAtMjkxLDcgKzMwMCw4IEBAIHZvaWQgVmlld0dl
c3R1cmVDb250cm9sbGVyOjp3aGVlbEV2ZW50V2FzTm90SGFuZGxlZEJ5V2ViQ29yZShOU0V2ZW50
ICpldmVudCkKIAogICAgIG1faGFzUGVuZGluZ1N3aXBlID0gZmFsc2U7CiAKLSAgICBpZiAoZXZl
bnQucGhhc2UgIT0gTlNFdmVudFBoYXNlQmVnYW4pCisgICAgU3dpcGVEaXJlY3Rpb24gZGlyZWN0
aW9uOworICAgIGlmICghc2Nyb2xsRXZlbnRDYW5CZWNvbWVTd2lwZShldmVudCwgbV93ZWJQYWdl
UHJveHksIGRpcmVjdGlvbikpCiAgICAgICAgIHJldHVybjsKIAogICAgIHRyYWNrU3dpcGVHZXN0
dXJlKGV2ZW50LCBtX3BlbmRpbmdTd2lwZURpcmVjdGlvbik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>227152</attachid>
            <date>2014-03-18 20:46:58 -0700</date>
            <delta_ts>2014-03-19 10:45:15 -0700</delta_ts>
            <desc>patch that builds</desc>
            <filename>swipe-vertical.diff</filename>
            <type>text/plain</type>
            <size>4177</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA2Yjc5NjZhLi4xNzVmOWY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjUg
QEAKIDIwMTQtMDMtMTggIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAK
KyAgICAgICAgV2ViS2l0MiBWaWV3IEdlc3R1cmVzOiBTd2lwZSBnZXN0dXJlIGNhbiB0cmFjayB2
ZXJ0aWNhbCBtb3ZlbWVudCBpbnN0ZWFkIG9mIGhvcml6b250YWwgbW92ZW1lbnQKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMDQ0MQorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vMTYzMzcyNzk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1ZpZXdHZXN0dXJlQ29udHJvbGxlck1h
Yy5tbToKKyAgICAgICAgKFdlYktpdDo6c2Nyb2xsRXZlbnRDYW5CZWNvbWVTd2lwZSk6CisgICAg
ICAgIEZhY3RvciBsb2dpYyB0aGF0IGRldGVybWluZXMgaWYgYSBzY3JvbGwgZXZlbnQgY2FuIGJl
Y29tZSBhIHN3aXBlCisgICAgICAgIG91dCBpbnRvIHNjcm9sbEV2ZW50Q2FuQmVjb21lU3dpcGUu
CisgICAgICAgIFVzZSA8PSBpbnN0ZWFkIG9mIDwgd2hlbiBjb21wYXJpbmcgdGhlIGF4ZXMsIGJl
Y2F1c2Ugd2UgZG9uJ3Qgd2FudAorICAgICAgICB0byBzdGFydCBhIHN3aXBlIG9uIGEgY29tcGxl
dGVseSBkaWFnb25hbCBzY3JvbGwgZWl0aGVyIChiZWNhdXNlIEFwcEtpdAorICAgICAgICBjYW4g
c3RhcnQgdHJhY2tpbmcgYSB2ZXJ0aWNhbCBzd2lwZSBpbiB0aGF0IGNhc2UpLgorCisgICAgICAg
IChXZWJLaXQ6OlZpZXdHZXN0dXJlQ29udHJvbGxlcjo6aGFuZGxlU2Nyb2xsV2hlZWxFdmVudCk6
CisgICAgICAgIChXZWJLaXQ6OlZpZXdHZXN0dXJlQ29udHJvbGxlcjo6d2hlZWxFdmVudFdhc05v
dEhhbmRsZWRCeVdlYkNvcmUpOgorICAgICAgICBNYWtlIHVzZSBvZiBzY3JvbGxFdmVudENhbkJl
Y29tZVN3aXBlLgorCisyMDE0LTAzLTE4ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBw
bGUuY29tPgorCiAgICAgICAgIFtpT1NdW1dlYktpdDJdIE1hcmsgbGF5ZXIgY29udGVudHMgYXMg
YmVpbmcgb3BhcXVlIGlmIHRoZXkgYXJlCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMzA0MjcKICAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzE1NTQwNDM0
PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9WaWV3R2VzdHVyZUNv
bnRyb2xsZXJNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1ZpZXdHZXN0dXJl
Q29udHJvbGxlck1hYy5tbQppbmRleCA5ZDQzYWM5Li42ZjAxYzg0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1ZpZXdHZXN0dXJlQ29udHJvbGxlck1hYy5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1ZpZXdHZXN0dXJlQ29udHJvbGxlck1hYy5t
bQpAQCAtMjQ3LDMyICsyNDcsNDEgQEAgdm9pZCBWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OmRpZENv
bGxlY3RHZW9tZXRyeUZvclNtYXJ0TWFnbmlmaWNhdGlvbkdlc3R1cmUoRmxvYXQKICAgICBtX2xh
c3RNYWduaWZpY2F0aW9uR2VzdHVyZVdhc1NtYXJ0TWFnbmlmaWNhdGlvbiA9IHRydWU7CiB9CiAK
LWJvb2wgVmlld0dlc3R1cmVDb250cm9sbGVyOjpoYW5kbGVTY3JvbGxXaGVlbEV2ZW50KE5TRXZl
bnQgKmV2ZW50KQorc3RhdGljIGJvb2wgc2Nyb2xsRXZlbnRDYW5CZWNvbWVTd2lwZShOU0V2ZW50
ICpldmVudCwgV2ViUGFnZVByb3h5JiB3ZWJQYWdlUHJveHksIFZpZXdHZXN0dXJlQ29udHJvbGxl
cjo6U3dpcGVEaXJlY3Rpb24mIHBvdGVudGlhbFN3aXBlRGlyZWN0aW9uKQogewotICAgIGlmICht
X2FjdGl2ZUdlc3R1cmVUeXBlICE9IFZpZXdHZXN0dXJlVHlwZTo6Tm9uZSkKLSAgICAgICAgcmV0
dXJuIGZhbHNlOwotCiAgICAgaWYgKGV2ZW50LnBoYXNlICE9IE5TRXZlbnRQaGFzZUJlZ2FuKQog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBtX2hhc1BlbmRpbmdTd2lwZSA9IGZhbHNlOwot
Ci0gICAgaWYgKGZhYnMoZXZlbnQuc2Nyb2xsaW5nRGVsdGFYKSA8IGZhYnMoZXZlbnQuc2Nyb2xs
aW5nRGVsdGFZKSkKKyAgICBpZiAoZmFicyhldmVudC5zY3JvbGxpbmdEZWx0YVgpIDw9IGZhYnMo
ZXZlbnQuc2Nyb2xsaW5nRGVsdGFZKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgYm9v
bCB3aWxsU3dpcGVMZWZ0ID0gZXZlbnQuc2Nyb2xsaW5nRGVsdGFYID4gMCAmJiBtX3dlYlBhZ2VQ
cm94eS5pc1Bpbm5lZFRvTGVmdFNpZGUoKSAmJiBtX3dlYlBhZ2VQcm94eS5iYWNrRm9yd2FyZExp
c3QoKS5iYWNrSXRlbSgpOwotICAgIGJvb2wgd2lsbFN3aXBlUmlnaHQgPSBldmVudC5zY3JvbGxp
bmdEZWx0YVggPCAwICYmIG1fd2ViUGFnZVByb3h5LmlzUGlubmVkVG9SaWdodFNpZGUoKSAmJiBt
X3dlYlBhZ2VQcm94eS5iYWNrRm9yd2FyZExpc3QoKS5mb3J3YXJkSXRlbSgpOworICAgIGJvb2wg
d2lsbFN3aXBlTGVmdCA9IGV2ZW50LnNjcm9sbGluZ0RlbHRhWCA+IDAgJiYgd2ViUGFnZVByb3h5
LmlzUGlubmVkVG9MZWZ0U2lkZSgpICYmIHdlYlBhZ2VQcm94eS5iYWNrRm9yd2FyZExpc3QoKS5i
YWNrSXRlbSgpOworICAgIGJvb2wgd2lsbFN3aXBlUmlnaHQgPSBldmVudC5zY3JvbGxpbmdEZWx0
YVggPCAwICYmIHdlYlBhZ2VQcm94eS5pc1Bpbm5lZFRvUmlnaHRTaWRlKCkgJiYgd2ViUGFnZVBy
b3h5LmJhY2tGb3J3YXJkTGlzdCgpLmZvcndhcmRJdGVtKCk7CiAgICAgaWYgKCF3aWxsU3dpcGVM
ZWZ0ICYmICF3aWxsU3dpcGVSaWdodCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgU3dp
cGVEaXJlY3Rpb24gZGlyZWN0aW9uID0gd2lsbFN3aXBlTGVmdCA/IFN3aXBlRGlyZWN0aW9uOjpM
ZWZ0IDogU3dpcGVEaXJlY3Rpb246OlJpZ2h0OwotCiAgICAgaWYgKCFldmVudC5oYXNQcmVjaXNl
U2Nyb2xsaW5nRGVsdGFzKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBpZiAoIVtOU0V2
ZW50IGlzU3dpcGVUcmFja2luZ0Zyb21TY3JvbGxFdmVudHNFbmFibGVkXSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCisgICAgcG90ZW50aWFsU3dpcGVEaXJlY3Rpb24gPSB3aWxsU3dpcGVMZWZ0
ID8gVmlld0dlc3R1cmVDb250cm9sbGVyOjpTd2lwZURpcmVjdGlvbjo6TGVmdCA6IFZpZXdHZXN0
dXJlQ29udHJvbGxlcjo6U3dpcGVEaXJlY3Rpb246OlJpZ2h0OworCisgICAgcmV0dXJuIHRydWU7
Cit9CisKK2Jvb2wgVmlld0dlc3R1cmVDb250cm9sbGVyOjpoYW5kbGVTY3JvbGxXaGVlbEV2ZW50
KE5TRXZlbnQgKmV2ZW50KQoreworICAgIGlmIChtX2FjdGl2ZUdlc3R1cmVUeXBlICE9IFZpZXdH
ZXN0dXJlVHlwZTo6Tm9uZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgbV9oYXNQZW5k
aW5nU3dpcGUgPSBmYWxzZTsKKworICAgIFN3aXBlRGlyZWN0aW9uIGRpcmVjdGlvbjsKKyAgICBp
ZiAoIXNjcm9sbEV2ZW50Q2FuQmVjb21lU3dpcGUoZXZlbnQsIG1fd2ViUGFnZVByb3h5LCBkaXJl
Y3Rpb24pKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICBpZiAobV93ZWJQYWdlUHJveHku
d2lsbEhhbmRsZUhvcml6b250YWxTY3JvbGxFdmVudHMoKSkgewogICAgICAgICBtX2hhc1BlbmRp
bmdTd2lwZSA9IHRydWU7CiAgICAgICAgIG1fcGVuZGluZ1N3aXBlRGlyZWN0aW9uID0gZGlyZWN0
aW9uOwpAQCAtMjkxLDcgKzMwMCw4IEBAIHZvaWQgVmlld0dlc3R1cmVDb250cm9sbGVyOjp3aGVl
bEV2ZW50V2FzTm90SGFuZGxlZEJ5V2ViQ29yZShOU0V2ZW50ICpldmVudCkKIAogICAgIG1faGFz
UGVuZGluZ1N3aXBlID0gZmFsc2U7CiAKLSAgICBpZiAoZXZlbnQucGhhc2UgIT0gTlNFdmVudFBo
YXNlQmVnYW4pCisgICAgU3dpcGVEaXJlY3Rpb24gZGlyZWN0aW9uOworICAgIGlmICghc2Nyb2xs
RXZlbnRDYW5CZWNvbWVTd2lwZShldmVudCwgbV93ZWJQYWdlUHJveHksIGRpcmVjdGlvbikpCiAg
ICAgICAgIHJldHVybjsKIAogICAgIHRyYWNrU3dpcGVHZXN0dXJlKGV2ZW50LCBtX3BlbmRpbmdT
d2lwZURpcmVjdGlvbik7Cg==
</data>
<flag name="review"
          id="251385"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>