<?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>78220</bug_id>
          
          <creation_ts>2012-02-09 03:51:06 -0800</creation_ts>
          <short_desc>Avoid unnecessary work when evaluating style sharing candidates.</short_desc>
          <delta_ts>2012-03-04 23:51:04 -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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>78274</dependson>
    
    <dependson>80245</dependson>
          <blocked>78070</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Andreas Kling">kling</reporter>
          <assigned_to name="Andreas Kling">kling</assigned_to>
          <cc>jchaffraix</cc>
    
    <cc>koivisto</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>553033</commentid>
    <comment_count>0</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2012-02-09 03:51:06 -0800</bug_when>
    <thetext>CSSStyleSelector::canShareStyleWithElement() has gathered a fair bit of cruft, we can reorder parts of it, and avoid some bits altogether.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>553049</commentid>
    <comment_count>1</comment_count>
      <attachid>126277</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2012-02-09 04:25:10 -0800</bug_when>
    <thetext>Created attachment 126277
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>553318</commentid>
    <comment_count>2</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2012-02-09 10:56:52 -0800</bug_when>
    <thetext>Committed r107261: &lt;http://trac.webkit.org/changeset/107261&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>553442</commentid>
    <comment_count>3</comment_count>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-02-09 13:05:07 -0800</bug_when>
    <thetext>Reopening as I rolled the change out in r107279.

This test started failing after the change:

svg/W3C-SVG-1.1/styling-css-05-b.svg

Visually, it looked like the wrong lang() selector was applied: the test assumes we apply the lang(fr) one but we were applying lang(en) after the change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>555125</commentid>
    <comment_count>4</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2012-02-13 02:24:06 -0800</bug_when>
    <thetext>Relanded in &lt;http://trac.webkit.org/changeset/107551&gt; without breaking the lang() selector.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126277</attachid>
            <date>2012-02-09 04:25:10 -0800</date>
            <delta_ts>2012-02-09 08:31:29 -0800</delta_ts>
            <desc>Proposed patch</desc>
            <filename>bug-78220.diff</filename>
            <type>text/plain</type>
            <size>6482</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA0N2JkNjRlLi5jYzQ4MmMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQg
