<?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>119428</bug_id>
          
          <creation_ts>2013-08-01 21:44:40 -0700</creation_ts>
          <short_desc>Removing an empty style sheet shouldn&apos;t trigger style recalc.</short_desc>
          <delta_ts>2013-08-02 02:22:17 -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>CSS</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, Performance</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andreas Kling">kling</reporter>
          <assigned_to name="Andreas Kling">kling</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>914004</commentid>
    <comment_count>0</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-08-01 21:44:40 -0700</bug_when>
    <thetext>Removing an empty style sheet shouldn&apos;t trigger style recalc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>914005</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2013-08-01 21:44:51 -0700</bug_when>
    <thetext>&lt;rdar://problem/14629045&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>914012</commentid>
    <comment_count>2</comment_count>
      <attachid>207980</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-08-01 22:12:47 -0700</bug_when>
    <thetext>Created attachment 207980
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>914013</commentid>
    <comment_count>3</comment_count>
      <attachid>207980</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-08-01 22:26:21 -0700</bug_when>
    <thetext>Comment on attachment 207980
Proposed patch

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

&gt; Source/WebCore/css/CSSStyleSheet.cpp:172
&gt; +    owner-&gt;styleResolverChanged(RecalcStyleIfNeeded);

Maybe we want to add DeferRecalcStyleIfNeeded so that we don&apos;t synchronously do a style recalc when a non-empty style element is modified.

&gt; Source/WebCore/dom/DocumentStyleSheetCollection.cpp:430
&gt; -static void filterEnabledCSSStyleSheets(Vector&lt;RefPtr&lt;CSSStyleSheet&gt; &gt;&amp; result, const Vector&lt;RefPtr&lt;StyleSheet&gt; &gt;&amp; sheets)
&gt; +static void filterEnabledNonemptyCSSStyleSheets(Vector&lt;RefPtr&lt;CSSStyleSheet&gt; &gt;&amp; result, const Vector&lt;RefPtr&lt;StyleSheet&gt; &gt;&amp; sheets)

Can we rename this to collect* or get*?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>914015</commentid>
    <comment_count>4</comment_count>
      <attachid>207982</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-08-01 22:55:33 -0700</bug_when>
    <thetext>Created attachment 207982
Proposed patch v2

Add a DeferRecalcStyleIfNeeded mode as suggested by rniwa.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>914065</commentid>
    <comment_count>5</comment_count>
      <attachid>207982</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-08-02 02:06:17 -0700</bug_when>
    <thetext>Comment on attachment 207982
Proposed patch v2

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

&gt; Source/WebCore/css/CSSStyleSheet.h:77
&gt; -    virtual void clearOwnerNode() OVERRIDE { didMutate(); m_ownerNode = 0; }
&gt; +    virtual void clearOwnerNode() OVERRIDE;

didMutate() (and so this performance regression) was added here: http://trac.webkit.org/changeset/144713

&gt; Source/WebCore/dom/Document.h:200
&gt; -enum StyleResolverUpdateFlag { RecalcStyleImmediately, DeferRecalcStyle, RecalcStyleIfNeeded };
&gt; +enum StyleResolverUpdateFlag { RecalcStyleImmediately, DeferRecalcStyle, RecalcStyleIfNeeded, DeferRecalcStyleIfNeeded };

It is unfortunate that this gets even more complicated. It is hard to reason from these.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>914071</commentid>
    <comment_count>6</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-08-02 02:22:17 -0700</bug_when>
    <thetext>Landed: http://trac.webkit.org/changeset/153641
Corrected bugzilla link: http://trac.webkit.org/changeset/153642 (Duh)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>207980</attachid>
            <date>2013-08-01 22:12:47 -0700</date>
            <delta_ts>2013-08-01 22:55:33 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>bug-119248.diff</filename>
            <type>text/plain</type>
            <size>4925</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAzOGM2NjBlLi4wYTFlMmVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEg
QEAKKzIwMTMtMDgtMDEgIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgorCisgICAg
ICAgIFJlbW92aW5nIGFuIGVtcHR5IHN0eWxlIHNoZWV0IHNob3VsZG4ndCB0cmlnZ2VyIHN0eWxl
IHJlY2FsYy4KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzE0NjI5MDQ1PgorICAgICAgICA8aHR0
cDovL3dlYmtpdC5vcmcvYi8xMTkyNDg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVGVhY2ggRG9jdW1lbnRTdHlsZVNoZWV0Q29sbGVjdGlvbiB0byBm
aWx0ZXIgb3V0IGVtcHR5IHN0eWxlIHNoZWV0cyB3aGVuIGRlY2lkaW5nIHdoZXRoZXIKKyAgICAg
ICAgb3Igbm90IHRvIHRyaWdnZXIgYSBzdHlsZSByZWNhbGMuIFdlIGNhbiB0aGVuIGJlIGNsZXZl
ciB3aGVuIGFuIGVtcHR5IHN0eWxlIHNoZWV0IGlzIHJlbW92ZWQKKyAgICAgICAgZnJvbSB0aGUg
ZG9jdW1lbnQsIGFuZCBhdm9pZCBjYXVzaW5nIGV4dHJhIHdvcmsuCisKKyAgICAgICAgU29tZSBw
YWdlcyB1c2UgdGhpcyBwYXR0ZXJuOgorCisgICAgICAgICAgICAoMSkgQ3JlYXRlIGEgPHN0eWxl
PiBlbGVtZW50LgorICAgICAgICAgICAgKDIpIEFkZCBpdCB0byB0aGUgZG9jdW1lbnQncyA8aGVh
ZD4gZWxlbWVudC4KKyAgICAgICAgICAgICgzKSBJbnNlcnQgc29tZSBDU1MgYXMgYSB0ZXh0IGNo
aWxkIG9mIHRoZSA8c3R5bGU+IGVsZW1lbnQuCisKKyAgICAgICAgU2luY2UgdGhlIDxzdHlsZT4g
ZWxlbWVudCBpcyBhbHJlYWR5IGluc2lkZSB0aGUgZG9jdW1lbnQgYXQgKDMpLCB3ZSBoYWQgdG8g
dHJlYXQgdGhpcyBhcyBhbgorICAgICAgICBvbGQgc3R5bGUgc2hlZXQgYmVpbmcgcmVtb3ZlZCwg
ZXZlbiB0aG91Z2ggaXQgd2FzIGp1c3QgYW4gZW1wdHkgc2hlZXQgb2Ygbm90aGluZy4KKworICAg
ICAgICBXaXRoIHRoaXMgcGF0Y2gsIERvY3VtZW50IGdhaW5zIGVub3VnaCBzbWFydHMgdG8ga25v
dyB0aGF0IHJlbW92aW5nL2FkZGluZyBhbiBlbXB0eSBzaGVldAorICAgICAgICB3b24ndCBhZmZl
Y3QgbGF5b3V0L3JlbmRlcmluZyBpbiBhbnkgbWVhbmluZ2Z1bCB3YXksIHRodXMgYSBzdHlsZSBy
ZWNhbGMgY2FuIGJlIGF2b2lkZWQuCisKKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVTaGVldC5oOgor
ICAgICAgICAqIGNzcy9DU1NTdHlsZVNoZWV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0
eWxlU2hlZXQ6OmNsZWFyT3duZXJOb2RlKToKKworICAgICAgICAgICAgVXNlIFJlY2FsY1N0eWxl
SWZOZWVkZWQgd2hlbiBzYXlpbmcgZ29vZC1ieWUgZnJvbSBhIENTU1N0eWxlU2hlZXQgYW5kIGxl
dCBEb2N1bWVudCBkZWNpZGUKKyAgICAgICAgICAgIGlmIHJlbW92aW5nIHRoaXMgc2hlZXQgc2hv
dWxkIHRyaWdnZXIgc3R5bGUgcmVjYWxjIGluc3RlYWQgb2YgYWx3YXlzIGFzc3VtaW5nIGl0IHNo
b3VsZC4KKworICAgICAgICAqIGRvbS9Eb2N1bWVudFN0eWxlU2hlZXRDb2xsZWN0aW9uLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OmZpbHRlckVuYWJsZWROb25lbXB0eUNTU1N0eWxlU2hlZXRzKToK
KyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50U3R5bGVTaGVldENvbGxlY3Rpb246OnVwZGF0ZUFj
dGl2ZVN0eWxlU2hlZXRzKToKKworICAgICAgICAgICAgRXhjbHVkZSBlbXB0eSBzaGVldHMgZnJv
bSB0aGUgYWN0aXZlQXV0aG9yU3R5bGVTaGVldHMoKSBjb2xsZWN0aW9uLiBUaGV5IGFyZSBzdGls
bAorICAgICAgICAgICAgdmlzaWJsZSB0aHJvdWdoIENTU09NJ3MgZG9jdW1lbnQuc3R5bGVTaGVl
dHMuCisKIDIwMTMtMDgtMDEgIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CiAK
ICAgICAgICAgW1dpbmRvd3NdIFdlYktpdDEgRnVsbHNjcmVlbiBWaWRlbyBQbGF5IGlzIEJyb2tl
bgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2hlZXQuY3BwIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2hlZXQuY3BwCmluZGV4IDg4MTFlMzcuLmNjYjhmNjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNoZWV0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTaGVldC5jcHAKQEAgLTE2Myw2ICsxNjMsMTUgQEAg
dm9pZCBDU1NTdHlsZVNoZWV0OjpkaWRNdXRhdGUoKQogICAgIG93bmVyLT5zdHlsZVJlc29sdmVy
Q2hhbmdlZChEZWZlclJlY2FsY1N0eWxlKTsKIH0KIAordm9pZCBDU1NTdHlsZVNoZWV0OjpjbGVh
ck93bmVyTm9kZSgpCit7CisgICAgRG9jdW1lbnQqIG93bmVyID0gb3duZXJEb2N1bWVudCgpOwor
ICAgIG1fb3duZXJOb2RlID0gMDsKKyAgICBpZiAoIW93bmVyKQorICAgICAgICByZXR1cm47Cisg
ICAgb3duZXItPnN0eWxlUmVzb2x2ZXJDaGFuZ2VkKFJlY2FsY1N0eWxlSWZOZWVkZWQpOworfQor
CiB2b2lkIENTU1N0eWxlU2hlZXQ6OnJlYXR0YWNoQ2hpbGRSdWxlQ1NTT01XcmFwcGVycygpCiB7
CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fY2hpbGRSdWxlQ1NTT01XcmFwcGVycy5z
aXplKCk7ICsraSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2hl
ZXQuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNoZWV0LmgKaW5kZXggOGZmZTU0ZS4u
OGM3MWMwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2hlZXQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTaGVldC5oCkBAIC03NCw3ICs3NCw3IEBA
IHB1YmxpYzoKICAgICB1bnNpZ25lZCBsZW5ndGgoKSBjb25zdDsKICAgICBDU1NSdWxlKiBpdGVt
KHVuc2lnbmVkIGluZGV4KTsKIAotICAgIHZpcnR1YWwgdm9pZCBjbGVhck93bmVyTm9kZSgpIE9W
RVJSSURFIHsgZGlkTXV0YXRlKCk7IG1fb3duZXJOb2RlID0gMDsgfQorICAgIHZpcnR1YWwgdm9p
ZCBjbGVhck93bmVyTm9kZSgpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgQ1NTSW1wb3J0UnVsZSog
b3duZXJSdWxlKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gbV9vd25lclJ1bGU7IH0KICAgICB2
aXJ0dWFsIEtVUkwgYmFzZVVSTCgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBp
c0xvYWRpbmcoKSBjb25zdCBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudFN0eWxlU2hlZXRDb2xsZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudFN0eWxlU2hlZXRDb2xsZWN0aW9uLmNwcAppbmRleCAzZjY2YjM0Li5mNjYwZjUwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRTdHlsZVNoZWV0Q29sbGVjdGlv
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50U3R5bGVTaGVldENvbGxlY3Rp
b24uY3BwCkBAIC00MjcsMTQgKzQyNywxNyBAQCBzdGF0aWMgYm9vbCBzdHlsZVNoZWV0c1VzZVJl
bVVuaXRzKGNvbnN0IFZlY3RvcjxSZWZQdHI8Q1NTU3R5bGVTaGVldD4gPiYgc2hlZXRzKQogICAg
IHJldHVybiBmYWxzZTsKIH0KIAotc3RhdGljIHZvaWQgZmlsdGVyRW5hYmxlZENTU1N0eWxlU2hl
ZXRzKFZlY3RvcjxSZWZQdHI8Q1NTU3R5bGVTaGVldD4gPiYgcmVzdWx0LCBjb25zdCBWZWN0b3I8
UmVmUHRyPFN0eWxlU2hlZXQ+ID4mIHNoZWV0cykKK3N0YXRpYyB2b2lkIGZpbHRlckVuYWJsZWRO
b25lbXB0eUNTU1N0eWxlU2hlZXRzKFZlY3RvcjxSZWZQdHI8Q1NTU3R5bGVTaGVldD4gPiYgcmVz
dWx0LCBjb25zdCBWZWN0b3I8UmVmUHRyPFN0eWxlU2hlZXQ+ID4mIHNoZWV0cykKIHsKICAgICBm
b3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc2hlZXRzLnNpemUoKTsgKytpKSB7CiAgICAgICAgIGlm
ICghc2hlZXRzW2ldLT5pc0NTU1N0eWxlU2hlZXQoKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwog
ICAgICAgICBpZiAoc2hlZXRzW2ldLT5kaXNhYmxlZCgpKQogICAgICAgICAgICAgY29udGludWU7
Ci0gICAgICAgIHJlc3VsdC5hcHBlbmQoc3RhdGljX2Nhc3Q8Q1NTU3R5bGVTaGVldCo+KHNoZWV0
c1tpXS5nZXQoKSkpOworICAgICAgICBDU1NTdHlsZVNoZWV0KiBzaGVldCA9IHN0YXRpY19jYXN0
PENTU1N0eWxlU2hlZXQqPihzaGVldHNbaV0uZ2V0KCkpOworICAgICAgICBpZiAoIXNoZWV0LT5s
ZW5ndGgoKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICByZXN1bHQuYXBwZW5kKHNo
ZWV0KTsKICAgICB9CiB9CiAKQEAgLTQ2Nyw3ICs0NzAsNyBAQCBib29sIERvY3VtZW50U3R5bGVT
aGVldENvbGxlY3Rpb246OnVwZGF0ZUFjdGl2ZVN0eWxlU2hlZXRzKFVwZGF0ZUZsYWcgdXBkYXRl
RmxhZwogICAgIGFjdGl2ZUNTU1N0eWxlU2hlZXRzLmFwcGVuZFZlY3RvcihpbmplY3RlZEF1dGhv
clN0eWxlU2hlZXRzKCkpOwogICAgIGFjdGl2ZUNTU1N0eWxlU2hlZXRzLmFwcGVuZFZlY3Rvcihk
b2N1bWVudEF1dGhvclN0eWxlU2hlZXRzKCkpOwogICAgIGNvbGxlY3RBY3RpdmVDU1NTdHlsZVNo
ZWV0c0Zyb21TZWFtbGVzc1BhcmVudHMoYWN0aXZlQ1NTU3R5bGVTaGVldHMsIG1fZG9jdW1lbnQp
OwotICAgIGZpbHRlckVuYWJsZWRDU1NTdHlsZVNoZWV0cyhhY3RpdmVDU1NTdHlsZVNoZWV0cywg
YWN0aXZlU3R5bGVTaGVldHMpOworICAgIGZpbHRlckVuYWJsZWROb25lbXB0eUNTU1N0eWxlU2hl
ZXRzKGFjdGl2ZUNTU1N0eWxlU2hlZXRzLCBhY3RpdmVTdHlsZVNoZWV0cyk7CiAKICAgICBTdHls
ZVJlc29sdmVyVXBkYXRlVHlwZSBzdHlsZVJlc29sdmVyVXBkYXRlVHlwZTsKICAgICBib29sIHJl
cXVpcmVzRnVsbFN0eWxlUmVjYWxjOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>207982</attachid>
            <date>2013-08-01 22:55:33 -0700</date>
            <delta_ts>2013-08-02 02:06:17 -0700</delta_ts>
            <desc>Proposed patch v2</desc>
            <filename>bug-119248-v2.diff</filename>
            <type>text/plain</type>
            <size>6996</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAzOGM2NjBlLi5iNjYwMDg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDcg
QEAKKzIwMTMtMDgtMDEgIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgorCisgICAg
ICAgIFJlbW92aW5nIGFuIGVtcHR5IHN0eWxlIHNoZWV0IHNob3VsZG4ndCB0cmlnZ2VyIHN0eWxl
IHJlY2FsYy4KKyAgICAgICAgPGh0dHA6Ly93ZWJraXQub3JnL2IvMTE5MjQ4PgorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vMTQ2MjkwNDU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVGVhY2ggRG9jdW1lbnRTdHlsZVNoZWV0Q29sbGVjdGlvbiB0byBm
aWx0ZXIgb3V0IGVtcHR5IHN0eWxlIHNoZWV0cyB3aGVuIGRlY2lkaW5nIHdoZXRoZXIKKyAgICAg
ICAgb3Igbm90IHRvIHRyaWdnZXIgYSBzdHlsZSByZWNhbGMuIFdlIGNhbiB0aGVuIGJlIGNsZXZl
ciB3aGVuIGFuIGVtcHR5IHN0eWxlIHNoZWV0IGlzIHJlbW92ZWQKKyAgICAgICAgZnJvbSB0aGUg
ZG9jdW1lbnQsIGFuZCBhdm9pZCBjYXVzaW5nIGV4dHJhIHdvcmsuCisKKyAgICAgICAgU29tZSBw
YWdlcyB1c2UgdGhpcyBwYXR0ZXJuOgorCisgICAgICAgICAgICAoMSkgQ3JlYXRlIGEgPHN0eWxl
PiBlbGVtZW50LgorICAgICAgICAgICAgKDIpIEFkZCBpdCB0byB0aGUgZG9jdW1lbnQncyA8aGVh
ZD4gZWxlbWVudC4KKyAgICAgICAgICAgICgzKSBJbnNlcnQgc29tZSBDU1MgYXMgYSB0ZXh0IGNo
aWxkIG9mIHRoZSA8c3R5bGU+IGVsZW1lbnQuCisKKyAgICAgICAgU2luY2UgdGhlIDxzdHlsZT4g
ZWxlbWVudCBpcyBhbHJlYWR5IGluc2lkZSB0aGUgZG9jdW1lbnQgYXQgKDMpLCB3ZSBoYWQgdG8g
dHJlYXQgdGhpcyBhcyBhbgorICAgICAgICBvbGQgc3R5bGUgc2hlZXQgYmVpbmcgcmVtb3ZlZCwg
ZXZlbiB0aG91Z2ggaXQgd2FzIGp1c3QgYW4gZW1wdHkgc2hlZXQgb2Ygbm90aGluZy4KKworICAg
ICAgICBXaXRoIHRoaXMgcGF0Y2gsIERvY3VtZW50IGdhaW5zIGVub3VnaCBzbWFydHMgdG8ga25v
dyB0aGF0IHJlbW92aW5nL2FkZGluZyBhbiBlbXB0eSBzaGVldAorICAgICAgICB3b24ndCBhZmZl
Y3QgbGF5b3V0L3JlbmRlcmluZyBpbiBhbnkgbWVhbmluZ2Z1bCB3YXksIHRodXMgYSBzdHlsZSBy
ZWNhbGMgY2FuIGJlIGF2b2lkZWQuCisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAg
ICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnN0eWxl
UmVzb2x2ZXJDaGFuZ2VkKToKKworICAgICAgICAgICAgQWRkIGEgRGVmZXJSZWNhbGNTdHlsZUlm
TmVlZGVkIG1vZGUgdG8gc3R5bGVSZXNvbHZlckNoYW5nZWQoKS4KKworICAgICAgICAqIGNzcy9D
U1NTdHlsZVNoZWV0Lmg6CisgICAgICAgICogY3NzL0NTU1N0eWxlU2hlZXQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTU3R5bGVTaGVldDo6Y2xlYXJPd25lck5vZGUpOgorCisgICAgICAgICAg
ICBVc2UgRGVmZXJSZWNhbGNTdHlsZUlmTmVlZGVkIHdoZW4gc2F5aW5nIGJ5ZSBmcm9tIGEgQ1NT
U3R5bGVTaGVldCBhbmQgbGV0IERvY3VtZW50IGRlY2lkZQorICAgICAgICAgICAgaWYgcmVtb3Zp
bmcgdGhlIHNoZWV0IHNob3VsZCB0cmlnZ2VyIHN0eWxlIHJlY2FsYyBpbnN0ZWFkIG9mIGFsd2F5
cyBhc3N1bWluZyBpdCBzaG91bGQuCisKKyAgICAgICAgKiBkb20vRG9jdW1lbnRTdHlsZVNoZWV0
Q29sbGVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpmaWx0ZXJFbmFibGVkTm9uZW1wdHlD
U1NTdHlsZVNoZWV0cyk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudFN0eWxlU2hlZXRDb2xs
ZWN0aW9uOjp1cGRhdGVBY3RpdmVTdHlsZVNoZWV0cyk6CisKKyAgICAgICAgICAgIEV4Y2x1ZGUg
ZW1wdHkgc2hlZXRzIGZyb20gdGhlIGFjdGl2ZUF1dGhvclN0eWxlU2hlZXRzKCkgY29sbGVjdGlv
bi4gVGhleSBhcmUgc3RpbGwKKyAgICAgICAgICAgIHZpc2libGUgdGhyb3VnaCBDU1NPTSdzIGRv
Y3VtZW50LnN0eWxlU2hlZXRzLgorCiAyMDEzLTA4LTAxICBCcmVudCBGdWxnaGFtICA8YmZ1bGdo
YW1AYXBwbGUuY29tPgogCiAgICAgICAgIFtXaW5kb3dzXSBXZWJLaXQxIEZ1bGxzY3JlZW4gVmlk
ZW8gUGxheSBpcyBCcm9rZW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHls
ZVNoZWV0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNoZWV0LmNwcAppbmRleCA4
ODExZTM3Li5jNTI2NTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVT
aGVldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2hlZXQuY3BwCkBAIC0x
NjMsNiArMTYzLDE1IEBAIHZvaWQgQ1NTU3R5bGVTaGVldDo6ZGlkTXV0YXRlKCkKICAgICBvd25l
ci0+c3R5bGVSZXNvbHZlckNoYW5nZWQoRGVmZXJSZWNhbGNTdHlsZSk7CiB9CiAKK3ZvaWQgQ1NT
U3R5bGVTaGVldDo6Y2xlYXJPd25lck5vZGUoKQoreworICAgIERvY3VtZW50KiBvd25lciA9IG93
bmVyRG9jdW1lbnQoKTsKKyAgICBtX293bmVyTm9kZSA9IDA7CisgICAgaWYgKCFvd25lcikKKyAg
ICAgICAgcmV0dXJuOworICAgIG93bmVyLT5zdHlsZVJlc29sdmVyQ2hhbmdlZChEZWZlclJlY2Fs
Y1N0eWxlSWZOZWVkZWQpOworfQorCiB2b2lkIENTU1N0eWxlU2hlZXQ6OnJlYXR0YWNoQ2hpbGRS
dWxlQ1NTT01XcmFwcGVycygpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fY2hp
bGRSdWxlQ1NTT01XcmFwcGVycy5zaXplKCk7ICsraSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1N0eWxlU2hlZXQuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNo
ZWV0LmgKaW5kZXggOGZmZTU0ZS4uOGM3MWMwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1N0eWxlU2hlZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTaGVl
dC5oCkBAIC03NCw3ICs3NCw3IEBAIHB1YmxpYzoKICAgICB1bnNpZ25lZCBsZW5ndGgoKSBjb25z
dDsKICAgICBDU1NSdWxlKiBpdGVtKHVuc2lnbmVkIGluZGV4KTsKIAotICAgIHZpcnR1YWwgdm9p
ZCBjbGVhck93bmVyTm9kZSgpIE9WRVJSSURFIHsgZGlkTXV0YXRlKCk7IG1fb3duZXJOb2RlID0g
MDsgfQorICAgIHZpcnR1YWwgdm9pZCBjbGVhck93bmVyTm9kZSgpIE9WRVJSSURFOwogICAgIHZp
cnR1YWwgQ1NTSW1wb3J0UnVsZSogb3duZXJSdWxlKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4g
bV9vd25lclJ1bGU7IH0KICAgICB2aXJ0dWFsIEtVUkwgYmFzZVVSTCgpIGNvbnN0IE9WRVJSSURF
OwogICAgIHZpcnR1YWwgYm9vbCBpc0xvYWRpbmcoKSBjb25zdCBPVkVSUklERTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwCmluZGV4IDkzNDkzMzQuLmExMmUzOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmNwcApAQCAtMzE1NSw3ICszMTU1LDcgQEAgdm9pZCBEb2N1bWVudDo6c3R5bGVSZXNvbHZlckNo
YW5nZWQoU3R5bGVSZXNvbHZlclVwZGF0ZUZsYWcgdXBkYXRlRmxhZykKICAgICAgICAgcHJpbnRm
KCJCZWdpbm5pbmcgdXBkYXRlIG9mIHN0eWxlIHNlbGVjdG9yIGF0IHRpbWUgJWQuXG4iLCBlbGFw
c2VkVGltZSgpKTsKICNlbmRpZgogCi0gICAgRG9jdW1lbnRTdHlsZVNoZWV0Q29sbGVjdGlvbjo6
VXBkYXRlRmxhZyBzdHlsZVNoZWV0VXBkYXRlID0gKHVwZGF0ZUZsYWcgPT0gUmVjYWxjU3R5bGVJ
Zk5lZWRlZCkKKyAgICBEb2N1bWVudFN0eWxlU2hlZXRDb2xsZWN0aW9uOjpVcGRhdGVGbGFnIHN0
eWxlU2hlZXRVcGRhdGUgPSAodXBkYXRlRmxhZyA9PSBSZWNhbGNTdHlsZUlmTmVlZGVkIHx8IHVw
ZGF0ZUZsYWcgPT0gRGVmZXJSZWNhbGNTdHlsZUlmTmVlZGVkKQogICAgICAgICA/IERvY3VtZW50
U3R5bGVTaGVldENvbGxlY3Rpb246Ok9wdGltaXplZFVwZGF0ZQogICAgICAgICA6IERvY3VtZW50
U3R5bGVTaGVldENvbGxlY3Rpb246OkZ1bGxVcGRhdGU7CiAgICAgYm9vbCBzdHlsZXNoZWV0Q2hh
bmdlUmVxdWlyZXNTdHlsZVJlY2FsYyA9IG1fc3R5bGVTaGVldENvbGxlY3Rpb24tPnVwZGF0ZUFj
dGl2ZVN0eWxlU2hlZXRzKHN0eWxlU2hlZXRVcGRhdGUpOwpAQCAtMzE2NSw2ICszMTY1LDEyIEBA
IHZvaWQgRG9jdW1lbnQ6OnN0eWxlUmVzb2x2ZXJDaGFuZ2VkKFN0eWxlUmVzb2x2ZXJVcGRhdGVG
bGFnIHVwZGF0ZUZsYWcpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICBpZiAodXBkYXRl
RmxhZyA9PSBEZWZlclJlY2FsY1N0eWxlSWZOZWVkZWQpIHsKKyAgICAgICAgaWYgKHN0eWxlc2hl
ZXRDaGFuZ2VSZXF1aXJlc1N0eWxlUmVjYWxjKQorICAgICAgICAgICAgc2NoZWR1bGVGb3JjZWRT
dHlsZVJlY2FsYygpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgaWYgKGRpZExheW91
dFdpdGhQZW5kaW5nU3R5bGVzaGVldHMoKSAmJiAhbV9zdHlsZVNoZWV0Q29sbGVjdGlvbi0+aGFz
UGVuZGluZ1NoZWV0cygpKSB7CiAgICAgICAgIG1fcGVuZGluZ1NoZWV0TGF5b3V0ID0gSWdub3Jl
TGF5b3V0V2l0aFBlbmRpbmdTaGVldHM7CiAgICAgICAgIGlmIChyZW5kZXJlcigpKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuaAppbmRleCA2ZjRhYmVlLi4wNmNiMGZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApA
QCAtMTk3LDcgKzE5Nyw3IEBAIGVudW0gUGFnZXNob3dFdmVudFBlcnNpc3RlbmNlIHsKICAgICBQ
YWdlc2hvd0V2ZW50UGVyc2lzdGVkID0gMQogfTsKIAotZW51bSBTdHlsZVJlc29sdmVyVXBkYXRl
RmxhZyB7IFJlY2FsY1N0eWxlSW1tZWRpYXRlbHksIERlZmVyUmVjYWxjU3R5bGUsIFJlY2FsY1N0
eWxlSWZOZWVkZWQgfTsKK2VudW0gU3R5bGVSZXNvbHZlclVwZGF0ZUZsYWcgeyBSZWNhbGNTdHls
ZUltbWVkaWF0ZWx5LCBEZWZlclJlY2FsY1N0eWxlLCBSZWNhbGNTdHlsZUlmTmVlZGVkLCBEZWZl
clJlY2FsY1N0eWxlSWZOZWVkZWQgfTsKIAogZW51bSBOb2RlTGlzdEludmFsaWRhdGlvblR5cGUg
ewogICAgIERvTm90SW52YWxpZGF0ZU9uQXR0cmlidXRlQ2hhbmdlcyA9IDAsCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRTdHlsZVNoZWV0Q29sbGVjdGlvbi5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRTdHlsZVNoZWV0Q29sbGVjdGlvbi5jcHAKaW5kZXgg
M2Y2NmIzNC4uZjY2MGY1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
U3R5bGVTaGVldENvbGxlY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dFN0eWxlU2hlZXRDb2xsZWN0aW9uLmNwcApAQCAtNDI3LDE0ICs0MjcsMTcgQEAgc3RhdGljIGJv
b2wgc3R5bGVTaGVldHNVc2VSZW1Vbml0cyhjb25zdCBWZWN0b3I8UmVmUHRyPENTU1N0eWxlU2hl
ZXQ+ID4mIHNoZWV0cykKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXN0YXRpYyB2b2lkIGZpbHRl
ckVuYWJsZWRDU1NTdHlsZVNoZWV0cyhWZWN0b3I8UmVmUHRyPENTU1N0eWxlU2hlZXQ+ID4mIHJl
c3VsdCwgY29uc3QgVmVjdG9yPFJlZlB0cjxTdHlsZVNoZWV0PiA+JiBzaGVldHMpCitzdGF0aWMg
dm9pZCBmaWx0ZXJFbmFibGVkTm9uZW1wdHlDU1NTdHlsZVNoZWV0cyhWZWN0b3I8UmVmUHRyPENT
U1N0eWxlU2hlZXQ+ID4mIHJlc3VsdCwgY29uc3QgVmVjdG9yPFJlZlB0cjxTdHlsZVNoZWV0PiA+
JiBzaGVldHMpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNoZWV0cy5zaXplKCk7
ICsraSkgewogICAgICAgICBpZiAoIXNoZWV0c1tpXS0+aXNDU1NTdHlsZVNoZWV0KCkpCiAgICAg
ICAgICAgICBjb250aW51ZTsKICAgICAgICAgaWYgKHNoZWV0c1tpXS0+ZGlzYWJsZWQoKSkKICAg
ICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICByZXN1bHQuYXBwZW5kKHN0YXRpY19jYXN0PENT
U1N0eWxlU2hlZXQqPihzaGVldHNbaV0uZ2V0KCkpKTsKKyAgICAgICAgQ1NTU3R5bGVTaGVldCog
c2hlZXQgPSBzdGF0aWNfY2FzdDxDU1NTdHlsZVNoZWV0Kj4oc2hlZXRzW2ldLmdldCgpKTsKKyAg
ICAgICAgaWYgKCFzaGVldC0+bGVuZ3RoKCkpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAg
ICAgcmVzdWx0LmFwcGVuZChzaGVldCk7CiAgICAgfQogfQogCkBAIC00NjcsNyArNDcwLDcgQEAg
Ym9vbCBEb2N1bWVudFN0eWxlU2hlZXRDb2xsZWN0aW9uOjp1cGRhdGVBY3RpdmVTdHlsZVNoZWV0
cyhVcGRhdGVGbGFnIHVwZGF0ZUZsYWcKICAgICBhY3RpdmVDU1NTdHlsZVNoZWV0cy5hcHBlbmRW
ZWN0b3IoaW5qZWN0ZWRBdXRob3JTdHlsZVNoZWV0cygpKTsKICAgICBhY3RpdmVDU1NTdHlsZVNo
ZWV0cy5hcHBlbmRWZWN0b3IoZG9jdW1lbnRBdXRob3JTdHlsZVNoZWV0cygpKTsKICAgICBjb2xs
ZWN0QWN0aXZlQ1NTU3R5bGVTaGVldHNGcm9tU2VhbWxlc3NQYXJlbnRzKGFjdGl2ZUNTU1N0eWxl
U2hlZXRzLCBtX2RvY3VtZW50KTsKLSAgICBmaWx0ZXJFbmFibGVkQ1NTU3R5bGVTaGVldHMoYWN0
aXZlQ1NTU3R5bGVTaGVldHMsIGFjdGl2ZVN0eWxlU2hlZXRzKTsKKyAgICBmaWx0ZXJFbmFibGVk
Tm9uZW1wdHlDU1NTdHlsZVNoZWV0cyhhY3RpdmVDU1NTdHlsZVNoZWV0cywgYWN0aXZlU3R5bGVT
aGVldHMpOwogCiAgICAgU3R5bGVSZXNvbHZlclVwZGF0ZVR5cGUgc3R5bGVSZXNvbHZlclVwZGF0
ZVR5cGU7CiAgICAgYm9vbCByZXF1aXJlc0Z1bGxTdHlsZVJlY2FsYzsK
</data>
<flag name="review"
          id="229837"
          type_id="1"
          status="+"
          setter="koivisto"
    />
          </attachment>
      

    </bug>

</bugzilla>