<?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>126177</bug_id>
          
          <creation_ts>2013-12-23 12:53:27 -0800</creation_ts>
          <short_desc>REGRESSION(r133214): Don&apos;t invalidate style when adding classes that don&apos;t match rules</short_desc>
          <delta_ts>2014-01-27 09:08:39 -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>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>BlinkMergeCandidate</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>962553</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-12-23 12:53:27 -0800</bug_when>
    <thetext>Consider merging https://chromium.googlesource.com/chromium/blink/+/50ffb9fad31542e86de85e3305894d99b1d81d34
or come up with a better fix if the regression exists in WebKit.

r133214 caused a regression by making us mark elements for style recalc
when adding new classes that don&apos;t match any rules due to a logic error
in checkSelectorForClassChange. This patch corrects the logic error so
that now adding and removing class names that don&apos;t match rules will
not trigger a style recalc.

To facilitate testing this patch I added a new Internals API:
updateStyleAndReturnAffectedElementCount(). It updates the style of the document
and returns the number of elements that had a style computed for them. This
will also allow writing future tests when we make things smarter to avoid
recalcs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>972423</commentid>
    <comment_count>1</comment_count>
      <attachid>222328</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2014-01-27 08:42:52 -0800</bug_when>
    <thetext>Created attachment 222328
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>972430</commentid>
    <comment_count>2</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2014-01-27 09:08:39 -0800</bug_when>
    <thetext>https://trac.webkit.org/r162843</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>222328</attachid>
            <date>2014-01-27 08:42:52 -0800</date>
            <delta_ts>2014-01-27 08:44:39 -0800</delta_ts>
            <desc>patch</desc>
            <filename>class-change-logic.patch</filename>
            <type>text/plain</type>
            <size>3349</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2Mjg0MCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDE0LTAxLTI3ICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OKHIxMzMyMTQp