QEAKKzIwMTItMDItMDkgIEFuZHJlYXMgS2xpbmcgIDxhd2Vzb21la2xpbmdAYXBwbGUuY29tPgor
CisgICAgICAgIEF2b2lkIHVubmVjZXNzYXJ5IHdvcmsgd2hlbiBldmFsdWF0aW5nIHN0eWxlIHNo
YXJpbmcgY2FuZGlkYXRlcy4KKyAgICAgICAgPGh0dHA6Ly93ZWJraXQub3JnL2IvNzgyMjA+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRG8gdGhlIGNo
ZWFwIGNoZWNrcyAoYml0ZmllbGRzLCBwb2ludGVycykgYmVmb3JlIGNhbGxpbmcgdmlydHVhbHMg
YW5kIGRvaW5nIGhhc2ggbG9va3Vwcy4KKyAgICAgICAgUmVtb3ZlIGNvbXBhcmlzb24gb2YgYXR0
cmlidXRlcyB0aGF0IGFyZSByZWZsZWN0ZWQgaW4gdGhlIGF0dHJpYnV0ZSBzdHlsZXMgKGNlbGxw
YWRkaW5nLAorICAgICAgICBsYW5nIGFuZCB4bWw6bGFuZy4pIE1vdmVkIGNvbXBhcmlzb24gb2Yg
InR5cGUiIGFuZCAicmVhZG9ubHkiIGF0dHJpYnV0ZXMgaW50byB0aGUgbW9yZQorICAgICAgICBz
cGVjaWZpYyBjYW5TaGFyZVN0eWxlV2l0aENvbnRyb2woKSBzaW5jZSB0aGV5IGFyZSBvbmx5IHJl
bGV2YW50IGZvciBpbnB1dCBlbGVtZW50cy4KKyAgICAgICAgRG9uJ3QgYm90aGVyIGNhbGxpbmcg
aXNGb3JtQ29udHJvbEVsZW1lbnQoKSBvbiBib3RoIGVsZW1lbnRzIHNpbmNlIHdlIGFscmVhZHkg
a25vdyB0aGV5CisgICAgICAgIGhhdmUgdGhlIHNhbWUgdGFnUU5hbWUoKS4KKworICAgICAgICBB
bHRvZ2V0aGVyIHRoaXMga25vY2tzIG9mZiA4LTltcyB3b3J0aCBvZiBzYW1wbGVzIHBlciBjeWNs
ZSBvZiB0aGUgIk1veiIgcGFnZSBjeWNsZXIgdGVzdC4KKworICAgICAgICAqIGNzcy9DU1NTdHls
ZVNlbGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6OmNhblNo
YXJlU3R5bGVXaXRoQ29udHJvbCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVNlbGVjdG9y
OjpjYW5TaGFyZVN0eWxlV2l0aEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6aXNDb21tb25B
dHRyaWJ1dGVTZWxlY3RvckF0dHJpYnV0ZSk6CisKIDIwMTItMDItMDggIEFuZHJlYXMgS2xpbmcg
IDxhd2Vzb21la2xpbmdAYXBwbGUuY29tPgogCiAgICAgICAgIFNpbXBsaWZ5IG93bmVyc2hpcCBv
ZiBTdHlsZWRFbGVtZW50OjphZGRpdGlvbmFsQXR0cmlidXRlU3R5bGVzKCkuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAKaW5kZXggMmVjYTBjOC4uYmEwOTI4NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcApAQCAtMTE5MSw2ICsxMTkxLDEyIEBA
IGJvb2wgQ1NTU3R5bGVTZWxlY3Rvcjo6Y2FuU2hhcmVTdHlsZVdpdGhDb250cm9sKFN0eWxlZEVs
ZW1lbnQqIGVsZW1lbnQpIGNvbnN0CiAgICAgaWYgKGVsZW1lbnQtPmlzT3V0T2ZSYW5nZSgpICE9
IG1fZWxlbWVudC0+aXNPdXRPZlJhbmdlKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAorICAg
IGlmIChlbGVtZW50LT5mYXN0R2V0QXR0cmlidXRlKHR5cGVBdHRyKSAhPSBtX2VsZW1lbnQtPmZh
c3RHZXRBdHRyaWJ1dGUodHlwZUF0dHIpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBp
ZiAoZWxlbWVudC0+ZmFzdEdldEF0dHJpYnV0ZShyZWFkb25seUF0dHIpICE9IG1fZWxlbWVudC0+
ZmFzdEdldEF0dHJpYnV0ZShyZWFkb25seUF0dHIpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisK
ICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtMTIzNiwxMCArMTI0Miw2IEBAIGJvb2wgQ1NTU3R5
bGVTZWxlY3Rvcjo6Y2FuU2hhcmVTdHlsZVdpdGhFbGVtZW50KFN0eWxlZEVsZW1lbnQqIGVsZW1l
bnQpIGNvbnN0CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoISFlbGVtZW50LT5hdHRy
aWJ1dGVTdHlsZSgpICE9ICEhbV9zdHlsZWRFbGVtZW50LT5hdHRyaWJ1dGVTdHlsZSgpKQogICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgU3R5bGVQcm9wZXJ0eVNldCogYWRkaXRpb25hbEF0dHJp
YnV0ZVN0eWxlQSA9IGVsZW1lbnQtPmFkZGl0aW9uYWxBdHRyaWJ1dGVTdHlsZSgpOwotICAgIFN0
eWxlUHJvcGVydHlTZXQqIGFkZGl0aW9uYWxBdHRyaWJ1dGVTdHlsZUIgPSBtX3N0eWxlZEVsZW1l
bnQtPmFkZGl0aW9uYWxBdHRyaWJ1dGVTdHlsZSgpOwotICAgIGlmICghYWRkaXRpb25hbEF0dHJp
YnV0ZVN0eWxlQSAhPSAhYWRkaXRpb25hbEF0dHJpYnV0ZVN0eWxlQikKLSAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgIGlmIChlbGVtZW50LT5pc0xpbmsoKSAhPSBtX2VsZW1lbnQtPmlzTGluaygp
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKHN0eWxlLT5hZmZlY3RlZEJ5VW5jb21t
b25BdHRyaWJ1dGVTZWxlY3RvcnMoKSkKQEAgLTEyNTAsNDEgKzEyNTIsMTYgQEAgYm9vbCBDU1NT
dHlsZVNlbGVjdG9yOjpjYW5TaGFyZVN0eWxlV2l0aEVsZW1lbnQoU3R5bGVkRWxlbWVudCogZWxl
bWVudCkgY29uc3QKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmIChlbGVtZW50LT5mb2N1
c2VkKCkgIT0gbV9lbGVtZW50LT5mb2N1c2VkKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAg
ICBpZiAoZWxlbWVudC0+c2hhZG93UHNldWRvSWQoKSAhPSBtX2VsZW1lbnQtPnNoYWRvd1BzZXVk
b0lkKCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoZWxlbWVudCA9PSBlbGVtZW50
LT5kb2N1bWVudCgpLT5jc3NUYXJnZXQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlm
IChtX2VsZW1lbnQgPT0gbV9lbGVtZW50LT5kb2N1bWVudCgpLT5jc3NUYXJnZXQoKSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwotICAgIGlmIChlbGVtZW50LT5nZXRBdHRyaWJ1dGUodHlwZUF0dHIp
ICE9IG1fZWxlbWVudC0+Z2V0QXR0cmlidXRlKHR5cGVBdHRyKSkKLSAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgIGlmIChlbGVtZW50LT5mYXN0R2V0QXR0cmlidXRlKFhNTE5hbWVzOjpsYW5nQXR0
cikgIT0gbV9lbGVtZW50LT5mYXN0R2V0QXR0cmlidXRlKFhNTE5hbWVzOjpsYW5nQXR0cikpCi0g
ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoZWxlbWVudC0+ZmFzdEdldEF0dHJpYnV0ZShs
YW5nQXR0cikgIT0gbV9lbGVtZW50LT5mYXN0R2V0QXR0cmlidXRlKGxhbmdBdHRyKSkKLSAgICAg
ICAgcmV0dXJuIGZhbHNlOwotICAgIGlmIChlbGVtZW50LT5mYXN0R2V0QXR0cmlidXRlKHJlYWRv
bmx5QXR0cikgIT0gbV9lbGVtZW50LT5mYXN0R2V0QXR0cmlidXRlKHJlYWRvbmx5QXR0cikpCi0g
ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoZWxlbWVudC0+ZmFzdEdldEF0dHJpYnV0ZShj
ZWxscGFkZGluZ0F0dHIpICE9IG1fZWxlbWVudC0+ZmFzdEdldEF0dHJpYnV0ZShjZWxscGFkZGlu
Z0F0dHIpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBpZiAoZWxlbWVudC0+aGFzSUQo
KSAmJiBtX2ZlYXR1cmVzLmlkc0luUnVsZXMuY29udGFpbnMoZWxlbWVudC0+aWRGb3JTdHlsZVJl
c29sdXRpb24oKS5pbXBsKCkpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSNpZiBFTkFCTEUo
U1RZTEVfU0NPUEVEKQotICAgIGlmIChlbGVtZW50LT5oYXNTY29wZWRIVE1MU3R5bGVDaGlsZCgp
KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0jZW5kaWYKLQotICAgIGJvb2wgaXNDb250cm9sID0g
ZWxlbWVudC0+aXNGb3JtQ29udHJvbEVsZW1lbnQoKTsKLQotICAgIGlmIChpc0NvbnRyb2wgIT0g
bV9lbGVtZW50LT5pc0Zvcm1Db250cm9sRWxlbWVudCgpKQotICAgICAgICByZXR1cm4gZmFsc2U7
Ci0KLSAgICBpZiAoaXNDb250cm9sICYmICFjYW5TaGFyZVN0eWxlV2l0aENvbnRyb2woZWxlbWVu
dCkpCisgICAgaWYgKGVsZW1lbnQtPnNoYWRvd1BzZXVkb0lkKCkgIT0gbV9lbGVtZW50LT5zaGFk
b3dQc2V1ZG9JZCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0KICAgICBpZiAoc3R5bGUtPnRy
YW5zaXRpb25zKCkgfHwgc3R5bGUtPmFuaW1hdGlvbnMoKSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgIGlmIChlbGVtZW50LT5pc0xpbmsoKSAmJiBtX2VsZW1lbnRMaW5rU3RhdGUgIT0gc3R5
bGUtPmluc2lkZUxpbmsoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAjaWYgVVNFKEFDQ0VM
RVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIC8vIFR1cm4gb2ZmIHN0eWxlIHNoYXJpbmcgZm9yIGVs
ZW1lbnRzIHRoYXQgY2FuIGdhaW4gbGF5ZXJzIGZvciByZWFzb25zIG91dHNpZGUgb2YgdGhlIHN0
eWxlIHN5c3RlbS4KQEAgLTEyOTgsMjAgKzEyNzUsMzYgQEAgYm9vbCBDU1NTdHlsZVNlbGVjdG9y
OjpjYW5TaGFyZVN0eWxlV2l0aEVsZW1lbnQoU3R5bGVkRWxlbWVudCogZWxlbWVudCkgY29uc3QK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCiAKKyAgICBpZiAoZWxlbWVudC0+aGFzSUQo
KSAmJiBtX2ZlYXR1cmVzLmlkc0luUnVsZXMuY29udGFpbnMoZWxlbWVudC0+aWRGb3JTdHlsZVJl
c29sdXRpb24oKS5pbXBsKCkpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoZWxl
bWVudC0+aXNGb3JtQ29udHJvbEVsZW1lbnQoKSAmJiAhY2FuU2hhcmVTdHlsZVdpdGhDb250cm9s
KGVsZW1lbnQpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICBpZiAoZXF1YWxJZ25vcmlu
Z0Nhc2UoZWxlbWVudC0+ZmFzdEdldEF0dHJpYnV0ZShkaXJBdHRyKSwgImF1dG8iKSB8fCBlcXVh
bElnbm9yaW5nQ2FzZShtX2VsZW1lbnQtPmZhc3RHZXRBdHRyaWJ1dGUoZGlyQXR0ciksICJhdXRv
IikpCiAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoZWxlbWVudC0+aGFzSUQoKSAmJiBt
X2ZlYXR1cmVzLmlkc0luUnVsZXMuY29udGFpbnMoZWxlbWVudC0+aWRGb3JTdHlsZVJlc29sdXRp
b24oKS5pbXBsKCkpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKIAogICAgIGlmIChlbGVtZW50
LT5oYXNDbGFzcygpICYmIG1fZWxlbWVudC0+Z2V0QXR0cmlidXRlKGNsYXNzQXR0cikgIT0gZWxl
bWVudC0+Z2V0QXR0cmlidXRlKGNsYXNzQXR0cikpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAor
ICAgIFN0eWxlUHJvcGVydHlTZXQqIGFkZGl0aW9uYWxBdHRyaWJ1dGVTdHlsZUEgPSBlbGVtZW50
LT5hZGRpdGlvbmFsQXR0cmlidXRlU3R5bGUoKTsKKyAgICBTdHlsZVByb3BlcnR5U2V0KiBhZGRp
dGlvbmFsQXR0cmlidXRlU3R5bGVCID0gbV9zdHlsZWRFbGVtZW50LT5hZGRpdGlvbmFsQXR0cmli
dXRlU3R5bGUoKTsKKyAgICBpZiAoIWFkZGl0aW9uYWxBdHRyaWJ1dGVTdHlsZUEgIT0gIWFkZGl0
aW9uYWxBdHRyaWJ1dGVTdHlsZUIpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwogICAgIGlmIChl
bGVtZW50LT5hdHRyaWJ1dGVTdHlsZSgpICYmICFhdHRyaWJ1dGVTdHlsZXNFcXVhbChlbGVtZW50
LT5hdHRyaWJ1dGVTdHlsZSgpLCBtX3N0eWxlZEVsZW1lbnQtPmF0dHJpYnV0ZVN0eWxlKCkpKQog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBpZiAoYWRkaXRpb25hbEF0dHJpYnV0ZVN0eWxl
QSAmJiAhYXR0cmlidXRlU3R5bGVzRXF1YWwoYWRkaXRpb25hbEF0dHJpYnV0ZVN0eWxlQSwgYWRk
aXRpb25hbEF0dHJpYnV0ZVN0eWxlQikpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGlm
IChlbGVtZW50LT5pc0xpbmsoKSAmJiBtX2VsZW1lbnRMaW5rU3RhdGUgIT0gc3R5bGUtPmluc2lk
ZUxpbmsoKSkKKyNpZiBFTkFCTEUoU1RZTEVfU0NPUEVEKQorICAgIGlmIChlbGVtZW50LT5oYXNT
Y29wZWRIVE1MU3R5bGVDaGlsZCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYKIAog
ICAgIHJldHVybiB0cnVlOwogfQpAQCAtMjE3Myw3ICsyMTY2LDcgQEAgc3RhdGljIGlubGluZSBi
b29sIHNlbGVjdG9yTGlzdENvbnRhaW5zVW5jb21tb25BdHRyaWJ1dGVTZWxlY3Rvcihjb25zdCBD
U1NTZWxlY3QKIAogc3RhdGljIGlubGluZSBib29sIGlzQ29tbW9uQXR0cmlidXRlU2VsZWN0b3JB
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlKQogewotICAgIC8vIFRoZXNl
IGFyZSBleHBsaWNpdGx5IHRlc3RlZCBmb3IgZXF1YWxpdHkgaW4gY2FuU2hhcmVTdHlsZVdpdGhF
bGVtZW50LgorICAgIC8vIFRoZXNlIGFyZSBleHBsaWNpdGx5IHRlc3RlZCBmb3IgZXF1YWxpdHkg
aW4gY2FuU2hhcmVTdHlsZVdpdGhDb250cm9sLgogICAgIHJldHVybiBhdHRyaWJ1dGUgPT0gdHlw
ZUF0dHIgfHwgYXR0cmlidXRlID09IHJlYWRvbmx5QXR0cjsKIH0KIAo=
</data>
<flag name="review"
          id="128050"
          type_id="1"
          status="+"
          setter="koivisto"
    />
          </attachment>
      

    </bug>

</bugzilla>