<?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>145216</bug_id>
          
          <creation_ts>2015-05-20 11:38:48 -0700</creation_ts>
          <short_desc>Scroll-snap points needs to be updated during programmatic scrolls</short_desc>
          <delta_ts>2015-06-18 09:59:57 -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>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=145318</see_also>
          <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="Brent Fulgham">bfulgham</reporter>
          <assigned_to name="Brent Fulgham">bfulgham</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>dino</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1096305</commentid>
    <comment_count>0</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2015-05-20 11:38:48 -0700</bug_when>
    <thetext>When content manually scrolls the view (e.g., &apos;Element.scrollIntoViewIfNeeded()&apos;, &apos;Window.scrollTo&apos;), we need to make sure that we are actively updating our scroll snap state so that we do not try to snap back to a far off snap point once the programmatic scroll completes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1096439</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2015-05-20 18:48:07 -0700</bug_when>
    <thetext>&lt;rdar://problem/21051035&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1096440</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2015-05-20 18:48:31 -0700</bug_when>
    <thetext>&lt;rdar://problem/21051039&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1096443</commentid>
    <comment_count>3</comment_count>
      <attachid>253492</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2015-05-20 18:59:41 -0700</bug_when>
    <thetext>Created attachment 253492
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1096447</commentid>
    <comment_count>4</comment_count>
      <attachid>253492</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2015-05-20 19:06:09 -0700</bug_when>
    <thetext>Comment on attachment 253492
Patch

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

&gt; Source/WebCore/platform/ScrollAnimator.cpp:172
&gt; +    updateActiveScrollSnapIndexForOffset();

I&apos;m worried this might get hit too frequently, but in my tests it only seems to get called from &quot;notifyPositionChanged&quot; coming from Async scrolling notifications, so I think it&apos;s okay.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1096523</commentid>
    <comment_count>5</comment_count>
      <attachid>253492</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2015-05-21 01:33:05 -0700</bug_when>
    <thetext>Comment on attachment 253492
Patch

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

&gt; Source/WebCore/platform/cocoa/ScrollController.mm:730
&gt; +    (void)closestSnapOffset&lt;LayoutUnit, float&gt;(snapState.m_snapOffsets, clampedOffset, 0, activeIndex);

For my own information, why do you need to cast here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1096652</commentid>
    <comment_count>6</comment_count>
      <attachid>253492</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2015-05-21 12:26:27 -0700</bug_when>
    <thetext>Comment on attachment 253492
Patch

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

&gt;&gt; Source/WebCore/platform/cocoa/ScrollController.mm:730
&gt;&gt; +    (void)closestSnapOffset&lt;LayoutUnit, float&gt;(snapState.m_snapOffsets, clampedOffset, 0, activeIndex);
&gt; 
&gt; For my own information, why do you need to cast here?

&apos;closestSnapOffset&apos; returns a LayoutUnit, which I don&apos;t care about. So instead of assigning it to a temporary, and saying (void)temporary (or UNUSED_ALWAYS(blah)) I just do the cast here to tell the compiler that I don&apos;t care about the return value.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1096653</commentid>
    <comment_count>7</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2015-05-21 12:37:57 -0700</bug_when>
    <thetext>Committed r184728: &lt;http://trac.webkit.org/changeset/184728&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>253492</attachid>
            <date>2015-05-20 18:59:41 -0700</date>
            <delta_ts>2015-05-21 01:33:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-145216-20150520185936.patch</filename>
            <type>text/plain</type>
            <size>7862</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4NDY4OSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM0IEBACisyMDE1LTA1LTIwICBCcmVudCBG
dWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIFNjcm9sbC1zbmFwIHBvaW50
cyBuZWVkcyB0byBiZSB1cGRhdGVkIGR1cmluZyBwcm9ncmFtbWF0aWMgc2Nyb2xscworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ1MjE2CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2hlbmV2ZXIgd2UgYWRq
dXN0IHRoZSBjdXJyZW50IHNjcm9sbCBwb3NpdGlvbiwgbWFrZSBzdXJlIHdlIGFsc28gdXBkYXRl
IHRoZSBjdXJyZW50CisgICAgICAgIGFjdGl2ZSBzY3JvbGwgc25hcCBvZmZzZXQgaW5kZXggKGlm
IGFwcGxpY2FibGUpLgorCisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3I6OnNjcm9sbFRvT2Zmc2V0V2l0aG91dEFu
aW1hdGlvbik6IENhbGwgdGhlIG5ldyAndXBkYXRlQWN0aXZlU2Nyb2xsU25hcEluZGV4Rm9yT2Zm
c2V0JworICAgICAgICBtZXRob2QgYWZ0ZXIgbW92aW5nIHRvIGEgbmV3IHBvc2l0aW9uLgorICAg
ICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3I6OnNldEN1cnJlbnRQb3NpdGlvbik6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3I6OnVwZGF0ZUFjdGl2ZVNjcm9sbFNu
YXBJbmRleEZvck9mZnNldCk6IE5ldyBtZXRob2QuIEFza3MgdGhlIHNjcm9sbCBjb250cm9sbGVy
IHRvCisgICAgICAgIGlkZW50aWZ5IHRoZSBjbG9zZXN0IHNjcm9sbCBzbmFwIG9mZnNldCBpbmRl
eC4gSWYgaXQgZmluZHMgc29tZXRoaW5nIHJlbGV2YW50LCB1cGRhdGUgdGhlIFNjcm9sbGFibGVB
cmVhIHN0YXRlCisgICAgICAgIHRvIHRyYWNrIHRoZXNlIG5ldyB2YWx1ZXMuCisgICAgICAgICog
cGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9TY3Jv
bGxDb250cm9sbGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxDb250cm9sbGVyOjphY3Rp
dmVTY3JvbGxTbmFwSW5kZXhEaWRDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQ29u
dHJvbGxlcjo6c2V0U2Nyb2xsU25hcEluZGV4RGlkQ2hhbmdlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9jb2NvYS9TY3JvbGxDb250cm9sbGVyLm1tOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQ29u
dHJvbGxlcjo6c2V0TmVhcmVzdFNjcm9sbFNuYXBJbmRleEZvckF4aXNBbmRPZmZzZXQpOiBBZGRl
ZC4gRmluZCB0aGUgY2xvc2VzdCByZWxldmFudCBzY3JvbGwgc25hcCBvZmZzZXQKKyAgICAgICAg
aW5kZXggZm9yIHRoZSBnaXZlbiBzY3JvbGwgb2Zmc2V0LCBhbmQgdXBkYXRlIHRoZSBpbnRlcm5h
bCBzY3JvbGwgc25hcCBzdGF0ZSB0byByZWZsZWN0IGl0LgorICAgICAgICAoV2ViQ29yZTo6U2Ny
b2xsQ29udHJvbGxlcjo6c2V0QWN0aXZlU2Nyb2xsU25hcEluZGljZXNGb3JPZmZzZXQpOiBHaXZl
biB0aGUgeCBhbmQgeSBvZmZzZXQgZm9yIGEgc2Nyb2xsLAorICAgICAgICBzZXQgdGhlIHJlbGV2
YW50IHNjcm9sbCBzbmFwIG9mZnNldCBpbmRpY2VzLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9T
Y3JvbGxBbmltYXRvck1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yTWFj
OjppbW1lZGlhdGVTY3JvbGxUbyk6IENhbGwgdGhlIG5ldyAndXBkYXRlQWN0aXZlU2Nyb2xsU25h
cEluZGV4Rm9yT2Zmc2V0JyBtZXRob2QKKyAgICAgICAgYWZ0ZXIgbW92aW5nIHRvIGEgbmV3IHBv
c2l0aW9uLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JNYWM6OmltbWVkaWF0ZVNj
cm9sbEJ5KTogRGl0dG8uCisKIDIwMTUtMDUtMjAgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0
ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBbQ29udGVudEV4dGVuc2lvbnNdIFByb3Blcmx5
IGluaXRpYWxpemUgQWN0aW9uS2V5LnN0YXRlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9TY3JvbGxBbmltYXRvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vU2Nyb2xsQW5pbWF0b3IuY3BwCShyZXZpc2lvbiAxODQ2NTApCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgwLDYgKzgw
LDcgQEAgdm9pZCBTY3JvbGxBbmltYXRvcjo6c2Nyb2xsVG9PZmZzZXRXaXRobwogICAgIG1fY3Vy
cmVudFBvc1ggPSBvZmZzZXQueCgpOwogICAgIG1fY3VycmVudFBvc1kgPSBvZmZzZXQueSgpOwog
ICAgIG5vdGlmeVBvc2l0aW9uQ2hhbmdlZChkZWx0YSk7CisgICAgdXBkYXRlQWN0aXZlU2Nyb2xs
U25hcEluZGV4Rm9yT2Zmc2V0KCk7CiB9CiAKICNpZiBFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQKSAm
JiBQTEFURk9STShNQUMpCkBAIC0xNjgsNiArMTY5LDcgQEAgdm9pZCBTY3JvbGxBbmltYXRvcjo6
c2V0Q3VycmVudFBvc2l0aW9uKAogewogICAgIG1fY3VycmVudFBvc1ggPSBwb3NpdGlvbi54KCk7
CiAgICAgbV9jdXJyZW50UG9zWSA9IHBvc2l0aW9uLnkoKTsKKyAgICB1cGRhdGVBY3RpdmVTY3Jv
bGxTbmFwSW5kZXhGb3JPZmZzZXQoKTsKIH0KIAogRmxvYXRQb2ludCBTY3JvbGxBbmltYXRvcjo6
Y3VycmVudFBvc2l0aW9uKCkgY29uc3QKQEAgLTE3NSw2ICsxNzcsMTcgQEAgRmxvYXRQb2ludCBT
Y3JvbGxBbmltYXRvcjo6Y3VycmVudFBvc2l0aQogICAgIHJldHVybiBGbG9hdFBvaW50KG1fY3Vy
cmVudFBvc1gsIG1fY3VycmVudFBvc1kpOwogfQogCit2b2lkIFNjcm9sbEFuaW1hdG9yOjp1cGRh
dGVBY3RpdmVTY3JvbGxTbmFwSW5kZXhGb3JPZmZzZXQoKQoreworI2lmIEVOQUJMRShDU1NfU0NS
T0xMX1NOQVApICYmIFBMQVRGT1JNKE1BQykKKyAgICBtX3Njcm9sbENvbnRyb2xsZXIuc2V0QWN0
aXZlU2Nyb2xsU25hcEluZGljZXNGb3JPZmZzZXQobV9jdXJyZW50UG9zWCwgbV9jdXJyZW50UG9z
WSk7CisgICAgaWYgKG1fc2Nyb2xsQ29udHJvbGxlci5hY3RpdmVTY3JvbGxTbmFwSW5kZXhEaWRD
aGFuZ2UoKSkgeworICAgICAgICBtX3Njcm9sbGFibGVBcmVhLnNldEN1cnJlbnRIb3Jpem9udGFs
U25hcFBvaW50SW5kZXgobV9zY3JvbGxDb250cm9sbGVyLmFjdGl2ZVNjcm9sbFNuYXBJbmRleEZv
ckF4aXMoU2Nyb2xsRXZlbnRBeGlzOjpIb3Jpem9udGFsKSk7CisgICAgICAgIG1fc2Nyb2xsYWJs
ZUFyZWEuc2V0Q3VycmVudFZlcnRpY2FsU25hcFBvaW50SW5kZXgobV9zY3JvbGxDb250cm9sbGVy
LmFjdGl2ZVNjcm9sbFNuYXBJbmRleEZvckF4aXMoU2Nyb2xsRXZlbnRBeGlzOjpWZXJ0aWNhbCkp
OworICAgIH0KKyNlbmRpZgorfQorCiB2b2lkIFNjcm9sbEFuaW1hdG9yOjpub3RpZnlQb3NpdGlv
bkNoYW5nZWQoY29uc3QgRmxvYXRTaXplJiBkZWx0YSkKIHsKICAgICBVTlVTRURfUEFSQU0oZGVs
dGEpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5oCShyZXZp
c2lvbiAxODQ2NTApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xMzcsNiArMTM3LDcgQEAgcHVibGljOgogCiBwcm90ZWN0ZWQ6
CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeVBvc2l0aW9uQ2hhbmdlZChjb25zdCBGbG9hdFNpemUm
IGRlbHRhKTsKKyAgICB2b2lkIHVwZGF0ZUFjdGl2ZVNjcm9sbFNuYXBJbmRleEZvck9mZnNldCgp
OwogCiAgICAgU2Nyb2xsYWJsZUFyZWEmIG1fc2Nyb2xsYWJsZUFyZWE7CiAgICAgUmVmUHRyPFdo
ZWVsRXZlbnRUZXN0VHJpZ2dlcj4gbV93aGVlbEV2ZW50VGVzdFRyaWdnZXI7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250cm9sbGVyLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5oCShyZXZp
c2lvbiAxODQ2NTApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250
cm9sbGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTEyMiw2ICsxMjIsNyBAQCBwdWJsaWM6CiAgICAg
dm9pZCB1cGRhdGVTY3JvbGxTbmFwUG9pbnRzKFNjcm9sbEV2ZW50QXhpcywgY29uc3QgVmVjdG9y
PExheW91dFVuaXQ+Jik7CiAgICAgdW5zaWduZWQgYWN0aXZlU2Nyb2xsU25hcEluZGV4Rm9yQXhp
cyhTY3JvbGxFdmVudEF4aXMpIGNvbnN0OwogICAgIHZvaWQgc2V0QWN0aXZlU2Nyb2xsU25hcElu
ZGV4Rm9yQXhpcyhTY3JvbGxFdmVudEF4aXMsIHVuc2lnbmVkKTsKKyAgICB2b2lkIHNldEFjdGl2
ZVNjcm9sbFNuYXBJbmRpY2VzRm9yT2Zmc2V0KGludCB4LCBpbnQgeSk7CiAgICAgYm9vbCBhY3Rp
dmVTY3JvbGxTbmFwSW5kZXhEaWRDaGFuZ2UoKSBjb25zdCB7IHJldHVybiBtX2FjdGl2ZVNjcm9s
bFNuYXBJbmRleERpZENoYW5nZTsgfQogICAgIHZvaWQgc2V0U2Nyb2xsU25hcEluZGV4RGlkQ2hh
bmdlKGJvb2wgc3RhdGUpIHsgbV9hY3RpdmVTY3JvbGxTbmFwSW5kZXhEaWRDaGFuZ2UgPSBzdGF0
ZTsgfQogICAgIGJvb2wgaGFzQWN0aXZlU2Nyb2xsU25hcFRpbWVyRm9yQXhpcyhTY3JvbGxFdmVu
dEF4aXMpIGNvbnN0OwpAQCAtMTQ0LDYgKzE0NSw3IEBAIHByaXZhdGU6CiAgICAgTGF5b3V0VW5p
dCBzY3JvbGxPZmZzZXRPbkF4aXMoU2Nyb2xsRXZlbnRBeGlzKSBjb25zdDsKICAgICB2b2lkIHBy
b2Nlc3NXaGVlbEV2ZW50Rm9yU2Nyb2xsU25hcE9uQXhpcyhTY3JvbGxFdmVudEF4aXMsIGNvbnN0
IFBsYXRmb3JtV2hlZWxFdmVudCYpOwogICAgIGJvb2wgc2hvdWxkT3ZlcnJpZGVXaGVlbEV2ZW50
KFNjcm9sbEV2ZW50QXhpcywgY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JikgY29uc3Q7CisgICAg
dm9pZCBzZXROZWFyZXN0U2Nyb2xsU25hcEluZGV4Rm9yQXhpc0FuZE9mZnNldChTY3JvbGxFdmVu
dEF4aXMsIGludCk7CiAKICAgICB2b2lkIGJlZ2luU2Nyb2xsU25hcEFuaW1hdGlvbihTY3JvbGxF
dmVudEF4aXMsIFNjcm9sbFNuYXBTdGF0ZSk7CiAgICAgdm9pZCBzY3JvbGxTbmFwQW5pbWF0aW9u
VXBkYXRlKFNjcm9sbEV2ZW50QXhpcyk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
b2NvYS9TY3JvbGxDb250cm9sbGVyLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2NvY29hL1Njcm9sbENvbnRyb2xsZXIubW0JKHJldmlzaW9uIDE4NDY1MCkKKysrIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Njcm9sbENvbnRyb2xsZXIubW0JKHdvcmtpbmcg
Y29weSkKQEAgLTcxOSw2ICs3MTksMzEgQEAgdm9pZCBTY3JvbGxDb250cm9sbGVyOjpzZXRBY3Rp
dmVTY3JvbGxTbgogICAgIHNuYXBTdGF0ZS0+bV9hY3RpdmVTbmFwSW5kZXggPSBpbmRleDsKIH0K
IAordm9pZCBTY3JvbGxDb250cm9sbGVyOjpzZXROZWFyZXN0U2Nyb2xsU25hcEluZGV4Rm9yQXhp
c0FuZE9mZnNldChTY3JvbGxFdmVudEF4aXMgYXhpcywgaW50IG9mZnNldCkKK3sKKyAgICBmbG9h
dCBzY2FsZUZhY3RvciA9IG1fY2xpZW50LnBhZ2VTY2FsZUZhY3RvcigpOworICAgIFNjcm9sbFNu
YXBBbmltYXRvclN0YXRlJiBzbmFwU3RhdGUgPSBzY3JvbGxTbmFwUG9pbnRTdGF0ZShheGlzKTsK
KyAgICAKKyAgICBMYXlvdXRVbml0IGNsYW1wZWRPZmZzZXQgPSBzdGQ6Om1pbihzdGQ6Om1heChM
YXlvdXRVbml0KG9mZnNldCAvIHNjYWxlRmFjdG9yKSwgc25hcFN0YXRlLm1fc25hcE9mZnNldHMu
Zmlyc3QoKSksIHNuYXBTdGF0ZS5tX3NuYXBPZmZzZXRzLmxhc3QoKSk7CisKKyAgICB1bnNpZ25l
ZCBhY3RpdmVJbmRleCA9IDA7CisgICAgKHZvaWQpY2xvc2VzdFNuYXBPZmZzZXQ8TGF5b3V0VW5p
dCwgZmxvYXQ+KHNuYXBTdGF0ZS5tX3NuYXBPZmZzZXRzLCBjbGFtcGVkT2Zmc2V0LCAwLCBhY3Rp
dmVJbmRleCk7CisKKyAgICBpZiAoYWN0aXZlSW5kZXggPT0gc25hcFN0YXRlLm1fYWN0aXZlU25h
cEluZGV4KQorICAgICAgICByZXR1cm47CisKKyAgICBtX2FjdGl2ZVNjcm9sbFNuYXBJbmRleERp
ZENoYW5nZSA9IHRydWU7CisgICAgc25hcFN0YXRlLm1fYWN0aXZlU25hcEluZGV4ID0gYWN0aXZl
SW5kZXg7Cit9CisKK3ZvaWQgU2Nyb2xsQ29udHJvbGxlcjo6c2V0QWN0aXZlU2Nyb2xsU25hcElu
ZGljZXNGb3JPZmZzZXQoaW50IHgsIGludCB5KQoreworICAgIGlmIChtX2hvcml6b250YWxTY3Jv
bGxTbmFwU3RhdGUpCisgICAgICAgIHNldE5lYXJlc3RTY3JvbGxTbmFwSW5kZXhGb3JBeGlzQW5k
T2Zmc2V0KFNjcm9sbEV2ZW50QXhpczo6SG9yaXpvbnRhbCwgeCk7CisgICAgaWYgKG1fdmVydGlj
YWxTY3JvbGxTbmFwU3RhdGUpCisgICAgICAgIHNldE5lYXJlc3RTY3JvbGxTbmFwSW5kZXhGb3JB
eGlzQW5kT2Zmc2V0KFNjcm9sbEV2ZW50QXhpczo6VmVydGljYWwsIHkpOworfQorCiB2b2lkIFNj
cm9sbENvbnRyb2xsZXI6OmJlZ2luU2Nyb2xsU25hcEFuaW1hdGlvbihTY3JvbGxFdmVudEF4aXMg
YXhpcywgU2Nyb2xsU25hcFN0YXRlIG5ld1N0YXRlKQogewogICAgIEFTU0VSVChuZXdTdGF0ZSA9
PSBTY3JvbGxTbmFwU3RhdGU6OkdsaWRpbmcgfHwgbmV3U3RhdGUgPT0gU2Nyb2xsU25hcFN0YXRl
OjpTbmFwcGluZyk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5p
bWF0b3JNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Nj
cm9sbEFuaW1hdG9yTWFjLm1tCShyZXZpc2lvbiAxODQ2NTApCisrKyBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTc1OCw2
ICs3NTgsNyBAQCB2b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjppbW1lZGlhdGVTY3JvbGxUCiAgICAg
bV9jdXJyZW50UG9zWCA9IGFkanVzdGVkUG9zaXRpb24ueCgpOwogICAgIG1fY3VycmVudFBvc1kg
PSBhZGp1c3RlZFBvc2l0aW9uLnkoKTsKICAgICBub3RpZnlQb3NpdGlvbkNoYW5nZWQoZGVsdGEp
OworICAgIHVwZGF0ZUFjdGl2ZVNjcm9sbFNuYXBJbmRleEZvck9mZnNldCgpOwogfQogCiBib29s
IFNjcm9sbEFuaW1hdG9yTWFjOjppc1J1YmJlckJhbmRJblByb2dyZXNzKCkgY29uc3QKQEAgLTEy
NzgsNiArMTI3OSw3IEBAIHZvaWQgU2Nyb2xsQW5pbWF0b3JNYWM6OmltbWVkaWF0ZVNjcm9sbEIK
ICAgICBtX2N1cnJlbnRQb3NYID0gbmV3UG9zLngoKTsKICAgICBtX2N1cnJlbnRQb3NZID0gbmV3
UG9zLnkoKTsKICAgICBub3RpZnlQb3NpdGlvbkNoYW5nZWQoYWRqdXN0ZWREZWx0YSk7CisgICAg
dXBkYXRlQWN0aXZlU2Nyb2xsU25hcEluZGV4Rm9yT2Zmc2V0KCk7CiB9CiAjZW5kaWYKIAo=
</data>
<flag name="review"
          id="278414"
          type_id="1"
          status="+"
          setter="dino"
    />
          </attachment>
      

    </bug>

</bugzilla>