<?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>101846</bug_id>
          
          <creation_ts>2012-11-10 12:33:55 -0800</creation_ts>
          <short_desc>Call to enclosingFilterLayer() in RenderObject::containerForRepaint() is expensive</short_desc>
          <delta_ts>2012-11-14 09:38:24 -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>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></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="Max Vujovic">mvujovic</assigned_to>
          <cc>achicu</cc>
    
    <cc>bdakin</cc>
    
    <cc>eric</cc>
    
    <cc>mitz</cc>
    
    <cc>mvujovic</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>763700</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-11-10 12:33:55 -0800</bug_when>
    <thetext>The call to enclosingFilterLayer() in RenderObject::containerForRepaint()  shows up in scrolling profiles as up to 4% of the total time. It adds a second tree walk, which is terrible.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764429</commentid>
    <comment_count>1</comment_count>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2012-11-12 07:57:49 -0800</bug_when>
    <thetext>(In reply to comment #0)
&gt; The call to enclosingFilterLayer() in RenderObject::containerForRepaint()  shows up in scrolling profiles as up to 4% of the total time. It adds a second tree walk, which is terrible.

I can take a look at that today. Do you think that a combined tree walk will be sufficient?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764462</commentid>
    <comment_count>2</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-11-12 08:49:50 -0800</bug_when>
    <thetext>Actually it&apos;s not as bad as I first thought; only 0.3% of a layout-heave trace while scrolling http://www.theverge.com/2012/10/30/3576178/apple-ipad-mini-review

But it&apos;s still worth cleaning up. One thought I had was to set a bit somewhere per document (on FrameView?) that says that any filters are being used, and avoid filter-related code if not.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766021</commentid>
    <comment_count>3</comment_count>
      <attachid>173979</attachid>
    <who name="Max Vujovic">mvujovic</who>
    <bug_when>2012-11-13 13:55:02 -0800</bug_when>
    <thetext>Created attachment 173979
Patch

Here&apos;s a possible patch implementing Simon&apos;s idea.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766024</commentid>
    <comment_count>4</comment_count>
      <attachid>173979</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-11-13 13:57:15 -0800</bug_when>
    <thetext>Comment on attachment 173979
Patch

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

I wonder if there are other bits of code we can optimize?

&gt; Source/WebCore/page/FrameView.h:374
&gt; +    bool hasSoftwareFilters() { return m_hasSoftwareFilters; }

Should be const.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766026</commentid>
    <comment_count>5</comment_count>
    <who name="Max Vujovic">mvujovic</who>
    <bug_when>2012-11-13 14:00:17 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 173979 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=173979&amp;action=review
&gt; 
&gt; I wonder if there are other bits of code we can optimize?
&gt; 
&gt; &gt; Source/WebCore/page/FrameView.h:374
&gt; &gt; +    bool hasSoftwareFilters() { return m_hasSoftwareFilters; }
&gt; 
&gt; Should be const.

Good catch. Thanks for the review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766055</commentid>
    <comment_count>6</comment_count>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2012-11-13 14:29:59 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 173979 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=173979&amp;action=review
&gt; 
&gt; I wonder if there are other bits of code we can optimize?

One easy optimisation is to make RenderLayer::enclosingFilterLayer stop when it hits the first composited layer. Most probably we need to change its name too.

Another optimisation is to avoid recomputing the filter result when nothing changed. We could use the invalidation process to clear the filter result. That might be useful for tile-based painting. In that case the current implementation will recompute the filter every time the paint is called. That happens even though there&apos;s no &quot;invalidation&quot; request between the paint calls. However, that optimisation only applies to software applied filters that require the full source image like blur, drop-shadow or custom filters. Those filters will always compute the full layer result, but will throw it away and recompute during the following paint.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766073</commentid>
    <comment_count>7</comment_count>
      <attachid>173979</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2012-11-13 14:42:28 -0800</bug_when>
    <thetext>Comment on attachment 173979
Patch

Attachment 173979 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/14813952</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766128</commentid>
    <comment_count>8</comment_count>
      <attachid>174014</attachid>
    <who name="Max Vujovic">mvujovic</who>
    <bug_when>2012-11-13 15:47:18 -0800</bug_when>
    <thetext>Created attachment 174014
Patch

Fixing efl EWS failure. I was missing an #if ENABLE(CSS_FILTERS) guard.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766974</commentid>
    <comment_count>9</comment_count>
      <attachid>174014</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-14 09:38:20 -0800</bug_when>
    <thetext>Comment on attachment 174014
Patch

Clearing flags on attachment: 174014

Committed r134619: &lt;http://trac.webkit.org/changeset/134619&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766975</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-14 09:38:24 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173979</attachid>
            <date>2012-11-13 13:55:02 -0800</date>
            <delta_ts>2012-11-13 15:47:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>101846-1.patch</filename>
            <type>text/plain</type>
            <size>4627</size>
            <attacher name="Max Vujovic">mvujovic</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA1NGMyNmMwLi40ZDRkODlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjgg
QEAKKzIwMTItMTEtMTMgIE1heCBWdWpvdmljICA8bXZ1am92aWNAYWRvYmUuY29tPgorCisgICAg
ICAgIENhbGwgdG8gZW5jbG9zaW5nRmlsdGVyTGF5ZXIoKSBpbiBSZW5kZXJPYmplY3Q6OmNvbnRh
aW5lckZvclJlcGFpbnQoKSBpcyBleHBlbnNpdmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTg0NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIElmIENTUyBGaWx0ZXJzIGhhdmUgbm90IGJlZW4gdXNlZCBp
biB0aGUgZG9jdW1lbnQsIGF2b2lkIGRvaW5nIHRoZSBzZWNvbmQgdHJlZSB3YWxrIGluCisgICAg
ICAgIFJlbmRlck9iamVjdDo6Y29udGFpbmVyRm9yUmVwYWludCwgd2hpY2ggZGV0ZXJtaW5lcyB0
aGUgUmVuZGVyT2JqZWN0J3MgZW5jbG9zaW5nIGZpbHRlcgorICAgICAgICBsYXllci4KKworICAg
ICAgICBObyBuZXcgdGVzdHMuIFdlIG5vdyBhdm9pZCBhIGZpbHRlcnMgcmVsYXRlZCBjb2RlIHBh
dGggZm9yIGEgcGVyZm9ybWFuY2UgaW1wcm92ZW1lbnQgd2hlbgorICAgICAgICB3ZSdyZSBub3Qg
dXNpbmcgZmlsdGVycy4KKworICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkZyYW1lVmlldzo6RnJhbWVWaWV3KToKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmll
dy5oOgorICAgICAgICAoRnJhbWVWaWV3KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6
c2V0SGFzU29mdHdhcmVGaWx0ZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6aGFz
U29mdHdhcmVGaWx0ZXJzKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnVwZGF0ZU9yUmVtb3ZlRmlsdGVyRWZmZWN0
UmVuZGVyZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0Ojpjb250YWluZXJGb3JSZXBhaW50KToKKwogMjAxMi0x
MS0xMiAgS2VudGFybyBIYXJhICA8aGFyYWtlbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW1Y4
XVtKU0NdIEhUTUxPcHRpb25zQ29sbGVjdGlvbjo6bGVuZ3RoIG5lZWRzIG5vdCB0byBiZSBbQ3Vz
dG9tXQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCmluZGV4IDc2OGQ1ZDIuLmVmNDY1MTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKQEAgLTE5Miw2ICsxOTIsNyBAQCBGcmFtZVZpZXc6
OkZyYW1lVmlldyhGcmFtZSogZnJhbWUpCiAgICAgLCBtX3Nob3VsZEF1dG9TaXplKGZhbHNlKQog
ICAgICwgbV9pbkF1dG9TaXplKGZhbHNlKQogICAgICwgbV9kaWRSdW5BdXRvc2l6ZShmYWxzZSkK
KyAgICAsIG1faGFzU29mdHdhcmVGaWx0ZXJzKGZhbHNlKQogewogICAgIGluaXQoKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRnJhbWVWaWV3LmgKaW5kZXggZDI4NDVlYi4uZjdhY2RlNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lVmlldy5oCkBAIC0zNjksNiArMzY5LDExIEBAIHB1YmxpYzoKICAgICBib29sIGluUHJvZ3Jh
bW1hdGljU2Nyb2xsKCkgY29uc3QgeyByZXR1cm4gbV9pblByb2dyYW1tYXRpY1Njcm9sbDsgfQog
ICAgIHZvaWQgc2V0SW5Qcm9ncmFtbWF0aWNTY3JvbGwoYm9vbCBwcm9ncmFtbWF0aWNTY3JvbGwp
IHsgbV9pblByb2dyYW1tYXRpY1Njcm9sbCA9IHByb2dyYW1tYXRpY1Njcm9sbDsgfQogCisjaWYg
RU5BQkxFKENTU19GSUxURVJTKQorICAgIHZvaWQgc2V0SGFzU29mdHdhcmVGaWx0ZXJzKGJvb2wg
aGFzU29mdHdhcmVGaWx0ZXJzKSB7IG1faGFzU29mdHdhcmVGaWx0ZXJzID0gaGFzU29mdHdhcmVG
aWx0ZXJzOyB9CisgICAgYm9vbCBoYXNTb2Z0d2FyZUZpbHRlcnMoKSB7IHJldHVybiBtX2hhc1Nv
ZnR3YXJlRmlsdGVyczsgfQorI2VuZGlmCisKIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIGJvb2wg
c2Nyb2xsQ29udGVudHNGYXN0UGF0aChjb25zdCBJbnRTaXplJiBzY3JvbGxEZWx0YSwgY29uc3Qg
SW50UmVjdCYgcmVjdFRvU2Nyb2xsLCBjb25zdCBJbnRSZWN0JiBjbGlwUmVjdCk7CiAgICAgdmly
dHVhbCB2b2lkIHNjcm9sbENvbnRlbnRzU2xvd1BhdGgoY29uc3QgSW50UmVjdCYgdXBkYXRlUmVj
dCk7CkBAIC01NjQsNiArNTY5LDEwIEBAIHByaXZhdGU6CiAgICAgc3RhdGljIGRvdWJsZSBzX2lu
aXRpYWxEZWZlcnJlZFJlcGFpbnREZWxheUR1cmluZ0xvYWRpbmc7CiAgICAgc3RhdGljIGRvdWJs
ZSBzX21heERlZmVycmVkUmVwYWludERlbGF5RHVyaW5nTG9hZGluZzsKICAgICBzdGF0aWMgZG91
YmxlIHNfZGVmZXJyZWRSZXBhaW50RGVsYXlJbmNyZW1lbnREdXJpbmdMb2FkaW5nOworCisjaWYg
RU5BQkxFKENTU19GSUxURVJTKQorICAgIGJvb2wgbV9oYXNTb2Z0d2FyZUZpbHRlcnM7CisjZW5k
aWYKIH07CiAKIGlubGluZSB2b2lkIEZyYW1lVmlldzo6aW5jcmVtZW50VmlzdWFsbHlOb25FbXB0
eUNoYXJhY3RlckNvdW50KHVuc2lnbmVkIGNvdW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllci5jcHAKaW5kZXggN2JhNGZlOC4uODNmZjdhMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCkBAIC01MjA0LDYgKzUyMDQsOSBAQCB2b2lkIFJlbmRl
ckxheWVyOjp1cGRhdGVPclJlbW92ZUZpbHRlckVmZmVjdFJlbmRlcmVyKCkKICAgICAgICAgUmVu
ZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlID0gcmVuZGVyZXIoKS0+ZnJhbWUoKS0+cGFnZSgpLT5z
ZXR0aW5ncygpLT5hY2NlbGVyYXRlZEZpbHRlcnNFbmFibGVkKCkgPyBBY2NlbGVyYXRlZCA6IFVu
YWNjZWxlcmF0ZWQ7CiAgICAgICAgIGZpbHRlclJlbmRlcmVyLT5zZXRSZW5kZXJpbmdNb2RlKHJl
bmRlcmluZ01vZGUpOwogICAgICAgICBmaWx0ZXJJbmZvLT5zZXRSZW5kZXJlcihmaWx0ZXJSZW5k
ZXJlci5yZWxlYXNlKCkpOworICAgICAgICAKKyAgICAgICAgLy8gV2UgY2FuIG9wdGltaXplIGF3
YXkgY29kZSBwYXRocyBpbiBvdGhlciBwbGFjZXMgaWYgd2Uga25vdyB0aGF0IHRoZXJlIGFyZSBu
byBzb2Z0d2FyZSBmaWx0ZXJzLgorICAgICAgICByZW5kZXJlcigpLT5kb2N1bWVudCgpLT52aWV3
KCktPnNldEhhc1NvZnR3YXJlRmlsdGVycyh0cnVlKTsKICAgICB9CiAKICAgICAvLyBJZiB0aGUg
ZmlsdGVyIGZhaWxzIHRvIGJ1aWxkLCByZW1vdmUgaXQgZnJvbSB0aGUgbGF5ZXIuIEl0IHdpbGwg
c3RpbGwgYXR0ZW1wdCB0bwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNw
cAppbmRleCA5ODNhY2VkLi4xNWRjZGQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyT2JqZWN0LmNwcApAQCAtMTI4MCwxMCArMTI4MCwxMiBAQCBSZW5kZXJMYXllck1vZGVsT2Jq
ZWN0KiBSZW5kZXJPYmplY3Q6OmNvbnRhaW5lckZvclJlcGFpbnQoKSBjb25zdAogI2VuZGlmCiAg
ICAgCiAjaWYgRU5BQkxFKENTU19GSUxURVJTKQotICAgIGlmIChSZW5kZXJMYXllciogcGFyZW50
TGF5ZXIgPSBlbmNsb3NpbmdMYXllcigpKSB7Ci0gICAgICAgIFJlbmRlckxheWVyKiBlbmNsb3Np
bmdGaWx0ZXJMYXllciA9IHBhcmVudExheWVyLT5lbmNsb3NpbmdGaWx0ZXJMYXllcigpOwotICAg
ICAgICBpZiAoZW5jbG9zaW5nRmlsdGVyTGF5ZXIpCi0gICAgICAgICAgICByZXR1cm4gZW5jbG9z
aW5nRmlsdGVyTGF5ZXItPnJlbmRlcmVyKCk7CisgICAgaWYgKGRvY3VtZW50KCktPnZpZXcoKS0+
aGFzU29mdHdhcmVGaWx0ZXJzKCkpIHsKKyAgICAgICAgaWYgKFJlbmRlckxheWVyKiBwYXJlbnRM
YXllciA9IGVuY2xvc2luZ0xheWVyKCkpIHsKKyAgICAgICAgICAgIFJlbmRlckxheWVyKiBlbmNs
b3NpbmdGaWx0ZXJMYXllciA9IHBhcmVudExheWVyLT5lbmNsb3NpbmdGaWx0ZXJMYXllcigpOwor
ICAgICAgICAgICAgaWYgKGVuY2xvc2luZ0ZpbHRlckxheWVyKQorICAgICAgICAgICAgICAgIHJl
dHVybiBlbmNsb3NpbmdGaWx0ZXJMYXllci0+cmVuZGVyZXIoKTsKKyAgICAgICAgfQogICAgIH0K
ICNlbmRpZgogCg==
</data>
<flag name="review"
          id="188851"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
    <flag name="commit-queue"
          id="188868"
          type_id="3"
          status="-"
          setter="eflews.bot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>174014</attachid>
            <date>2012-11-13 15:47:18 -0800</date>
            <delta_ts>2012-11-14 09:38:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>101846-2.patch</filename>
            <type>text/plain</type>
            <size>4682</size>
            <attacher name="Max Vujovic">mvujovic</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA1NGMyNmMwLi45OTU5OTQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjgg
QEAKKzIwMTItMTEtMTMgIE1heCBWdWpvdmljICA8bXZ1am92aWNAYWRvYmUuY29tPgorCisgICAg
ICAgIENhbGwgdG8gZW5jbG9zaW5nRmlsdGVyTGF5ZXIoKSBpbiBSZW5kZXJPYmplY3Q6OmNvbnRh
aW5lckZvclJlcGFpbnQoKSBpcyBleHBlbnNpdmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTg0NgorCisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9u
IEZyYXNlci4KKworICAgICAgICBJZiBzb2Z0d2FyZS1yZW5kZXJlZCBDU1MgRmlsdGVycyBoYXZl
IG5vdCBiZWVuIHVzZWQgaW4gdGhlIGRvY3VtZW50LCBhdm9pZCBkb2luZyB0aGUgc2Vjb25kCisg
ICAgICAgIHRyZWUgd2FsayBpbiBSZW5kZXJPYmplY3Q6OmNvbnRhaW5lckZvclJlcGFpbnQsIHdo
aWNoIGRldGVybWluZXMgdGhlIFJlbmRlck9iamVjdCdzCisgICAgICAgIGVuY2xvc2luZyBmaWx0
ZXIgbGF5ZXIuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBXZSBub3cgYXZvaWQgYSBmaWx0ZXJz
IHJlbGF0ZWQgY29kZSBwYXRoIGZvciBhIHBlcmZvcm1hbmNlIGltcHJvdmVtZW50IHdoZW4KKyAg
ICAgICAgd2UncmUgbm90IHVzaW5nIGZpbHRlcnMuCisKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmll
dy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OkZyYW1lVmlldyk6CisgICAgICAg
ICogcGFnZS9GcmFtZVZpZXcuaDoKKyAgICAgICAgKEZyYW1lVmlldyk6CisgICAgICAgIChXZWJD
b3JlOjpGcmFtZVZpZXc6OnNldEhhc1NvZnR3YXJlRmlsdGVycyk6CisgICAgICAgIChXZWJDb3Jl
OjpGcmFtZVZpZXc6Omhhc1NvZnR3YXJlRmlsdGVycyk6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjp1cGRhdGVPclJl
bW92ZUZpbHRlckVmZmVjdFJlbmRlcmVyKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2Jq
ZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6Y29udGFpbmVyRm9yUmVw
YWludCk6CisKIDIwMTItMTEtMTIgIEtlbnRhcm8gSGFyYSAgPGhhcmFrZW5AY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIFtWOF1bSlNDXSBIVE1MT3B0aW9uc0NvbGxlY3Rpb246Omxlbmd0aCBuZWVk
cyBub3QgdG8gYmUgW0N1c3RvbV0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJh
bWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRleCA3Njhk
NWQyLi5lYWJlODk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBAIC0xOTIsNiArMTky
LDkgQEAgRnJhbWVWaWV3OjpGcmFtZVZpZXcoRnJhbWUqIGZyYW1lKQogICAgICwgbV9zaG91bGRB
dXRvU2l6ZShmYWxzZSkKICAgICAsIG1faW5BdXRvU2l6ZShmYWxzZSkKICAgICAsIG1fZGlkUnVu
QXV0b3NpemUoZmFsc2UpCisjaWYgRU5BQkxFKENTU19GSUxURVJTKQorICAgICwgbV9oYXNTb2Z0
d2FyZUZpbHRlcnMoZmFsc2UpCisjZW5kaWYKIHsKICAgICBpbml0KCk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lVmlldy5oCmluZGV4IGQyODQ1ZWIuLmRhYjQ2YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRnJhbWVWaWV3LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcu
aApAQCAtMzY5LDYgKzM2OSwxMSBAQCBwdWJsaWM6CiAgICAgYm9vbCBpblByb2dyYW1tYXRpY1Nj
cm9sbCgpIGNvbnN0IHsgcmV0dXJuIG1faW5Qcm9ncmFtbWF0aWNTY3JvbGw7IH0KICAgICB2b2lk
IHNldEluUHJvZ3JhbW1hdGljU2Nyb2xsKGJvb2wgcHJvZ3JhbW1hdGljU2Nyb2xsKSB7IG1faW5Q
cm9ncmFtbWF0aWNTY3JvbGwgPSBwcm9ncmFtbWF0aWNTY3JvbGw7IH0KIAorI2lmIEVOQUJMRShD
U1NfRklMVEVSUykKKyAgICB2b2lkIHNldEhhc1NvZnR3YXJlRmlsdGVycyhib29sIGhhc1NvZnR3
YXJlRmlsdGVycykgeyBtX2hhc1NvZnR3YXJlRmlsdGVycyA9IGhhc1NvZnR3YXJlRmlsdGVyczsg
fQorICAgIGJvb2wgaGFzU29mdHdhcmVGaWx0ZXJzKCkgY29uc3QgeyByZXR1cm4gbV9oYXNTb2Z0
d2FyZUZpbHRlcnM7IH0KKyNlbmRpZgorCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCBib29sIHNj
cm9sbENvbnRlbnRzRmFzdFBhdGgoY29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVsdGEsIGNvbnN0IElu
dFJlY3QmIHJlY3RUb1Njcm9sbCwgY29uc3QgSW50UmVjdCYgY2xpcFJlY3QpOwogICAgIHZpcnR1
YWwgdm9pZCBzY3JvbGxDb250ZW50c1Nsb3dQYXRoKGNvbnN0IEludFJlY3QmIHVwZGF0ZVJlY3Qp
OwpAQCAtNTY0LDYgKzU2OSwxMCBAQCBwcml2YXRlOgogICAgIHN0YXRpYyBkb3VibGUgc19pbml0
aWFsRGVmZXJyZWRSZXBhaW50RGVsYXlEdXJpbmdMb2FkaW5nOwogICAgIHN0YXRpYyBkb3VibGUg
c19tYXhEZWZlcnJlZFJlcGFpbnREZWxheUR1cmluZ0xvYWRpbmc7CiAgICAgc3RhdGljIGRvdWJs
ZSBzX2RlZmVycmVkUmVwYWludERlbGF5SW5jcmVtZW50RHVyaW5nTG9hZGluZzsKKworI2lmIEVO
QUJMRShDU1NfRklMVEVSUykKKyAgICBib29sIG1faGFzU29mdHdhcmVGaWx0ZXJzOworI2VuZGlm
CiB9OwogCiBpbmxpbmUgdm9pZCBGcmFtZVZpZXc6OmluY3JlbWVudFZpc3VhbGx5Tm9uRW1wdHlD
aGFyYWN0ZXJDb3VudCh1bnNpZ25lZCBjb3VudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXIuY3BwCmluZGV4IDdiYTRmZTguLjgzZmY3YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyLmNwcApAQCAtNTIwNCw2ICs1MjA0LDkgQEAgdm9pZCBSZW5kZXJM
YXllcjo6dXBkYXRlT3JSZW1vdmVGaWx0ZXJFZmZlY3RSZW5kZXJlcigpCiAgICAgICAgIFJlbmRl
cmluZ01vZGUgcmVuZGVyaW5nTW9kZSA9IHJlbmRlcmVyKCktPmZyYW1lKCktPnBhZ2UoKS0+c2V0
dGluZ3MoKS0+YWNjZWxlcmF0ZWRGaWx0ZXJzRW5hYmxlZCgpID8gQWNjZWxlcmF0ZWQgOiBVbmFj
Y2VsZXJhdGVkOwogICAgICAgICBmaWx0ZXJSZW5kZXJlci0+c2V0UmVuZGVyaW5nTW9kZShyZW5k
ZXJpbmdNb2RlKTsKICAgICAgICAgZmlsdGVySW5mby0+c2V0UmVuZGVyZXIoZmlsdGVyUmVuZGVy
ZXIucmVsZWFzZSgpKTsKKyAgICAgICAgCisgICAgICAgIC8vIFdlIGNhbiBvcHRpbWl6ZSBhd2F5
IGNvZGUgcGF0aHMgaW4gb3RoZXIgcGxhY2VzIGlmIHdlIGtub3cgdGhhdCB0aGVyZSBhcmUgbm8g
c29mdHdhcmUgZmlsdGVycy4KKyAgICAgICAgcmVuZGVyZXIoKS0+ZG9jdW1lbnQoKS0+dmlldygp
LT5zZXRIYXNTb2Z0d2FyZUZpbHRlcnModHJ1ZSk7CiAgICAgfQogCiAgICAgLy8gSWYgdGhlIGZp
bHRlciBmYWlscyB0byBidWlsZCwgcmVtb3ZlIGl0IGZyb20gdGhlIGxheWVyLiBJdCB3aWxsIHN0
aWxsIGF0dGVtcHQgdG8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAK
aW5kZXggOTgzYWNlZC4uMTVkY2RkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ck9iamVjdC5jcHAKQEAgLTEyODAsMTAgKzEyODAsMTIgQEAgUmVuZGVyTGF5ZXJNb2RlbE9iamVj
dCogUmVuZGVyT2JqZWN0Ojpjb250YWluZXJGb3JSZXBhaW50KCkgY29uc3QKICNlbmRpZgogICAg
IAogI2lmIEVOQUJMRShDU1NfRklMVEVSUykKLSAgICBpZiAoUmVuZGVyTGF5ZXIqIHBhcmVudExh
eWVyID0gZW5jbG9zaW5nTGF5ZXIoKSkgewotICAgICAgICBSZW5kZXJMYXllciogZW5jbG9zaW5n
RmlsdGVyTGF5ZXIgPSBwYXJlbnRMYXllci0+ZW5jbG9zaW5nRmlsdGVyTGF5ZXIoKTsKLSAgICAg
ICAgaWYgKGVuY2xvc2luZ0ZpbHRlckxheWVyKQotICAgICAgICAgICAgcmV0dXJuIGVuY2xvc2lu
Z0ZpbHRlckxheWVyLT5yZW5kZXJlcigpOworICAgIGlmIChkb2N1bWVudCgpLT52aWV3KCktPmhh
c1NvZnR3YXJlRmlsdGVycygpKSB7CisgICAgICAgIGlmIChSZW5kZXJMYXllciogcGFyZW50TGF5
ZXIgPSBlbmNsb3NpbmdMYXllcigpKSB7CisgICAgICAgICAgICBSZW5kZXJMYXllciogZW5jbG9z
aW5nRmlsdGVyTGF5ZXIgPSBwYXJlbnRMYXllci0+ZW5jbG9zaW5nRmlsdGVyTGF5ZXIoKTsKKyAg
ICAgICAgICAgIGlmIChlbmNsb3NpbmdGaWx0ZXJMYXllcikKKyAgICAgICAgICAgICAgICByZXR1
cm4gZW5jbG9zaW5nRmlsdGVyTGF5ZXItPnJlbmRlcmVyKCk7CisgICAgICAgIH0KICAgICB9CiAj
ZW5kaWYKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>