<?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>129689</bug_id>
          
          <creation_ts>2014-03-04 11:29:16 -0800</creation_ts>
          <short_desc>Add a Document::updateStyleIfNeededForNode(Node&amp;).</short_desc>
          <delta_ts>2014-03-04 14:17:31 -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="Andreas Kling">kling</reporter>
          <assigned_to name="Andreas Kling">kling</assigned_to>
          <cc>kling</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>986893</commentid>
    <comment_count>0</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-03-04 11:29:16 -0800</bug_when>
    <thetext>Add a Document::updateStyleIfNeededForNode(Node&amp;) so we can avoid doing full style updates when we&apos;re only interested in a single node (whose style isn&apos;t dirty.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>986894</commentid>
    <comment_count>1</comment_count>
      <attachid>225795</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-03-04 11:29:55 -0800</bug_when>
    <thetext>Created attachment 225795
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>986899</commentid>
    <comment_count>2</comment_count>
      <attachid>225795</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2014-03-04 11:35:55 -0800</bug_when>
    <thetext>Comment on attachment 225795
Patch

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

&gt; Source/WebCore/dom/Document.cpp:6055
&gt; +static inline bool nodeOrItsAncestorNeedsStyleRecalc(const Node&amp; node)
&gt; +{
&gt; +    if (node.document().hasPendingForcedStyleRecalc())
&gt; +        return true;

Please pass in the Document, the caller knows (is!) it.

&gt; Source/WebCore/dom/Document.cpp:6063
&gt; +bool Document::updateStyleIfNeededForNode(const Node&amp; node)

It would be better if this took Element. Generic Nodes don&apos;t have style.

However since some of the client code is Node-based perhaps it is better to refactor this separately.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>986972</commentid>
    <comment_count>3</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-03-04 14:17:31 -0800</bug_when>
    <thetext>Committed r165076: &lt;http://trac.webkit.org/changeset/165076&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>225795</attachid>
            <date>2014-03-04 11:29:55 -0800</date>
            <delta_ts>2014-03-04 11:35:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-129689.diff</filename>
            <type>text/plain</type>
            <size>5090</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBjZTM3NjNmLi4xYmIxYjBhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0
IEBACisyMDE0LTAzLTA0ICBBbmRyZWFzIEtsaW5nICA8YWtsaW5nQGFwcGxlLmNvbT4KKworICAg
ICAgICBBZGQgYSBEb2N1bWVudDo6dXBkYXRlU3R5bGVJZk5lZWRlZEZvck5vZGUoTm9kZSYpLgor
ICAgICAgICA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMTI5Njg5PgorCisgICAgICAgIEdlbmVyYWxp
emUgdGhlIG1lY2hhbmlzbSB0aGF0IGNvbXB1dGVkIHN0eWxlIHVzZXMgdG8gYXZvaWQgZG9pbmcg
ZnVsbAorICAgICAgICBzdHlsZSB1cGRhdGVzIHdoZW4gdGhlIG5vZGUgd2UncmUgaW50ZXJlc3Rl
ZCBpbiBpc24ndCBhY3R1YWxseSBkaXJ0eS4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIGNzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q29tcHV0ZWRTdHlsZUV4dHJhY3Rvcjo6cHJvcGVydHlWYWx1
ZSk6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om5vZGVP
ckl0c0FuY2VzdG9yTmVlZHNTdHlsZVJlY2FsYyk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVu
dDo6dXBkYXRlU3R5bGVJZk5lZWRlZEZvck5vZGUpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5o
OgorICAgICAgICAqIGVkaXRpbmcvaHRtbGVkaXRpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
aXNFZGl0YWJsZVBvc2l0aW9uKToKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxl
cik6CisKIDIwMTQtMDMtMDQgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAg
ICAgICBCdWlsZCBmaXggZm9yIGlPUy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Nv
bXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKaW5kZXggODY3ZjkyMS4uZTllYjUwNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAK
QEAgLTE2MDksMTcgKzE2MDksNiBAQCBQYXNzUmVmPE11dGFibGVTdHlsZVByb3BlcnRpZXM+IENT
U0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbjo6Y29weVByb3BlcnRpZXMoKSBjbwogICAgIHJldHVy
biBDb21wdXRlZFN0eWxlRXh0cmFjdG9yKG1fbm9kZSwgbV9hbGxvd1Zpc2l0ZWRTdHlsZSwgbV9w
c2V1ZG9FbGVtZW50U3BlY2lmaWVyKS5jb3B5UHJvcGVydGllcygpOwogfQogCi1zdGF0aWMgaW5s
aW5lIGJvb2wgbm9kZU9ySXRzQW5jZXN0b3JOZWVkc1N0eWxlUmVjYWxjKE5vZGUqIHN0eWxlZE5v
ZGUpCi17Ci0gICAgaWYgKHN0eWxlZE5vZGUtPmRvY3VtZW50KCkuaGFzUGVuZGluZ0ZvcmNlZFN0
eWxlUmVjYWxjKCkpCi0gICAgICAgIHJldHVybiB0cnVlOwotICAgIGZvciAoTm9kZSogbiA9IHN0
eWxlZE5vZGU7IG47IG4gPSBuLT5wYXJlbnROb2RlKCkpIHsvLyBGSVhNRTogQ2FsbCBwYXJlbnRP
clNoYWRvd0hvc3ROb2RlKCkgaW5zdGVhZAotICAgICAgICBpZiAobi0+bmVlZHNTdHlsZVJlY2Fs
YygpKQotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotICAgIHJldHVybiBmYWxzZTsK
LX0KLQogc3RhdGljIGlubGluZSBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBjb21wdXRlUmVuZGVy
U3R5bGVGb3JQcm9wZXJ0eShOb2RlKiBzdHlsZWROb2RlLCBQc2V1ZG9JZCBwc2V1ZG9FbGVtZW50
U3BlY2lmaWVyLCBDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQpCiB7CiAgICAgUmVuZGVyT2JqZWN0
KiByZW5kZXJlciA9IHN0eWxlZE5vZGUtPnJlbmRlcmVyKCk7CkBAIC0xNjc0LDggKzE2NjMsNyBA
QCBQYXNzUmVmUHRyPENTU1ZhbHVlPiBDb21wdXRlZFN0eWxlRXh0cmFjdG9yOjpwcm9wZXJ0eVZh
bHVlKENTU1Byb3BlcnR5SUQgcHJvcGVydAogICAgIGlmICh1cGRhdGVMYXlvdXQpIHsKICAgICAg
ICAgRG9jdW1lbnQmIGRvY3VtZW50ID0gc3R5bGVkTm9kZS0+ZG9jdW1lbnQoKTsKIAotICAgICAg
ICBpZiAobm9kZU9ySXRzQW5jZXN0b3JOZWVkc1N0eWxlUmVjYWxjKHN0eWxlZE5vZGUpKSB7Ci0g
ICAgICAgICAgICBkb2N1bWVudC51cGRhdGVTdHlsZUlmTmVlZGVkKCk7CisgICAgICAgIGlmIChk
b2N1bWVudC51cGRhdGVTdHlsZUlmTmVlZGVkRm9yTm9kZSgqc3R5bGVkTm9kZSkpIHsKICAgICAg
ICAgICAgIC8vIFRoZSBzdHlsZSByZWNhbGMgY291bGQgaGF2ZSBjYXVzZWQgdGhlIHN0eWxlZCBu
b2RlIHRvIGJlIGRpc2NhcmRlZCBvciByZXBsYWNlZAogICAgICAgICAgICAgLy8gaWYgaXQgd2Fz
IGEgUHNldWRvRWxlbWVudCBzbyB3ZSBuZWVkIHRvIHVwZGF0ZSBpdC4KICAgICAgICAgICAgIHN0
eWxlZE5vZGUgPSB0aGlzLT5zdHlsZWROb2RlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRl
eCAwYmY5MTM3Li41YWQ3YTQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTYwNDksNCAr
NjA0OSwyMyBAQCBib29sIERvY3VtZW50Ojp1bndyYXBDcnlwdG9LZXkoY29uc3QgVmVjdG9yPHVp
bnQ4X3Q+JiB3cmFwcGVkS2V5LCBWZWN0b3I8dWludDhfdAogfQogI2VuZGlmIC8vIEVOQUJMRShT
VUJUTEVfQ1JZUFRPKQogCitzdGF0aWMgaW5saW5lIGJvb2wgbm9kZU9ySXRzQW5jZXN0b3JOZWVk
c1N0eWxlUmVjYWxjKGNvbnN0IE5vZGUmIG5vZGUpCit7CisgICAgaWYgKG5vZGUuZG9jdW1lbnQo
KS5oYXNQZW5kaW5nRm9yY2VkU3R5bGVSZWNhbGMoKSkKKyAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgZm9yIChjb25zdCBOb2RlKiBuID0gJm5vZGU7IG47IG4gPSBuLT5wYXJlbnRPclNoYWRvd0hv
c3RFbGVtZW50KCkpIHsKKyAgICAgICAgaWYgKG4tPm5lZWRzU3R5bGVSZWNhbGMoKSkKKyAgICAg
ICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wg
RG9jdW1lbnQ6OnVwZGF0ZVN0eWxlSWZOZWVkZWRGb3JOb2RlKGNvbnN0IE5vZGUmIG5vZGUpCit7
CisgICAgaWYgKCFub2RlT3JJdHNBbmNlc3Rvck5lZWRzU3R5bGVSZWNhbGMobm9kZSkpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICB1cGRhdGVTdHlsZUlmTmVlZGVkKCk7CisgICAgcmV0dXJu
IHRydWU7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5k
ZXggNDFlODIxNS4uMTRkYTFiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTU4OSw2ICs1ODks
NyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHJlY2FsY1N0eWxlKFN0eWxlOjpDaGFuZ2UgPSBTdHls
ZTo6Tm9DaGFuZ2UpOwogICAgIHZvaWQgdXBkYXRlU3R5bGVJZk5lZWRlZCgpOworICAgIGJvb2wg
dXBkYXRlU3R5bGVJZk5lZWRlZEZvck5vZGUoY29uc3QgTm9kZSYpOwogICAgIHZvaWQgdXBkYXRl
TGF5b3V0KCk7CiAgICAgdm9pZCB1cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMo
KTsKICAgICBQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZUZvckVsZW1lbnRJZ25vcmluZ1BlbmRp
bmdTdHlsZXNoZWV0cyhFbGVtZW50Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL2h0bWxlZGl0aW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaHRtbGVkaXRpbmcu
Y3BwCmluZGV4IDA1MDU4M2QuLjRjYmQ2ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvaHRtbGVkaXRpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaHRtbGVk
aXRpbmcuY3BwCkBAIC0xNDYsNyArMTQ2LDcgQEAgYm9vbCBpc0VkaXRhYmxlUG9zaXRpb24oY29u
c3QgUG9zaXRpb24mIHAsIEVkaXRhYmxlVHlwZSBlZGl0YWJsZVR5cGUsIEVVcGRhdGVTdHkKICAg
ICBpZiAoIW5vZGUpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAodXBkYXRlU3R5bGUg
PT0gVXBkYXRlU3R5bGUpCi0gICAgICAgIG5vZGUtPmRvY3VtZW50KCkudXBkYXRlU3R5bGVJZk5l
ZWRlZCgpOworICAgICAgICBub2RlLT5kb2N1bWVudCgpLnVwZGF0ZVN0eWxlSWZOZWVkZWRGb3JO
b2RlKCpub2RlKTsKICAgICBlbHNlCiAgICAgICAgIEFTU0VSVCh1cGRhdGVTdHlsZSA9PSBEb05v
dFVwZGF0ZVN0eWxlKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5w
dXRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAK
aW5kZXggMThkMDRmOS4uZjhjOTc3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MSW5wdXRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVs
ZW1lbnQuY3BwCkBAIC0xMTc2LDcgKzExNzYsNyBAQCB2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OmRl
ZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2dCkKICAgICAgICAgICAgIHJldHVybjsKICAgICB9
CiAKLSAgICBkb2N1bWVudCgpLnVwZGF0ZVN0eWxlSWZOZWVkZWQoKTsKKyAgICBkb2N1bWVudCgp
LnVwZGF0ZVN0eWxlSWZOZWVkZWRGb3JOb2RlKCp0aGlzKTsKICAgICBtX2lucHV0VHlwZS0+Zm9y
d2FyZEV2ZW50KGV2dCk7CiAKICAgICBpZiAoIWNhbGxCYXNlQ2xhc3NFYXJseSAmJiAhZXZ0LT5k
ZWZhdWx0SGFuZGxlZCgpKQo=
</data>
<flag name="review"
          id="249968"
          type_id="1"
          status="+"
          setter="koivisto"
    />
          </attachment>
      

    </bug>

</bugzilla>