<?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>107628</bug_id>
          
          <creation_ts>2013-01-22 21:58:43 -0800</creation_ts>
          <short_desc>Sometimes scroll position is jerky during rubber-band, affects nytimes.com</short_desc>
          <delta_ts>2013-01-23 12:18:41 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>528+ (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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Beth Dakin">bdakin</reporter>
          <assigned_to name="Beth Dakin">bdakin</assigned_to>
          <cc>andersca</cc>
    
    <cc>bdakin</cc>
    
    <cc>ggaren</cc>
    
    <cc>jamesr</cc>
    
    <cc>levin+threading</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>813808</commentid>
    <comment_count>0</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2013-01-22 21:58:43 -0800</bug_when>
    <thetext>To repro this issue at nytimes.com

1. Navigate to nytimes.com
2. Using a two-finger scroll gesture, pull the web page down to reveal linen at the top. Hold your fingers in place to keep the linen visible for a while.

Expected result: The linen keeps showing for as long as your fingers are down on the trackpad.
Actual result: After a moment, the top of the page will snap up and the linen will disappear.

&lt;rdar://problem/12679549&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>813829</commentid>
    <comment_count>1</comment_count>
      <attachid>184140</attachid>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2013-01-22 22:13:51 -0800</bug_when>
    <thetext>Created attachment 184140
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>813832</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-22 22:16:32 -0800</bug_when>
    <thetext>Attachment 184140 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1
Source/WebCore/page/scrolling/ScrollingTree.h:82:  The parameter name &quot;isRubberBanding&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 11 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>813835</commentid>
    <comment_count>3</comment_count>
      <attachid>184140</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-01-22 22:17:45 -0800</bug_when>
    <thetext>Comment on attachment 184140
Patch

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

&gt; Source/WebCore/page/FrameView.cpp:1929
&gt; +    if (Page* page = m_frame-&gt;page()) {
&gt; +        if (ScrollingCoordinator* scrollingCoordinator = page-&gt;scrollingCoordinator()) {
&gt; +            if (!scrollingCoordinator-&gt;shouldUpdateScrollLayerPositionOnMainThread())
&gt; +                return scrollingCoordinator-&gt;isRubberBandInProgress();
&gt; +        }
&gt; +    }
&gt; +#endif
&gt; +
&gt; +    // If the main thread updates the scroll position for this FrameView, we should return
&gt; +    // ScrollAnimator::isRubberBandInProgress().
&gt; +    if (ScrollAnimator* scrollAnimator = existingScrollAnimator())
&gt; +        return scrollAnimator-&gt;isRubberBandInProgress();

It&apos;s a shame that the ScrollingCoordinator and ScrollAnimator don&apos;t know about eachother, otherwise you could just ask one of them for the answer. It&apos;s pretty unwieldy to have to add code like this in several places.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>813836</commentid>
    <comment_count>4</comment_count>
      <attachid>184140</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2013-01-22 22:20:44 -0800</bug_when>
    <thetext>Comment on attachment 184140
Patch

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

&gt; Source/WebCore/page/FrameView.cpp:1915
&gt; +#if ENABLE(THREADED_SCROLLING)

why this compile-time guard?  The code this depends on (ScrollingCoordinator, etc) are all available outside this feature define and platforms that don&apos;t set this (say chromium) will still need this code</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>814418</commentid>
    <comment_count>5</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2013-01-23 11:36:17 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 184140 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=184140&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/page/FrameView.cpp:1929
&gt; &gt; +    if (Page* page = m_frame-&gt;page()) {
&gt; &gt; +        if (ScrollingCoordinator* scrollingCoordinator = page-&gt;scrollingCoordinator()) {
&gt; &gt; +            if (!scrollingCoordinator-&gt;shouldUpdateScrollLayerPositionOnMainThread())
&gt; &gt; +                return scrollingCoordinator-&gt;isRubberBandInProgress();
&gt; &gt; +        }
&gt; &gt; +    }
&gt; &gt; +#endif
&gt; &gt; +
&gt; &gt; +    // If the main thread updates the scroll position for this FrameView, we should return
&gt; &gt; +    // ScrollAnimator::isRubberBandInProgress().
&gt; &gt; +    if (ScrollAnimator* scrollAnimator = existingScrollAnimator())
&gt; &gt; +        return scrollAnimator-&gt;isRubberBandInProgress();
&gt; 
&gt; It&apos;s a shame that the ScrollingCoordinator and ScrollAnimator don&apos;t know about eachother, otherwise you could just ask one of them for the answer. It&apos;s pretty unwieldy to have to add code like this in several places.

Agreed. :-/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>814420</commentid>
    <comment_count>6</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2013-01-23 11:38:09 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 184140 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=184140&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/page/FrameView.cpp:1915
&gt; &gt; +#if ENABLE(THREADED_SCROLLING)
&gt; 
&gt; why this compile-time guard?  The code this depends on (ScrollingCoordinator, etc) are all available outside this feature define and platforms that don&apos;t set this (say chromium) will still need this code

Alright, I can remove it. I added it because the ScrollingCoordinator function does not do anything on Chromium right now, and didn&apos;t know if the bug existed in Chromium anyway.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>814476</commentid>
    <comment_count>7</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2013-01-23 12:12:33 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (In reply to comment #4)
&gt; &gt; (From update of attachment 184140 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=184140&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/page/FrameView.cpp:1915
&gt; &gt; &gt; +#if ENABLE(THREADED_SCROLLING)
&gt; &gt; 
&gt; &gt; why this compile-time guard?  The code this depends on (ScrollingCoordinator, etc) are all available outside this feature define and platforms that don&apos;t set this (say chromium) will still need this code
&gt; 
&gt; Alright, I can remove it. I added it because the ScrollingCoordinator function does not do anything on Chromium right now, and didn&apos;t know if the bug existed in Chromium anyway.

Rubber-banding isn&apos;t implemented at all in chromium&apos;s implementation of off-main-thread scrolling today, so an implementation of ScrollingCoordinator that returns false for isRubberBandInProgress() will be accurate until we fix that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>814488</commentid>
    <comment_count>8</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2013-01-23 12:18:41 -0800</bug_when>
    <thetext>Thanks! http://trac.webkit.org/changeset/140571</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>184140</attachid>
            <date>2013-01-22 22:13:51 -0800</date>
            <delta_ts>2013-01-22 22:20:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>for-review.txt</filename>
            <type>text/plain</type>
            <size>11579</size>
            <attacher name="Beth Dakin">bdakin</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0MDUwNykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU2IEBACisyMDEzLTAxLTIyICBCZXRoIERh
a2luICA8YmRha2luQGFwcGxlLmNvbT4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTA3NjI4CisgICAgICAgIFNvbWV0aW1lcyBzY3JvbGwgcG9zaXRp
b24gaXMgamVya3kgZHVyaW5nIHJ1YmJlci1iYW5kLCBhZmZlY3RzIG55dGltZXMuY29tCisgICAg
ICAgIC1hbmQgY29ycmVzcG9uZGluZy0KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEyNjc5NTQ5
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBi
YXNpYyBwcm9ibGVtIGhlcmUgaXMgdGhhdCBpc1J1YmJlckJhbmRJblByb2dyZXNzKCkgd2FzIG9u
bHkgaW1wbGVtZW50ZWQgZm9yIAorICAgICAgICBtYWluIHRocmVhZCBzY3JvbGxpbmcuIFNvIHdo
ZW4gd2Ugd2VyZSBhY3R1YWxseSBzY3JvbGxpbmcgb24gdGhlIHNjcm9sbGluZyB0aHJlYWQsIAor
ICAgICAgICB0aGF0IGZ1bmN0aW9uIHdvdWxkIGFsd2F5cyByZXR1cm4gZmFsc2UgcmVnYXJkbGVz
cy4KKworICAgICAgICBOZXcgU2Nyb2xsYWJsZUFyZWEgdmlydHVhbCBmdW5jdGlvbiBpc1J1YmJl
ckJhbmRJblByb2dyZXNzKCkgd2lsbCBhbGxvdyB1cyB0byBhc2sgCisgICAgICAgIHRoZSBTY3Jv
bGxpbmdDb29yZGluYXRvciB3aGVuIHRoZSBzY3JvbGxpbmcgdGhyZWFkIGlzIHNjcm9sbGluZywg
b3IgdGhlIAorICAgICAgICBTY3JvbGxBbmltYXRvciBvdGhlcndpc2UuCisgICAgICAgICogcGFn
ZS9GcmFtZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3Ojppc1J1YmJlckJh
bmRJblByb2dyZXNzKToKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5oOgorICAgICAgICAoRnJh
bWVWaWV3KToKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oOgorICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsYWJsZUFyZWE6OmlzUnViYmVyQmFuZEluUHJvZ3Jlc3MpOgorCisgICAg
ICAgIE5ldyBTY3JvbGxpbmdDb29yZGluYXRvciBmdW5jdGlvbiBpc1J1YmJlckJhbmRJblByb2dy
ZXNzKCkgYWx3YXlzIHJldHVybnMgZmFsc2UgCisgICAgICAgIGZvciBub24tTWFjIHBvcnRzLCBh
bmQgaXMgb3ZlcnJpZGRlbiBpbiBTY3JvbGxpbmdDb29yZGluYXRvck1hYyB0byBjb25zdWx0IHRo
ZSAKKyAgICAgICAgU2Nyb2xsaW5nVHJlZS4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3Jv
bGxpbmdDb29yZGluYXRvci5oOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nQ29vcmRpbmF0
b3I6OmlzUnViYmVyQmFuZEluUHJvZ3Jlc3MpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL21h
Yy9TY3JvbGxpbmdDb29yZGluYXRvck1hYy5oOgorICAgICAgICAoU2Nyb2xsaW5nQ29vcmRpbmF0
b3JNYWMpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29yZGluYXRv
ck1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9yTWFjOjppc1J1
YmJlckJhbmRJblByb2dyZXNzKToKKworICAgICAgICBOZXcgdmFyaWFibGUgbV9tYWluRnJhbWVJ
c1J1YmJlckJhbmRpbmcga2VlcHMgdHJhY2sgb2Ygd2hldGhlciB0aGVyZSBpcyBjdXJyZW50bHkg
CisgICAgICAgIGEgcnViYmVyLWJhbmQgaGFwcGVuaW5nIG9uIHRoZSBzY3JvbGxpbmcgdGhyZWFk
LgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6U2Nyb2xsaW5nVHJlZSk6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxpbmdUcmVlOjppc1J1YmJlckJhbmRJblByb2dyZXNzKToKKyAgICAgICAgKFdlYkNv
cmU6OlNjcm9sbGluZ1RyZWU6OnNldE1haW5GcmFtZUlzUnViYmVyQmFuZGluZyk6CisgICAgICAg
ICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oOgorICAgICAgICAoU2Nyb2xsaW5nVHJl
ZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpyb290Tm9kZSk6CisKKyAgICAg
ICAgQ2FsbCBzZXRNYWluRnJhbWVJc1J1YmJlckJhbmRpbmcoKSB3aGVuZXZlciB0aGUgc3RyZXRj
aEFtb3VudCBpcyBjYWxjdWxhdGVkIGFuZCAKKyAgICAgICAgd2hlbmV2ZXIgd2Ugc3RvcCB0aGUg
cnViYmVyLWJhbmQgdGltZXIuCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGlu
Z1RyZWVTY3JvbGxpbmdOb2RlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJl
ZVNjcm9sbGluZ05vZGVNYWM6OnN0cmV0Y2hBbW91bnQpOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
b2xsaW5nVHJlZVNjcm9sbGluZ05vZGVNYWM6OnN0b3BTbmFwUnViYmVyYmFuZFRpbWVyKToKKwor
ICAgICAgICBDb25zdWx0IEZyYW1lVmlldyBmb3IgaXNSdWJiZXJCYW5kSW5Qcm9ncmVzcygpLgor
ICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbFZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
b2xsVmlldzo6dXBkYXRlU2Nyb2xsYmFycyk6CisKIDIwMTMtMDEtMjIgIEhhamltZSBNb3JyaXRh
ICA8bW9ycml0YUBnb29nbGUuY29tPgogCiAgICAgICAgIG5vbi1FTkFCTEUoREVUQUlMU19FTEVN
RU5UKSBidWlsZCBmYWlscy4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAJKHJldmlz
aW9uIDE0MDQ1OCkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMTkwNyw2ICsxOTA3LDMwIEBAIGJvb2wgRnJhbWVWaWV3OjpzaG91bGRSdWJi
ZXJCYW5kSW5EaXJlY3QKICAgICByZXR1cm4gcGFnZS0+Y2hyb21lKCktPmNsaWVudCgpLT5zaG91
bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24oZGlyZWN0aW9uKTsKIH0KIAorYm9vbCBGcmFtZVZpZXc6
OmlzUnViYmVyQmFuZEluUHJvZ3Jlc3MoKSBjb25zdAoreworICAgIGlmIChzY3JvbGxiYXJzU3Vw
cHJlc3NlZCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyNpZiBFTkFCTEUoVEhSRUFERURf
U0NST0xMSU5HKQorICAgIC8vIElmIHRoZSBzY3JvbGxpbmcgdGhyZWFkIHVwZGF0ZXMgdGhlIHNj
cm9sbCBwb3NpdGlvbiBmb3IgdGhpcyBGcmFtZVZpZXcsIHRoZW4gd2Ugc2hvdWxkIHJldHVybgor
ICAgIC8vIFNjcm9sbGluZ0Nvb3JkaW5hdG9yOjppc1J1YmJlckJhbmRJblByb2dyZXNzKCkuCisg
ICAgaWYgKFBhZ2UqIHBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCkpIHsKKyAgICAgICAgaWYgKFNjcm9s
bGluZ0Nvb3JkaW5hdG9yKiBzY3JvbGxpbmdDb29yZGluYXRvciA9IHBhZ2UtPnNjcm9sbGluZ0Nv
b3JkaW5hdG9yKCkpIHsKKyAgICAgICAgICAgIGlmICghc2Nyb2xsaW5nQ29vcmRpbmF0b3ItPnNo
b3VsZFVwZGF0ZVNjcm9sbExheWVyUG9zaXRpb25Pbk1haW5UaHJlYWQoKSkKKyAgICAgICAgICAg
ICAgICByZXR1cm4gc2Nyb2xsaW5nQ29vcmRpbmF0b3ItPmlzUnViYmVyQmFuZEluUHJvZ3Jlc3Mo
KTsKKyAgICAgICAgfQorICAgIH0KKyNlbmRpZgorCisgICAgLy8gSWYgdGhlIG1haW4gdGhyZWFk
IHVwZGF0ZXMgdGhlIHNjcm9sbCBwb3NpdGlvbiBmb3IgdGhpcyBGcmFtZVZpZXcsIHdlIHNob3Vs
ZCByZXR1cm4KKyAgICAvLyBTY3JvbGxBbmltYXRvcjo6aXNSdWJiZXJCYW5kSW5Qcm9ncmVzcygp
LgorICAgIGlmIChTY3JvbGxBbmltYXRvciogc2Nyb2xsQW5pbWF0b3IgPSBleGlzdGluZ1Njcm9s
bEFuaW1hdG9yKCkpCisgICAgICAgIHJldHVybiBzY3JvbGxBbmltYXRvci0+aXNSdWJiZXJCYW5k
SW5Qcm9ncmVzcygpOworCisgICAgcmV0dXJuIGZhbHNlOworfQorCiBib29sIEZyYW1lVmlldzo6
cmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKGNvbnN0IEludFBvaW50JiBwb3NpdGlvbikKIHsK
ICNpZiBFTkFCTEUoVEhSRUFERURfU0NST0xMSU5HKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFn
ZS9GcmFtZVZpZXcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmll
dy5oCShyZXZpc2lvbiAxNDA0NTgpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xOTAsNiArMTkwLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
dm9pZCB1cGRhdGVGaXhlZEVsZW1lbnRzQWZ0ZXJTY3JvbGxpbmcoKTsKICAgICB2aXJ0dWFsIGJv
b2wgc2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKFNjcm9sbERpcmVjdGlvbikgY29uc3Q7CiAg
ICAgdmlydHVhbCBib29sIHJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZShjb25zdCBJbnRQb2lu
dCYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBpc1J1YmJlckJhbmRJblByb2dyZXNzKCkg
Y29uc3QgT1ZFUlJJREU7CiAKICAgICAvLyBUaGlzIGlzIGRpZmZlcmVudCB0aGFuIHZpc2libGVD
b250ZW50UmVjdCgpIGluIHRoYXQgaXQgaWdub3JlcyBuZWdhdGl2ZSAob3Igb3Zlcmx5IHBvc2l0
aXZlKQogICAgIC8vIG9mZnNldHMgZnJvbSBydWJiZXItYmFuZGluZywgYW5kIGl0IHRha2VzIHpv
b21pbmcgaW50byBhY2NvdW50LiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaAkocmV2aXNpb24gMTQwNDU4KQorKysg
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaAkod29y
a2luZyBjb3B5KQpAQCAtMTI2LDYgKzEyNiw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQg
dXBkYXRlU2Nyb2xsaW5nTm9kZShTY3JvbGxpbmdOb2RlSUQsIEdyYXBoaWNzTGF5ZXIqIC8qc2Ny
b2xsTGF5ZXIqLywgR3JhcGhpY3NMYXllciogLypjb3VudGVyU2Nyb2xsaW5nTGF5ZXIqLykgeyB9
CiAgICAgdmlydHVhbCB2b2lkIHN5bmNDaGlsZFBvc2l0aW9ucyhjb25zdCBMYXlvdXRSZWN0Jikg
eyB9CiAgICAgdmlydHVhbCBTdHJpbmcgc2Nyb2xsaW5nU3RhdGVUcmVlQXNUZXh0KCkgY29uc3Q7
CisgICAgdmlydHVhbCBib29sIGlzUnViYmVyQmFuZEluUHJvZ3Jlc3MoKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQogCiAgICAgLy8gR2VuZXJhdGVkIGEgdW5pcXVlIGlkIGZvciBzY3JvbGwgbGF5
ZXJzLgogICAgIFNjcm9sbGluZ05vZGVJRCB1bmlxdWVTY3JvbGxMYXllcklEKCk7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcAkocmV2
aXNpb24gMTQwNDU4KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5n
VHJlZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU0LDYgKzU0LDcgQEAgU2Nyb2xsaW5nVHJlZTo6
U2Nyb2xsaW5nVHJlZShTY3JvbGxpbmdDbwogICAgICwgbV9jYW5Hb0ZvcndhcmQoZmFsc2UpCiAg
ICAgLCBtX21haW5GcmFtZVBpbm5lZFRvVGhlTGVmdChmYWxzZSkKICAgICAsIG1fbWFpbkZyYW1l
UGlubmVkVG9UaGVSaWdodChmYWxzZSkKKyAgICAsIG1fbWFpbkZyYW1lSXNSdWJiZXJCYW5kaW5n
KGZhbHNlKQogICAgICwgbV9zY3JvbGxpbmdQZXJmb3JtYW5jZUxvZ2dpbmdFbmFibGVkKGZhbHNl
KQogICAgICwgbV9pc0hhbmRsaW5nUHJvZ3JhbW1hdGljU2Nyb2xsKGZhbHNlKQogewpAQCAtMjU5
LDYgKzI2MCwyMCBAQCBib29sIFNjcm9sbGluZ1RyZWU6OmNhbkdvRm9yd2FyZCgpCiAgICAgcmV0
dXJuIG1fY2FuR29Gb3J3YXJkOwogfQogCitib29sIFNjcm9sbGluZ1RyZWU6OmlzUnViYmVyQmFu
ZEluUHJvZ3Jlc3MoKQoreworICAgIE11dGV4TG9ja2VyIGxvY2sobV9tdXRleCk7ICAgIAorCisg
ICAgcmV0dXJuIG1fbWFpbkZyYW1lSXNSdWJiZXJCYW5kaW5nOworfQorCit2b2lkIFNjcm9sbGlu
Z1RyZWU6OnNldE1haW5GcmFtZUlzUnViYmVyQmFuZGluZyhib29sIGlzUnViYmVyQmFuZGluZykK
K3sKKyAgICBNdXRleExvY2tlciBsb2NrZXIobV9tdXRleCk7CisKKyAgICBtX21haW5GcmFtZUlz
UnViYmVyQmFuZGluZyA9IGlzUnViYmVyQmFuZGluZzsKK30KKwogYm9vbCBTY3JvbGxpbmdUcmVl
Ojp3aWxsV2hlZWxFdmVudFN0YXJ0U3dpcGVHZXN0dXJlKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVu
dCYgd2hlZWxFdmVudCkKIHsKICAgICBpZiAod2hlZWxFdmVudC5waGFzZSgpICE9IFBsYXRmb3Jt
V2hlZWxFdmVudFBoYXNlQmVnYW4pCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9TY3JvbGxpbmdUcmVlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvU2Nyb2xsaW5nVHJlZS5oCShyZXZpc2lvbiAxNDA0NTgpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgJKHdvcmtpbmcgY29weSkKQEAgLTc5LDYg
Kzc5LDkgQEAgcHVibGljOgogICAgIC8vIE11c3QgYmUgY2FsbGVkIGZyb20gdGhlIHNjcm9sbGlu
ZyB0aHJlYWQuIEhhbmRsZXMgdGhlIHdoZWVsIGV2ZW50LgogICAgIHZvaWQgaGFuZGxlV2hlZWxF
dmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKTsKIAorICAgIHZvaWQgc2V0TWFpbkZyYW1l
SXNSdWJiZXJCYW5kaW5nKGJvb2wgaXNSdWJiZXJCYW5kaW5nKTsKKyAgICBib29sIGlzUnViYmVy
QmFuZEluUHJvZ3Jlc3MoKTsKKwogICAgIHZvaWQgaW52YWxpZGF0ZSgpOwogICAgIHZvaWQgY29t
bWl0TmV3VHJlZVN0YXRlKFBhc3NPd25QdHI8U2Nyb2xsaW5nU3RhdGVUcmVlPik7CiAKQEAgLTk5
LDYgKzEwMiw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFNjcm9sbGluZ1BlcmZvcm1hbmNlTG9n
Z2luZ0VuYWJsZWQoYm9vbCBmbGFnKTsKICAgICBib29sIHNjcm9sbGluZ1BlcmZvcm1hbmNlTG9n
Z2luZ0VuYWJsZWQoKTsKIAorICAgIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlKiByb290Tm9k
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcm9vdE5vZGUuZ2V0KCk7IH0KKwogcHJpdmF0ZToKICAgICBl
eHBsaWNpdCBTY3JvbGxpbmdUcmVlKFNjcm9sbGluZ0Nvb3JkaW5hdG9yKik7CiAKQEAgLTEyMSw2
ICsxMjYsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9jYW5Hb0ZvcndhcmQ7CiAgICAgYm9vbCBt
X21haW5GcmFtZVBpbm5lZFRvVGhlTGVmdDsKICAgICBib29sIG1fbWFpbkZyYW1lUGlubmVkVG9U
aGVSaWdodDsKKyAgICBib29sIG1fbWFpbkZyYW1lSXNSdWJiZXJCYW5kaW5nOwogCiAgICAgYm9v
bCBtX3Njcm9sbGluZ1BlcmZvcm1hbmNlTG9nZ2luZ0VuYWJsZWQ7CiAgICAgCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5n
Q29vcmRpbmF0b3JNYWMuaAkocmV2aXNpb24gMTQwNDU4KQorKysgU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLmgJKHdvcmtpbmcgY29weSkK
QEAgLTc1LDYgKzc1LDggQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBTdHJpbmcgc2Nyb2xsaW5n
U3RhdGVUcmVlQXNUZXh0KCkgY29uc3QgT1ZFUlJJREU7CiAKKyAgICB2aXJ0dWFsIGJvb2wgaXNS
dWJiZXJCYW5kSW5Qcm9ncmVzcygpIGNvbnN0IE9WRVJSSURFOworCiBwcml2YXRlOgogICAgIC8v
IFJldHVybiB3aGV0aGVyIHRoaXMgc2Nyb2xsaW5nIGNvb3JkaW5hdG9yIGNhbiBrZWVwIGZpeGVk
IHBvc2l0aW9uIGxheWVycyBmaXhlZCB0byB0aGVpcgogICAgIC8vIGNvbnRhaW5lcnMgd2hpbGUg
c2Nyb2xsaW5nLgpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9s
bGluZ0Nvb3JkaW5hdG9yTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29yZGluYXRvck1hYy5tbQkocmV2aXNpb24gMTQwNDU4
KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nvb3JkaW5h
dG9yTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC04OCw2ICs4OCwxMSBAQCBTY3JvbGxpbmdUcmVl
KiBTY3JvbGxpbmdDb29yZGluYXRvck1hYzo6CiAgICAgcmV0dXJuIG1fc2Nyb2xsaW5nVHJlZS5n
ZXQoKTsKIH0KIAorYm9vbCBTY3JvbGxpbmdDb29yZGluYXRvck1hYzo6aXNSdWJiZXJCYW5kSW5Q
cm9ncmVzcygpIGNvbnN0Cit7CisgICAgcmV0dXJuIHNjcm9sbGluZ1RyZWUoKS0+aXNSdWJiZXJC
YW5kSW5Qcm9ncmVzcygpOworfQorCiB2b2lkIFNjcm9sbGluZ0Nvb3JkaW5hdG9yTWFjOjpjb21t
aXRUcmVlU3RhdGVJZk5lZWRlZCgpCiB7CiAgICAgaWYgKCFtX3Njcm9sbGluZ1N0YXRlVHJlZS0+
aGFzQ2hhbmdlZFByb3BlcnRpZXMoKSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL21hYy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZU1hYy5tbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05v
ZGVNYWMubW0JKHJldmlzaW9uIDE0MDQ1OCkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL21hYy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZU1hYy5tbQkod29ya2luZyBjb3B5KQpA
QCAtMTUxLDYgKzE1MSwxMyBAQCBJbnRTaXplIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlTWFj
OjpzCiAgICAgZWxzZSBpZiAoc2Nyb2xsUG9zaXRpb24oKS54KCkgPiBtYXhpbXVtU2Nyb2xsUG9z
aXRpb24oKS54KCkpCiAgICAgICAgIHN0cmV0Y2guc2V0V2lkdGgoc2Nyb2xsUG9zaXRpb24oKS54
KCkgLSBtYXhpbXVtU2Nyb2xsUG9zaXRpb24oKS54KCkpOwogCisgICAgaWYgKHNjcm9sbGluZ1Ry
ZWUoKS0+cm9vdE5vZGUoKSA9PSB0aGlzKSB7CisgICAgICAgIGlmIChzdHJldGNoLmlzWmVybygp
KQorICAgICAgICAgICAgc2Nyb2xsaW5nVHJlZSgpLT5zZXRNYWluRnJhbWVJc1J1YmJlckJhbmRp
bmcoZmFsc2UpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBzY3JvbGxpbmdUcmVlKCktPnNl
dE1haW5GcmFtZUlzUnViYmVyQmFuZGluZyh0cnVlKTsKKyAgICB9CisKICAgICByZXR1cm4gc3Ry
ZXRjaDsKIH0KIApAQCAtMjM1LDYgKzI0Miw4IEBAIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGlu
Z05vZGVNYWM6OnN0b3AKICAgICBpZiAoIW1fc25hcFJ1YmJlcmJhbmRUaW1lcikKICAgICAgICAg
cmV0dXJuOwogCisgICAgc2Nyb2xsaW5nVHJlZSgpLT5zZXRNYWluRnJhbWVJc1J1YmJlckJhbmRp
bmcoZmFsc2UpOworCiAgICAgQ0ZSdW5Mb29wVGltZXJJbnZhbGlkYXRlKG1fc25hcFJ1YmJlcmJh
bmRUaW1lci5nZXQoKSk7CiAgICAgbV9zbmFwUnViYmVyYmFuZFRpbWVyID0gbnVsbHB0cjsKIH0K
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwCShyZXZpc2lvbiAxNDA0
NTgpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNjEyLDExICs2MTIsOCBAQCB2b2lkIFNjcm9sbFZpZXc6OnVwZGF0ZVNjcm9sbGJh
cnMoY29uc3QgCiAgICAgfQogCiAgICAgSW50UG9pbnQgYWRqdXN0ZWRTY3JvbGxQb3NpdGlvbiA9
IEludFBvaW50KGRlc2lyZWRPZmZzZXQpOwotCi0gICAgaWYgKFNjcm9sbEFuaW1hdG9yKiBzY3Jv
bGxBbmltYXRvciA9IGV4aXN0aW5nU2Nyb2xsQW5pbWF0b3IoKSkgewotICAgICAgICBpZiAoIXNj
cm9sbEFuaW1hdG9yLT5pc1J1YmJlckJhbmRJblByb2dyZXNzKCkpCi0gICAgICAgICAgICBhZGp1
c3RlZFNjcm9sbFBvc2l0aW9uID0gYWRqdXN0U2Nyb2xsUG9zaXRpb25XaXRoaW5SYW5nZShhZGp1
c3RlZFNjcm9sbFBvc2l0aW9uKTsKLSAgICB9CisgICAgaWYgKCFpc1J1YmJlckJhbmRJblByb2dy
ZXNzKCkpCisgICAgICAgIGFkanVzdGVkU2Nyb2xsUG9zaXRpb24gPSBhZGp1c3RTY3JvbGxQb3Np
dGlvbldpdGhpblJhbmdlKGFkanVzdGVkU2Nyb2xsUG9zaXRpb24pOwogCiAgICAgaWYgKGFkanVz
dGVkU2Nyb2xsUG9zaXRpb24gIT0gc2Nyb2xsUG9zaXRpb24oKSB8fCBzY3JvbGxPcmlnaW5DaGFu
Z2VkKCkpIHsKICAgICAgICAgU2Nyb2xsYWJsZUFyZWE6OnNjcm9sbFRvT2Zmc2V0V2l0aG91dEFu
aW1hdGlvbihhZGp1c3RlZFNjcm9sbFBvc2l0aW9uICsgSW50U2l6ZShzY3JvbGxPcmlnaW4oKS54
KCksIHNjcm9sbE9yaWdpbigpLnkoKSkpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
U2Nyb2xsYWJsZUFyZWEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9T
Y3JvbGxhYmxlQXJlYS5oCShyZXZpc2lvbiAxNDA0NTgpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9TY3JvbGxhYmxlQXJlYS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNTgsNiArMTU4LDcgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgSW50UmVjdCBzY3JvbGxhYmxlQXJlYUJvdW5kaW5nQm94KCkg
Y29uc3QgPSAwOwogCiAgICAgdmlydHVhbCBib29sIHNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlv
bihTY3JvbGxEaXJlY3Rpb24pIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIGJv
b2wgaXNSdWJiZXJCYW5kSW5Qcm9ncmVzcygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKICAg
ICB2aXJ0dWFsIGJvb2wgc2Nyb2xsQW5pbWF0b3JFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gZmFs
c2U7IH0KIAo=
</data>
<flag name="review"
          id="202765"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>