<?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>88475</bug_id>
          
          <creation_ts>2012-06-06 17:36:20 -0700</creation_ts>
          <short_desc>Optimize FrameView::scrollXForFixedPosition() / scrollYForFixedPosition()</short_desc>
          <delta_ts>2012-06-07 14:10:59 -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>New Bugs</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="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>eric</cc>
    
    <cc>koivisto</cc>
    
    <cc>mitz</cc>
    
    <cc>psolanki</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>643009</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-06-06 17:36:20 -0700</bug_when>
    <thetext>Optimize FrameView::scrollXForFixedPosition() / scrollYForFixedPosition()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>643014</commentid>
    <comment_count>1</comment_count>
      <attachid>146160</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-06-06 17:44:07 -0700</bug_when>
    <thetext>Created attachment 146160
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>643019</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2012-06-06 17:48:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/11612205&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>643036</commentid>
    <comment_count>3</comment_count>
      <attachid>146160</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2012-06-06 18:14:05 -0700</bug_when>
    <thetext>Comment on attachment 146160
Patch

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

&gt; Source/WebCore/rendering/RenderLayer.h:114
&gt; +    void move(LayoutSize size) { m_rect.move(size); }

This should probably be passed as a const&amp; ref.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>643050</commentid>
    <comment_count>4</comment_count>
      <attachid>146160</attachid>
    <who name="Pratik Solanki">psolanki</who>
    <bug_when>2012-06-06 18:25:03 -0700</bug_when>
    <thetext>Comment on attachment 146160
Patch

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

&gt; Source/WebCore/page/FrameView.h:204
&gt; -    int scrollXForFixedPosition() const;
&gt; -    int scrollYForFixedPosition() const;
&gt; +    int scrollXForFixedPosition() const { return scrollOffsetForFixedPosition().width(); }
&gt; +    int scrollYForFixedPosition() const { return scrollOffsetForFixedPosition().height(); }

Best to just remove scrollXForFixedPosition() and scrollYForFixedPosition() so no one does something like IntSize(scrollXForFixedPosition(), scrollYForFixedPosition()) in the future.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>643054</commentid>
    <comment_count>5</comment_count>
      <attachid>146160</attachid>
    <who name="Pratik Solanki">psolanki</who>
    <bug_when>2012-06-06 18:27:26 -0700</bug_when>
    <thetext>Comment on attachment 146160
Patch

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

&gt;&gt; Source/WebCore/page/FrameView.h:204
&gt;&gt; +    int scrollYForFixedPosition() const { return scrollOffsetForFixedPosition().height(); }
&gt; 
&gt; Best to just remove scrollXForFixedPosition() and scrollYForFixedPosition() so no one does something like IntSize(scrollXForFixedPosition(), scrollYForFixedPosition()) in the future.