OiBEb24ndCBpbnZhbGlkYXRlIHN0eWxlIHdoZW4gYWRkaW5nIGNsYXNzZXMgdGhhdCBkb24ndCBt
YXRjaCBydWxlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTI2MTc3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAg
IAorICAgICAgICBTcG90dGVkIGJ5IEVsbGlvdHQgU3ByZWhuIGluIENocm9taXVtLgorCisgICAg
ICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y2hlY2tTZWxlY3RvckZv
ckNsYXNzQ2hhbmdlKToKKyAgICAgICAgCisgICAgICAgICAgICBSZW1vdmUgdW5uZWNlc3Nhcnkg
dGVtcGxhdGluZy4KKworICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6Y2xhc3NBdHRyaWJ1dGVD
aGFuZ2VkKToKKyAgICAgICAgCisgICAgICAgICAgICBGaXggbG9naWMgZXJyb3Igd2l0aCAnY29u
dGludWUnLgorCiAyMDE0LTAxLTI3ICBKZXNzaWUgQmVybGluICA8amJlcmxpbkBhcHBsZS5jb20+
CiAKICAgICAgICAgQnVpbGQgZml4IGFmdGVyIHIxNjI4MzguCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9kb20vRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0VsZW1l
bnQuY3BwCShyZXZpc2lvbiAxNjI4MzYpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTExNTMsNDIgKzExNTMsNDMgQEAgc3RhdGljIGlubGluZSBi
b29sIGNsYXNzU3RyaW5nSGFzQ2xhc3NOYQogICAgIHJldHVybiBjbGFzc1N0cmluZ0hhc0NsYXNz
TmFtZShuZXdDbGFzc1N0cmluZy5jaGFyYWN0ZXJzMTYoKSwgbGVuZ3RoKTsKIH0KIAotdGVtcGxh
dGU8dHlwZW5hbWUgQ2hlY2tlcj4KLXN0YXRpYyBib29sIGNoZWNrU2VsZWN0b3JGb3JDbGFzc0No
YW5nZShjb25zdCBTcGFjZVNwbGl0U3RyaW5nJiBjaGFuZ2VkQ2xhc3NlcywgY29uc3QgQ2hlY2tl
ciYgY2hlY2tlcikKK3N0YXRpYyBib29sIGNoZWNrU2VsZWN0b3JGb3JDbGFzc0NoYW5nZShjb25z
dCBTcGFjZVNwbGl0U3RyaW5nJiBjaGFuZ2VkQ2xhc3NlcywgY29uc3QgU3R5bGVSZXNvbHZlciYg
c3R5bGVSZXNvbHZlcikKIHsKICAgICB1bnNpZ25lZCBjaGFuZ2VkU2l6ZSA9IGNoYW5nZWRDbGFz
c2VzLnNpemUoKTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgY2hhbmdlZFNpemU7ICsr
aSkgewotICAgICAgICBpZiAoY2hlY2tlci5oYXNTZWxlY3RvckZvckNsYXNzKGNoYW5nZWRDbGFz
c2VzW2ldKSkKKyAgICAgICAgaWYgKHN0eWxlUmVzb2x2ZXIuaGFzU2VsZWN0b3JGb3JDbGFzcyhj
aGFuZ2VkQ2xhc3Nlc1tpXSkpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAg
cmV0dXJuIGZhbHNlOwogfQogCi10ZW1wbGF0ZTx0eXBlbmFtZSBDaGVja2VyPgotc3RhdGljIGJv
b2wgY2hlY2tTZWxlY3RvckZvckNsYXNzQ2hhbmdlKGNvbnN0IFNwYWNlU3BsaXRTdHJpbmcmIG9s
ZENsYXNzZXMsIGNvbnN0IFNwYWNlU3BsaXRTdHJpbmcmIG5ld0NsYXNzZXMsIGNvbnN0IENoZWNr
ZXImIGNoZWNrZXIpCitzdGF0aWMgYm9vbCBjaGVja1NlbGVjdG9yRm9yQ2xhc3NDaGFuZ2UoY29u
c3QgU3BhY2VTcGxpdFN0cmluZyYgb2xkQ2xhc3NlcywgY29uc3QgU3BhY2VTcGxpdFN0cmluZyYg
bmV3Q2xhc3NlcywgY29uc3QgU3R5bGVSZXNvbHZlciYgc3R5bGVSZXNvbHZlcikKIHsKICAgICB1
bnNpZ25lZCBvbGRTaXplID0gb2xkQ2xhc3Nlcy5zaXplKCk7CiAgICAgaWYgKCFvbGRTaXplKQot
ICAgICAgICByZXR1cm4gY2hlY2tTZWxlY3RvckZvckNsYXNzQ2hhbmdlKG5ld0NsYXNzZXMsIGNo
ZWNrZXIpOworICAgICAgICByZXR1cm4gY2hlY2tTZWxlY3RvckZvckNsYXNzQ2hhbmdlKG5ld0Ns
YXNzZXMsIHN0eWxlUmVzb2x2ZXIpOwogICAgIEJpdFZlY3RvciByZW1haW5pbmdDbGFzc0JpdHM7
CiAgICAgcmVtYWluaW5nQ2xhc3NCaXRzLmVuc3VyZVNpemUob2xkU2l6ZSk7CiAgICAgLy8gQ2xh
c3MgdmVjdG9ycyB0ZW5kIHRvIGJlIHZlcnkgc2hvcnQuIFRoaXMgaXMgZmFzdGVyIHRoYW4gdXNp
bmcgYSBoYXNoIHRhYmxlLgogICAgIHVuc2lnbmVkIG5ld1NpemUgPSBuZXdDbGFzc2VzLnNpemUo
KTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbmV3U2l6ZTsgKytpKSB7CisgICAgICAg
IGJvb2wgZm91bmRGcm9tQm90aCA9IGZhbHNlOwogICAgICAgICBmb3IgKHVuc2lnbmVkIGogPSAw
OyBqIDwgb2xkU2l6ZTsgKytqKSB7CiAgICAgICAgICAgICBpZiAobmV3Q2xhc3Nlc1tpXSA9PSBv
bGRDbGFzc2VzW2pdKSB7CiAgICAgICAgICAgICAgICAgcmVtYWluaW5nQ2xhc3NCaXRzLnF1aWNr
U2V0KGopOwotICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIGZvdW5k
RnJvbUJvdGggPSB0cnVlOwogICAgICAgICAgICAgfQogICAgICAgICB9Ci0gICAgICAgIGlmIChj
aGVja2VyLmhhc1NlbGVjdG9yRm9yQ2xhc3MobmV3Q2xhc3Nlc1tpXSkpCisgICAgICAgIGlmIChm
b3VuZEZyb21Cb3RoKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIGlmIChzdHlsZVJl
c29sdmVyLmhhc1NlbGVjdG9yRm9yQ2xhc3MobmV3Q2xhc3Nlc1tpXSkpCiAgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG9sZFNpemU7
ICsraSkgewogICAgICAgICAvLyBJZiB0aGUgYml0IGlzIG5vdCBzZXQgdGhlIHRoZSBjb3JyZXNw
b25kaW5nIGNsYXNzIGhhcyBiZWVuIHJlbW92ZWQuCiAgICAgICAgIGlmIChyZW1haW5pbmdDbGFz
c0JpdHMucXVpY2tHZXQoaSkpCiAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgaWYgKGNo
ZWNrZXIuaGFzU2VsZWN0b3JGb3JDbGFzcyhvbGRDbGFzc2VzW2ldKSkKKyAgICAgICAgaWYgKHN0
eWxlUmVzb2x2ZXIuaGFzU2VsZWN0b3JGb3JDbGFzcyhvbGRDbGFzc2VzW2ldKSkKICAgICAgICAg
ICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICByZXR1cm4gZmFsc2U7Cg==
</data>
<flag name="review"
          id="246312"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>