And if you do remove them, delete the functions from WebCore.order file as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>643060</commentid>
    <comment_count>6</comment_count>
    <who name="">mitz</who>
    <bug_when>2012-06-06 18:36:13 -0700</bug_when>
    <thetext>(In reply to comment #5)

&gt; And if you do remove them, delete the functions from WebCore.order file as well.

We usually leave the order file alone when making code changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>643696</commentid>
    <comment_count>7</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-06-07 10:57:22 -0700</bug_when>
    <thetext>I removed them.
http://trac.webkit.org/changeset/119736</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>643891</commentid>
    <comment_count>8</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2012-06-07 14:10:59 -0700</bug_when>
    <thetext>We should probably cache the platform scroll position so that it is queried only once during a single layout/style recalc.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>146160</attachid>
            <date>2012-06-06 17:44:07 -0700</date>
            <delta_ts>2012-06-06 18:27:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88475-20120606174406.patch</filename>
            <type>text/plain</type>
            <size>12076</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5NTI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDRkODQ1YzJlODJmZGUw
MDhmNDZhYzQ4ZmIxZjU0NGM3ZWQ1ZWE3OS4uZTkyNWQ5YTNiNDlmZDg4Y2VkMTE1OWRiYmFhMWJh
NDA1OGUzOWEwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDEyLTA2LTA2ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIE9wdGltaXplIEZy
YW1lVmlldzo6c2Nyb2xsWEZvckZpeGVkUG9zaXRpb24oKSAvIHNjcm9sbFlGb3JGaXhlZFBvc2l0
aW9uKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg4
NDc1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAg
ICAgICBGcmFtZVZpZXcncyBzY3JvbGxYRm9yRml4ZWRQb3NpdGlvbigpIGFuZCBzY3JvbGxZRm9y
Rml4ZWRQb3NpdGlvbigpCisgICAgICAgIG1ldGhvZHMgd2VyZSBvZnRlbiBjYWxsZWQgdG9nZXRo
ZXIsIGJ1dCB0aGV5IGRvIGR1cGxpY2F0ZSB3b3JrLAorICAgICAgICBpbmNsdWRpbmcgY2FsbGlu
ZyBpbnRvIHBsYXRmb3JtIHdpZGdldCBjb2RlIHdoaWNoIG1pZ2h0IGJlIHNsb3cuCisgICAgICAg
IAorICAgICAgICBGaXggYnkgY29udmVydGluZyBzY3JvbGxPZmZzZXRGb3JGaXhlZFBvc2l0aW9u
KCkgZnJvbSBiZWluZyBhIHdyYXBwZXIKKyAgICAgICAgdGhhdCBqdXN0IGNhbGxzIHNjcm9sbFhG
b3JGaXhlZFBvc2l0aW9uKCkgYW5kIHNjcm9sbFlGb3JGaXhlZFBvc2l0aW9uKCkKKyAgICAgICAg
dG8gdGhlIG1ldGhvZCB0aGF0IGRvZXMgYWxsIHRoZSB3b3JrLCBjYWxsaW5nIGp1c3Qgb25jZSBp
bnRvIHBsYXRmb3JtCisgICAgICAgIHdpZGdldCBjb2RlLgorICAgICAgICAKKyAgICAgICAgQ2hh
bmdlZCBjYWxsZXJzIHRvIHVzZSBzY3JvbGxPZmZzZXRGb3JGaXhlZFBvc2l0aW9uKCkgcmF0aGVy
IHRoYW4gbWFrZQorICAgICAgICB0d28gc2VwYXJhdGUgbWV0aG9kIGNhbGxzLgorICAgICAgICAK
KyAgICAgICAgQWRkZWQgU2Nyb2xsVmlldzo6bGF5b3V0U2l6ZSgpIGFuZCB2aXNpYmxlU2l6ZSgp
IG1ldGhvZHMgZm9yCisgICAgICAgIGNvbnZlbmllbmNlLgorCisgICAgICAgIE5vIG5ldyB0ZXN0
czsgcmVmYWN0b3Jpbmcgb25seS4KKworICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OmZpeGVkUG9zaXRpb25TY3JvbGxPZmZzZXQpOgorICAgICAgICAoV2Vi
Q29yZTo6RnJhbWVWaWV3OjpzY3JvbGxPZmZzZXRGb3JGaXhlZFBvc2l0aW9uKToKKyAgICAgICAg
KiBwYWdlL0ZyYW1lVmlldy5oOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpzY3JvbGxY
Rm9yRml4ZWRQb3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnNjcm9sbFlG
b3JGaXhlZFBvc2l0aW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OmxheW91dFNpemUpOgorICAgICAgICAqIHBsYXRm
b3JtL1Njcm9sbFZpZXcuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OnZpc2libGVT
aXplKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyTGF5ZXI6OmJhY2tncm91bmRDbGlwUmVjdCk6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlckxheWVyLmg6CisgICAgICAgIChXZWJDb3JlOjpDbGlwUmVjdDo6bW92ZSk6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OnJlcXVpcmVzQ29tcG9zaXRpbmdGb3JQb3Np
dGlvbik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyVmlldzo6Y29tcHV0ZVJlY3RGb3JSZXBhaW50KToKKwogMjAxMi0wNi0wNSAg
U2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBBdm9pZCBj
cmVhdGluZyBjb21wb3NpdGluZyBsYXllcnMgZm9yIHByZXNlcnZlLTNkIHdpdGhvdXQgdHJhbnNm
b3JtZWQgZGVzY2VuZGFudHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVW
aWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRleCBiMTAzOTJi
NmM0ZjM3ZTcyZTRjMjRiYjVlYmU3MmViMDJhYWM1NWIyLi5mNGNiOGI5ZDFkYWM1Zjg0MTEzZWUx
OTE5NzllZjQxZWRjNmFlMDg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
Vmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBAIC0xMzcy
LDc0ICsxMzcyLDQ1IEBAIHZvaWQgRnJhbWVWaWV3OjpyZW1vdmVGaXhlZE9iamVjdCgpCiAgICAg
fQogfQogCi1pbnQgRnJhbWVWaWV3OjpzY3JvbGxYRm9yRml4ZWRQb3NpdGlvbigpIGNvbnN0Citz
dGF0aWMgaW50IGZpeGVkUG9zaXRpb25TY3JvbGxPZmZzZXQoaW50IHNjcm9sbFBvc2l0aW9uLCBp
bnQgbWF4VmFsdWUsIGludCBzY3JvbGxPcmlnaW4sIGZsb2F0IGRyYWdGYWN0b3IpCiB7Ci0gICAg
aW50IHZpc2libGVDb250ZW50V2lkdGggPSB2aXNpYmxlQ29udGVudFJlY3QoKS53aWR0aCgpOwot
ICAgIGludCBtYXhYID0gY29udGVudHNXaWR0aCgpIC0gdmlzaWJsZUNvbnRlbnRXaWR0aDsKLQot
ICAgIGlmIChtYXhYID09IDApCisgICAgaWYgKCFtYXhWYWx1ZSkKICAgICAgICAgcmV0dXJuIDA7
CiAKLSAgICBpbnQgeCA9IHNjcm9sbFgoKTsKLQotICAgIGlmICghc2Nyb2xsT3JpZ2luKCkueCgp
KSB7Ci0gICAgICAgIGlmICh4IDwgMCkKLSAgICAgICAgICAgIHggPSAwOwotICAgICAgICBlbHNl
IGlmICh4ID4gbWF4WCkKLSAgICAgICAgICAgIHggPSBtYXhYOworICAgIGlmICghc2Nyb2xsT3Jp
Z2luKSB7CisgICAgICAgIGlmIChzY3JvbGxQb3NpdGlvbiA8IDApCisgICAgICAgICAgICBzY3Jv
bGxQb3NpdGlvbiA9IDA7CisgICAgICAgIGVsc2UgaWYgKHNjcm9sbFBvc2l0aW9uID4gbWF4VmFs
dWUpCisgICAgICAgICAgICBzY3JvbGxQb3NpdGlvbiA9IG1heFZhbHVlOwogICAgIH0gZWxzZSB7
Ci0gICAgICAgIGlmICh4ID4gMCkKLSAgICAgICAgICAgIHggPSAwOwotICAgICAgICBlbHNlIGlm
ICh4IDwgLW1heFgpCi0gICAgICAgICAgICB4ID0gLW1heFg7CisgICAgICAgIGlmIChzY3JvbGxQ
b3NpdGlvbiA+IDApCisgICAgICAgICAgICBzY3JvbGxQb3NpdGlvbiA9IDA7CisgICAgICAgIGVs
c2UgaWYgKHNjcm9sbFBvc2l0aW9uIDwgLW1heFZhbHVlKQorICAgICAgICAgICAgc2Nyb2xsUG9z
aXRpb24gPSAtbWF4VmFsdWU7CiAgICAgfQotCi0gICAgaWYgKCFtX2ZyYW1lKQotICAgICAgICBy
ZXR1cm4geDsKLQotICAgIGZsb2F0IGZyYW1lU2NhbGVGYWN0b3IgPSBtX2ZyYW1lLT5mcmFtZVNj
YWxlRmFjdG9yKCk7Ci0KLSAgICAvLyBXaGVuIHRoZSBwYWdlIGlzIHNjYWxlZCwgdGhlIHNjYWxl
ZCAidmlld3BvcnQiIHdpdGggcmVzcGVjdCB0byB3aGljaCBmaXhlZCBvYmplY3QgYXJlIHBvc2l0
aW9uZWQKLSAgICAvLyBkb2Vzbid0IG1vdmUgYXMgZmFzdCBhcyB0aGUgY29udGVudCB2aWV3LCBz
byB0aGF0IHdoZW4gdGhlIGNvbnRlbnQgaXMgc2Nyb2xsZWQgYWxsIHRoZSB3YXkgdG8gdGhlCi0g
ICAgLy8gZW5kLCB0aGUgYm90dG9tIG9mIHRoZSBzY2FsZWQgInZpZXdwb3J0IiB0b3VjaGVzIHRo
ZSBib3R0b20gb2YgdGhlIHJlYWwgdmlld3BvcnQuCi0gICAgZmxvYXQgZHJhZ0ZhY3RvciA9IGZp
eGVkRWxlbWVudHNMYXlvdXRSZWxhdGl2ZVRvRnJhbWUoKSA/IDEgOiAoY29udGVudHNXaWR0aCgp
IC0gdmlzaWJsZUNvbnRlbnRXaWR0aCAqIGZyYW1lU2NhbGVGYWN0b3IpIC8gbWF4WDsKLQotICAg
IHJldHVybiB4ICogZHJhZ0ZhY3RvciAvIGZyYW1lU2NhbGVGYWN0b3I7CisgICAgCisgICAgcmV0
dXJuIHNjcm9sbFBvc2l0aW9uICogZHJhZ0ZhY3RvcjsKIH0KIAotaW50IEZyYW1lVmlldzo6c2Ny
b2xsWUZvckZpeGVkUG9zaXRpb24oKSBjb25zdAorSW50U2l6ZSBGcmFtZVZpZXc6OnNjcm9sbE9m
ZnNldEZvckZpeGVkUG9zaXRpb24oKSBjb25zdAogewotICAgIGludCB2aXNpYmxlQ29udGVudEhl
aWdodCA9IHZpc2libGVDb250ZW50UmVjdCgpLmhlaWdodCgpOwotCi0gICAgaW50IG1heFkgPSBj
b250ZW50c0hlaWdodCgpIC0gdmlzaWJsZUNvbnRlbnRIZWlnaHQ7Ci0gICAgaWYgKG1heFkgPT0g
MCkKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICBpbnQgeSA9IHNjcm9sbFkoKTsKLQotICAgIGlm
ICghc2Nyb2xsT3JpZ2luKCkueSgpKSB7Ci0gICAgICAgIGlmICh5IDwgMCkKLSAgICAgICAgICAg
IHkgPSAwOwotICAgICAgICBlbHNlIGlmICh5ID4gbWF4WSkKLSAgICAgICAgICAgIHkgPSBtYXhZ
OwotICAgIH0gZWxzZSB7Ci0gICAgICAgIGlmICh5ID4gMCkKLSAgICAgICAgICAgIHkgPSAwOwot
ICAgICAgICBlbHNlIGlmICh5IDwgLW1heFkpCi0gICAgICAgICAgICB5ID0gLW1heFk7Ci0gICAg
fQorICAgIEludFJlY3QgdmlzaWJsZUNvbnRlbnRSZWN0ID0gdGhpcy0+dmlzaWJsZUNvbnRlbnRS
ZWN0KCk7CisgICAgSW50U2l6ZSBjb250ZW50c1NpemUgPSB0aGlzLT5jb250ZW50c1NpemUoKTsK
KyAgICBJbnRQb2ludCBzY3JvbGxQb3NpdGlvbiA9IHRoaXMtPnNjcm9sbFBvc2l0aW9uKCk7Cisg
ICAgSW50UG9pbnQgc2Nyb2xsT3JpZ2luID0gdGhpcy0+c2Nyb2xsT3JpZ2luKCk7CisgICAgCisg
ICAgSW50U2l6ZSBtYXhPZmZzZXQoY29udGVudHNTaXplLndpZHRoKCkgLSB2aXNpYmxlQ29udGVu
dFJlY3Qud2lkdGgoKSwgY29udGVudHNTaXplLmhlaWdodCgpIC0gdmlzaWJsZUNvbnRlbnRSZWN0
LmhlaWdodCgpKTsKKyAgICAKKyAgICBmbG9hdCBmcmFtZVNjYWxlRmFjdG9yID0gbV9mcmFtZSA/
IG1fZnJhbWUtPmZyYW1lU2NhbGVGYWN0b3IoKSA6IDE7CiAKLSAgICBpZiAoIW1fZnJhbWUpCi0g
ICAgICAgIHJldHVybiB5OworICAgIEZsb2F0U2l6ZSBkcmFnRmFjdG9yID0gZml4ZWRFbGVtZW50
c0xheW91dFJlbGF0aXZlVG9GcmFtZSgpID8gRmxvYXRTaXplKDEsIDEpIDogRmxvYXRTaXplKAor
ICAgICAgICAoY29udGVudHNTaXplLndpZHRoKCkgLSB2aXNpYmxlQ29udGVudFJlY3Qud2lkdGgo
KSAqIGZyYW1lU2NhbGVGYWN0b3IpIC8gbWF4T2Zmc2V0LndpZHRoKCksCisgICAgICAgIChjb250
ZW50c1NpemUuaGVpZ2h0KCkgLSB2aXNpYmxlQ29udGVudFJlY3QuaGVpZ2h0KCkgKiBmcmFtZVNj
YWxlRmFjdG9yKSAvIG1heE9mZnNldC5oZWlnaHQoKSk7CiAKLSAgICBmbG9hdCBmcmFtZVNjYWxl
RmFjdG9yID0gbV9mcmFtZS0+ZnJhbWVTY2FsZUZhY3RvcigpOwotICAgIGZsb2F0IGRyYWdGYWN0
b3IgPSBmaXhlZEVsZW1lbnRzTGF5b3V0UmVsYXRpdmVUb0ZyYW1lKCkgPyAxIDogKGNvbnRlbnRz
SGVpZ2h0KCkgLSB2aXNpYmxlQ29udGVudEhlaWdodCAqIGZyYW1lU2NhbGVGYWN0b3IpIC8gbWF4
WTsKLSAgICByZXR1cm4geSAqIGRyYWdGYWN0b3IgLyBmcmFtZVNjYWxlRmFjdG9yOwotfQorICAg
IGludCB4ID0gZml4ZWRQb3NpdGlvblNjcm9sbE9mZnNldChzY3JvbGxQb3NpdGlvbi54KCksIG1h
eE9mZnNldC53aWR0aCgpLCBzY3JvbGxPcmlnaW4ueCgpLCBkcmFnRmFjdG9yLndpZHRoKCkgLyBm
cmFtZVNjYWxlRmFjdG9yKTsKKyAgICBpbnQgeSA9IGZpeGVkUG9zaXRpb25TY3JvbGxPZmZzZXQo
c2Nyb2xsUG9zaXRpb24ueSgpLCBtYXhPZmZzZXQuaGVpZ2h0KCksIHNjcm9sbE9yaWdpbi55KCks
IGRyYWdGYWN0b3IuaGVpZ2h0KCkgLyBmcmFtZVNjYWxlRmFjdG9yKTsKIAotSW50U2l6ZSBGcmFt
ZVZpZXc6OnNjcm9sbE9mZnNldEZvckZpeGVkUG9zaXRpb24oKSBjb25zdAotewotICAgIHJldHVy
biBJbnRTaXplKHNjcm9sbFhGb3JGaXhlZFBvc2l0aW9uKCksIHNjcm9sbFlGb3JGaXhlZFBvc2l0
aW9uKCkpOworICAgIHJldHVybiBJbnRTaXplKHgsIHkpOwogfQogCiBib29sIEZyYW1lVmlldzo6
Zml4ZWRFbGVtZW50c0xheW91dFJlbGF0aXZlVG9GcmFtZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFt
ZVZpZXcuaAppbmRleCAyNWQ5NjJiNzNkOTBhNDNlMTMyM2ZkY2Y5OTRiYjI3MzQxMWNiMGE2Li44
NzgyMzAxNjU5ODFjMjNmNDEyMGQzOTlmMWI2Y2RhODk3M2ZlOWU5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJh
bWVWaWV3LmgKQEAgLTIwMCw4ICsyMDAsOCBAQCBwdWJsaWM6CiAKICAgICAvLyBGdW5jdGlvbnMg
Zm9yIHF1ZXJ5aW5nIHRoZSBjdXJyZW50IHNjcm9sbGVkIHBvc2l0aW9uLCBuZWdhdGluZyB0aGUg
ZWZmZWN0cyBvZiBvdmVyaGFuZwogICAgIC8vIGFuZCBhZGp1c3RpbmcgZm9yIHBhZ2Ugc2NhbGUu
Ci0gICAgaW50IHNjcm9sbFhGb3JGaXhlZFBvc2l0aW9uKCkgY29uc3Q7Ci0gICAgaW50IHNjcm9s
bFlGb3JGaXhlZFBvc2l0aW9uKCkgY29uc3Q7CisgICAgaW50IHNjcm9sbFhGb3JGaXhlZFBvc2l0
aW9uKCkgY29uc3QgeyByZXR1cm4gc2Nyb2xsT2Zmc2V0Rm9yRml4ZWRQb3NpdGlvbigpLndpZHRo
KCk7IH0KKyAgICBpbnQgc2Nyb2xsWUZvckZpeGVkUG9zaXRpb24oKSBjb25zdCB7IHJldHVybiBz
Y3JvbGxPZmZzZXRGb3JGaXhlZFBvc2l0aW9uKCkuaGVpZ2h0KCk7IH0KICAgICBJbnRTaXplIHNj
cm9sbE9mZnNldEZvckZpeGVkUG9zaXRpb24oKSBjb25zdDsKIAogICAgIGJvb2wgZml4ZWRFbGVt
ZW50c0xheW91dFJlbGF0aXZlVG9GcmFtZSgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9T
Y3JvbGxWaWV3LmNwcAppbmRleCBhOGZlNWFiZTA5OTlkOTViMDg4NWE1NTQ5OTUxY2UwZTBmN2I4
OWRjLi45NGVlM2Y5YzMxM2JjNWE1YTE5YzVmNDQ3YTNlNzg0M2I4YTA4Mjg0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcApAQCAtMjUyLDYgKzI1MiwxMSBAQCBJbnRSZWN0
IFNjcm9sbFZpZXc6OnZpc2libGVDb250ZW50UmVjdChib29sIGluY2x1ZGVTY3JvbGxiYXJzKSBj
b25zdAogfQogI2VuZGlmCiAKK0ludFNpemUgU2Nyb2xsVmlldzo6bGF5b3V0U2l6ZSgpIGNvbnN0
Cit7CisgICAgcmV0dXJuIG1fZml4ZWRMYXlvdXRTaXplLmlzRW1wdHkoKSB8fCAhbV91c2VGaXhl
ZExheW91dCA/IHZpc2libGVTaXplKCkgOiBtX2ZpeGVkTGF5b3V0U2l6ZTsKK30KKwogaW50IFNj
cm9sbFZpZXc6OmxheW91dFdpZHRoKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9maXhlZExheW91
dFNpemUuaXNFbXB0eSgpIHx8ICFtX3VzZUZpeGVkTGF5b3V0ID8gdmlzaWJsZVdpZHRoKCkgOiBt
X2ZpeGVkTGF5b3V0U2l6ZS53aWR0aCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vU2Nyb2xsVmlldy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5o
CmluZGV4IDA3ZmZiM2YyMTAzMDg5NzNjZGI3MWEyM2U1ZDg2YjQ0ZGIwN2VkZmQuLjgxYTU2YjI1
MWNlZDU0ZTA4MmE4NmU2OWIzNGI0NjZiNGQxNjliN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9T
Y3JvbGxWaWV3LmgKQEAgLTE0NiwxMSArMTQ2LDEzIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIElu
dFJlY3QgdmlzaWJsZUNvbnRlbnRSZWN0KGJvb2wgaW5jbHVkZVNjcm9sbGJhcnMgPSBmYWxzZSkg
Y29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHNldEZpeGVkVmlzaWJsZUNvbnRlbnRSZWN0KGNvbnN0
IEludFJlY3QmIHZpc2libGVDb250ZW50UmVjdCkgeyBtX2ZpeGVkVmlzaWJsZUNvbnRlbnRSZWN0
ID0gdmlzaWJsZUNvbnRlbnRSZWN0OyB9CiAgICAgSW50UmVjdCBmaXhlZFZpc2libGVDb250ZW50
UmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fZml4ZWRWaXNpYmxlQ29udGVudFJlY3Q7IH0KKyAgICBJ
bnRTaXplIHZpc2libGVTaXplKCkgY29uc3QgeyByZXR1cm4gdmlzaWJsZUNvbnRlbnRSZWN0KCku
c2l6ZSgpOyB9CiAgICAgaW50IHZpc2libGVXaWR0aCgpIGNvbnN0IHsgcmV0dXJuIHZpc2libGVD
b250ZW50UmVjdCgpLndpZHRoKCk7IH0KICAgICBpbnQgdmlzaWJsZUhlaWdodCgpIGNvbnN0IHsg
cmV0dXJuIHZpc2libGVDb250ZW50UmVjdCgpLmhlaWdodCgpOyB9CiAKICAgICAvLyBGdW5jdGlv
bnMgZm9yIGdldHRpbmcvc2V0dGluZyB0aGUgc2l6ZSB3ZWJraXQgc2hvdWxkIHVzZSB0byBsYXlv
dXQgdGhlIGNvbnRlbnRzLiBCeSBkZWZhdWx0IHRoaXMgaXMgdGhlIHNhbWUgYXMgdGhlIHZpc2li
bGUKICAgICAvLyBjb250ZW50IHNpemUuIEV4cGxpY2l0bHkgc2V0dGluZyBhIGxheW91dCBzaXpl
IHZhbHVlIHdpbGwgY2F1c2Ugd2Via2l0IHRvIGxheW91dCB0aGUgY29udGVudHMgdXNpbmcgdGhp
cyBzaXplIGluc3RlYWQuCisgICAgSW50U2l6ZSBsYXlvdXRTaXplKCkgY29uc3Q7CiAgICAgaW50
IGxheW91dFdpZHRoKCkgY29uc3Q7CiAgICAgaW50IGxheW91dEhlaWdodCgpIGNvbnN0OwogICAg
IEludFNpemUgZml4ZWRMYXlvdXRTaXplKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyLmNwcAppbmRleCA5ZTc4NWY3NzFlNGZmYzg1ZjQ4NzMzMjNhN2ZlODgxYjZj
YjgzMDkwLi4xODljMmFkNjk5ODJiOGU5ZWUxZmI4ZGI4OTZlODdkZjllYThiMGJkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKQEAgLTM5MDAsNyArMzkwMCw3IEBA
IENsaXBSZWN0IFJlbmRlckxheWVyOjpiYWNrZ3JvdW5kQ2xpcFJlY3QoY29uc3QgUmVuZGVyTGF5
ZXIqIHJvb3RMYXllciwgUmVuZGVyUmVnCiAKICAgICAvLyBOb3RlOiBpbmZpbml0ZSBjbGlwUmVj
dHMgc2hvdWxkIG5vdCBiZSBzY3JvbGxlZCBoZXJlLCBvdGhlcndpc2UgdGhleSB3aWxsIGFjY2lk
ZW50YWxseSBubyBsb25nZXIgYmUgY29uc2lkZXJlZCBpbmZpbml0ZS4KICAgICBpZiAocGFyZW50
UmVjdHMuZml4ZWQoKSAmJiByb290TGF5ZXItPnJlbmRlcmVyKCkgPT0gdmlldyAmJiBiYWNrZ3Jv
dW5kQ2xpcFJlY3QgIT0gUGFpbnRJbmZvOjppbmZpbml0ZVJlY3QoKSkKLSAgICAgICAgYmFja2dy
b3VuZENsaXBSZWN0Lm1vdmUodmlldy0+ZnJhbWVWaWV3KCktPnNjcm9sbFhGb3JGaXhlZFBvc2l0
aW9uKCksIHZpZXctPmZyYW1lVmlldygpLT5zY3JvbGxZRm9yRml4ZWRQb3NpdGlvbigpKTsKKyAg
ICAgICAgYmFja2dyb3VuZENsaXBSZWN0Lm1vdmUodmlldy0+ZnJhbWVWaWV3KCktPnNjcm9sbE9m
ZnNldEZvckZpeGVkUG9zaXRpb24oKSk7CiAKICAgICByZXR1cm4gYmFja2dyb3VuZENsaXBSZWN0
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAppbmRleCA0YjA3YzZjMmMy
ODYwMjQyNmJjMGMzNzBhODJkYjQ3ZjUyMjcxNWQzLi41OGY5NGU0ZTlmNDAyY2M2M2QwY2I3YWY2
YjAxNGE0NjM0Y2ZkNzA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaApA
QCAtMTExLDYgKzExMSw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgIG1faGFzUmFkaXVzID0gdHJ1
ZTsKICAgICB9CiAgICAgdm9pZCBtb3ZlKExheW91dFVuaXQgeCwgTGF5b3V0VW5pdCB5KSB7IG1f
cmVjdC5tb3ZlKHgsIHkpOyB9CisgICAgdm9pZCBtb3ZlKExheW91dFNpemUgc2l6ZSkgeyBtX3Jl
Y3QubW92ZShzaXplKTsgfQogCiAgICAgYm9vbCBpc0VtcHR5KCkgY29uc3QgeyByZXR1cm4gbV9y
ZWN0LmlzRW1wdHkoKTsgfQogICAgIGJvb2wgaW50ZXJzZWN0cyhjb25zdCBMYXlvdXRSZWN0JiBy
ZWN0KSB7IHJldHVybiBtX3JlY3QuaW50ZXJzZWN0cyhyZWN0KTsgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAppbmRleCA5OGQwNWM0
M2RlZjUwYzcxY2UxMzJmZTFkMGQ3YjBjZjhiZTc1MmFhLi43Nzg0NDUxODM2ODgzZDY3ZWI2MDUw
ZGU3NDVmMDk0Yzg5YTdjYjg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcApAQCAtMTgwNCw3ICsxODA0LDcgQEAgYm9vbCBSZW5k
ZXJMYXllckNvbXBvc2l0b3I6OnJlcXVpcmVzQ29tcG9zaXRpbmdGb3JQb3NpdGlvbihSZW5kZXJP
YmplY3QqIHJlbmRlcmUKIAogICAgIC8vIEZpeGVkIHBvc2l0aW9uIGVsZW1lbnRzIHRoYXQgYXJl
IGludmlzaWJsZSBpbiB0aGUgY3VycmVudCB2aWV3IGRvbid0IGdldCB0aGVpciBvd24gbGF5ZXIu
CiAgICAgRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSBtX3JlbmRlclZpZXctPmZyYW1lVmlldygpOwot
ICAgIGlmIChmcmFtZVZpZXcgJiYgIWxheWVyLT5hYnNvbHV0ZUJvdW5kaW5nQm94KCkuaW50ZXJz
ZWN0cyhJbnRSZWN0KGZyYW1lVmlldy0+c2Nyb2xsWEZvckZpeGVkUG9zaXRpb24oKSwgZnJhbWVW
aWV3LT5zY3JvbGxZRm9yRml4ZWRQb3NpdGlvbigpLCBmcmFtZVZpZXctPmxheW91dFdpZHRoKCks
IGZyYW1lVmlldy0+bGF5b3V0SGVpZ2h0KCkpKSkKKyAgICBpZiAoZnJhbWVWaWV3ICYmICFsYXll
ci0+YWJzb2x1dGVCb3VuZGluZ0JveCgpLmludGVyc2VjdHMoSW50UmVjdChJbnRQb2ludChmcmFt
ZVZpZXctPnNjcm9sbE9mZnNldEZvckZpeGVkUG9zaXRpb24oKSksIGZyYW1lVmlldy0+bGF5b3V0
U2l6ZSgpKSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIHJldHVybiB0cnVlOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCmluZGV4IGFhZGI5YjliNWZkODU1NmY1
NDQyYjE2YTA0MTBkMDE3M2E4NWY4OWIuLjNjOTI2OGFkMTY0ZjY5MmEzZTNmMGM3MDY4ZWFlY2M2
MWQ3ODE5NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKQEAgLTM5
MCw3ICszOTAsNyBAQCB2b2lkIFJlbmRlclZpZXc6OmNvbXB1dGVSZWN0Rm9yUmVwYWludChSZW5k
ZXJCb3hNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgTAogICAgIH0KIAogICAgIGlmIChm
aXhlZCAmJiBtX2ZyYW1lVmlldykKLSAgICAgICAgcmVjdC5tb3ZlKG1fZnJhbWVWaWV3LT5zY3Jv
bGxYRm9yRml4ZWRQb3NpdGlvbigpLCBtX2ZyYW1lVmlldy0+c2Nyb2xsWUZvckZpeGVkUG9zaXRp
b24oKSk7CisgICAgICAgIHJlY3QubW92ZShtX2ZyYW1lVmlldy0+c2Nyb2xsT2Zmc2V0Rm9yRml4
ZWRQb3NpdGlvbigpKTsKICAgICAgICAgCiAgICAgLy8gQXBwbHkgb3VyIHRyYW5zZm9ybSBpZiB3
ZSBoYXZlIG9uZSAoYmVjYXVzZSBvZiBmdWxsIHBhZ2Ugem9vbWluZykuCiAgICAgaWYgKCFyZXBh
aW50Q29udGFpbmVyICYmIG1fbGF5ZXIgJiYgbV9sYXllci0+dHJhbnNmb3JtKCkpCg==
</data>
<flag name="review"
          id="153413"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>