<?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>77410</bug_id>
          
          <creation_ts>2012-01-31 00:58:46 -0800</creation_ts>
          <short_desc>&lt;style scoped&gt;: Improve shortcut code for cases where &lt;style scoped&gt; isn&apos;t used</short_desc>
          <delta_ts>2012-01-31 03:04:25 -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>
          
          <blocked>73192</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Roland Steiner">rolandsteiner</reporter>
          <assigned_to name="Roland Steiner">rolandsteiner</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>dominicc</cc>
    
    <cc>koivisto</cc>
    
    <cc>morrita</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>545838</commentid>
    <comment_count>0</comment_count>
    <who name="Roland Steiner">rolandsteiner</who>
    <bug_when>2012-01-31 00:58:46 -0800</bug_when>
    <thetext>When working on bug 73192 I noticed a few places where shortcut code for cases when &lt;style scoped&gt; isn&apos;t used at all could be improved. Esp. CSSStyleSelector::matchAuthorRules can skip a whole code block.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>545841</commentid>
    <comment_count>1</comment_count>
      <attachid>124680</attachid>
    <who name="Roland Steiner">rolandsteiner</who>
    <bug_when>2012-01-31 01:02:44 -0800</bug_when>
    <thetext>Created attachment 124680
Patch

Move shortcut out from setupScopingElementStack() to calling sites, where a larger chunk of work can be skipped.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>545844</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-31 01:06:27 -0800</bug_when>
    <thetext>Attachment 124680 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/update-webkit&apos;]&quot; exit_code: 9

Updating OpenSource
First, rewinding head to replay your work on top of it...
Applying: Fix compilation errors on build-webkit --debug --no-workers on mac.
Using index info to reconstruct a base tree...
Falling back to patching base and 3-way merge...
Auto-merging LayoutTests/ChangeLog
CONFLICT (content): Merge conflict in LayoutTests/ChangeLog
Auto-merging LayoutTests/platform/qt/Skipped
CONFLICT (content): Merge conflict in LayoutTests/platform/qt/Skipped
Failed to merge in the changes.
Patch failed at 0001 Fix compilation errors on build-webkit --debug --no-workers on mac.

When you have resolved this problem run &quot;git rebase --continue&quot;.
If you would prefer to skip this patch, instead run &quot;git rebase --skip&quot;.
To restore the original branch and stop rebasing run &quot;git rebase --abort&quot;.

rebase refs/remotes/origin/master: command returned error: 1

Died at Tools/Scripts/update-webkit line 164.


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>545846</commentid>
    <comment_count>3</comment_count>
      <attachid>124680</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2012-01-31 01:14:11 -0800</bug_when>
    <thetext>Comment on attachment 124680
Patch

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

&gt; Source/WebCore/css/CSSStyleSelector.cpp:858
&gt; +    if (!m_scopedAuthorStyles.isEmpty()) {
&gt; +        // Match scoped author rules by traversing the scoped element stack (rebuild it if it got inconsistent).
&gt; +        const Element* parent = m_element-&gt;parentOrHostElement();
&gt; +        if (!scopingElementStackIsConsistent(parent))
&gt; +            setupScopingElementStack(parent);
&gt; +        for (size_t i = m_scopingElementStack.size(); i; --i) {
&gt; +            collectMatchingRules(m_scopingElementStack[i - 1].m_ruleSet, firstRuleIndex, lastRuleIndex, includeEmptyRules);
&gt; +            collectMatchingRulesForRegion(m_scopingElementStack[i - 1].m_ruleSet, firstRuleIndex, lastRuleIndex, includeEmptyRules);
&gt; +        }
&gt; +        // Also include the current element.
&gt; +        RuleSet* ruleSet = scopedRuleSetForElement(m_element);
&gt; +        if (ruleSet) {
&gt; +            collectMatchingRules(ruleSet, firstRuleIndex, lastRuleIndex, includeEmptyRules);
&gt; +            collectMatchingRulesForRegion(ruleSet, firstRuleIndex, lastRuleIndex, includeEmptyRules);
&gt; +        }
&gt;      }

The code inside if (!m_scopedAuthorStyles.isEmpty())  could be factored into a function, matchScopedAuthorRules() or something.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>545898</commentid>
    <comment_count>4</comment_count>
    <who name="Roland Steiner">rolandsteiner</who>
    <bug_when>2012-01-31 03:04:25 -0800</bug_when>
    <thetext>Committed r106351: &lt;http://trac.webkit.org/changeset/106351&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>124680</attachid>
            <date>2012-01-31 01:02:44 -0800</date>
            <delta_ts>2012-01-31 01:14:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-77410-20120131180242.patch</filename>
            <type>text/plain</type>
            <size>5232</size>
            <attacher name="Roland Steiner">rolandsteiner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA2MzM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTg4MzVkYWI0NTAwNDIy
N2I0MGM3ZjFkNTQyODRlNzkxMTA5MjI1Zi4uMTA5ZDNmYzMzYWZmNjdhNDdlZjczOWIyMGNkYjc1
ZDkzOWU1YTFmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEyLTAxLTMxICBSb2xh
bmQgU3RlaW5lciAgPHJvbGFuZHN0ZWluZXJAY2hyb21pdW0ub3JnPgorCisgICAgICAgIDxzdHls
ZSBzY29wZWQ+OiBJbXByb3ZlIHNob3J0Y3V0IGNvZGUgZm9yIGNhc2VzIHdoZXJlIDxzdHlsZSBz
Y29wZWQ+IGlzbid0IHVzZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTc3NDEwCisKKyAgICAgICAgTW92ZSBzaG9ydGN1dCBmcm9tIHNldHVwU2NvcGlu
Z0VsZW1lbnRTdGFjaygpLCBkbyBpdCBhdCB0aGUgY2FsbGluZyBzaXRlcyBpbnN0ZWFkCisgICAg
ICAgICh3aGVyZSBhIGxhcmdlciBjaHVuayBvZiB3b3JrIGNhbiBiZSBza2lwcGVkKS4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMu
IChyZWZhY3RvcmluZykKKworICAgICAgICAqIGNzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6OnNldHVwU2NvcGluZ0VsZW1lbnRTdGFj
ayk6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVNlbGVjdG9yOjpwdXNoUGFyZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6Om1hdGNoQXV0aG9yUnVsZXMpOgorCiAy
MDExLTAxLTMwICBIYXlhdG8gSXRvICA8aGF5YXRvQGNocm9taXVtLm9yZz4KIAogICAgICAgICBB
dHRhY2ggbGlnaHQgY2hpbGRyZW4gYWZ0ZXIgcmVtb3ZpbmcgYSBzaGFkb3cgcm9vdC4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAppbmRleCBlM2M4ZDI3ZDU0YjM5ZmQwZGY1
NjljYTdiMTExMzg0OGFiNjE5MjUzLi5mZjBiNjcxNmU2MzIzZDA4ZTE2ZDYwYjBhMmVjYTYzYmJh
ZmY4NjVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCkBAIC00OTgs
MTIgKzQ5OCw5IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBwZW5kQXV0aG9yU3R5bGVzaGVl
dHModW5zaWduZWQgZmlyc3ROZXcsIGNvbnN0IFZlY3RvcjxSCiAjaWYgRU5BQkxFKFNUWUxFX1ND
T1BFRCkKIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6c2V0dXBTY29waW5nRWxlbWVudFN0YWNrKGNv
bnN0IEVsZW1lbnQqIHBhcmVudCkKIHsKLSAgICAvLyBTaG9ydGN1dDogYWJvcnQgaWYgPHN0eWxl
IHNjb3BlZD4gaXNuJ3QgdXNlZCBhbnl3aGVyZQotICAgIGlmIChtX3Njb3BlZEF1dGhvclN0eWxl
cy5pc0VtcHR5KCkpIHsKLSAgICAgICAgQVNTRVJUKCFtX3Njb3BpbmdFbGVtZW50U3RhY2tQYXJl
bnQpOwotICAgICAgICBBU1NFUlQobV9zY29waW5nRWxlbWVudFN0YWNrLmlzRW1wdHkoKSk7Ci0g
ICAgICAgIHJldHVybjsKLSAgICB9CisgICAgLy8gVGhlIHNjb3BpbmcgZWxlbWVudCBzdGFjayBz
aG91bGRuJ3QgYmUgdXNlZCBpZiA8c3R5bGUgc2NvcGVkPiBpc24ndCB1c2VkIGFueXdoZXJlLgor
ICAgIEFTU0VSVCghbV9zY29wZWRBdXRob3JTdHlsZXMuaXNFbXB0eSgpKTsKKwogICAgIG1fc2Nv
cGluZ0VsZW1lbnRTdGFjay5zaHJpbmsoMCk7CiAgICAgZm9yICg7IHBhcmVudDsgcGFyZW50ID0g
cGFyZW50LT5wYXJlbnRPckhvc3RFbGVtZW50KCkpIHsKICAgICAgICAgUnVsZVNldCogcnVsZVNl
dCA9IHNjb3BlZFJ1bGVTZXRGb3JFbGVtZW50KHBhcmVudCk7CkBAIC01MjgsMTIgKzUyNSwxOSBA
QCB2b2lkIENTU1N0eWxlU2VsZWN0b3I6OnB1c2hQYXJlbnQoRWxlbWVudCogcGFyZW50KQogICAg
ICAgICBtX2NoZWNrZXIucHVzaFBhcmVudChwYXJlbnQpOwogCiAjaWYgRU5BQkxFKFNUWUxFX1ND
T1BFRCkKKyAgICAvLyBTaG9ydGN1dDogRG9uJ3QgYm90aGVyIHdpdGggdGhlIHNjb3BpbmcgZWxl
bWVudCBzdGFjayBpZiA8c3R5bGUgc2NvcGVkPiBpc24ndCB1c2VkIGFueXdoZXJlLgorICAgIGlm
IChtX3Njb3BlZEF1dGhvclN0eWxlcy5pc0VtcHR5KCkpIHsKKyAgICAgICAgQVNTRVJUKCFtX3Nj
b3BpbmdFbGVtZW50U3RhY2tQYXJlbnQpOworICAgICAgICBBU1NFUlQobV9zY29waW5nRWxlbWVu
dFN0YWNrLmlzRW1wdHkoKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgLy8gSW4gc29t
ZSB3YWNreSBjYXNlcyBkdXJpbmcgc3R5bGUgcmVzb2x2ZSB3ZSBtYXkgZ2V0IGludm9rZWQgZm9y
IHJhbmRvbSBlbGVtZW50cy4KKyAgICAvLyBSZWNyZWF0ZSB0aGUgd2hvbGUgc2NvcGluZyBlbGVt
ZW50IHN0YWNrIGluIHN1Y2ggY2FzZXMuCiAgICAgaWYgKCFzY29waW5nRWxlbWVudFN0YWNrSXND
b25zaXN0ZW50KHBhcmVudHNQYXJlbnQpKSB7Ci0gICAgICAgIC8vIEluIHNvbWUgd2Fja3kgY2Fz
ZXMgZHVyaW5nIHN0eWxlIHJlc29sdmUgd2UgbWF5IGdldCBpbnZva2VkIGZvciByYW5kb20gZWxl
bWVudHMgLQotICAgICAgICAvLyByZWNyZWF0ZSB0aGUgc2NvcGluZyBlbGVtZW50IHN0YWNrIGlu
IHN1Y2ggY2FzZXMuCiAgICAgICAgIHNldHVwU2NvcGluZ0VsZW1lbnRTdGFjayhwYXJlbnQpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQorICAgIC8vIE90aGVyd2lzZSBqdXN0IHB1c2ggdGhlIHBh
cmVudCBvbnRvIHRoZSBzdGFjay4KICAgICBSdWxlU2V0KiBydWxlU2V0ID0gc2NvcGVkUnVsZVNl
dEZvckVsZW1lbnQocGFyZW50KTsKICAgICBpZiAocnVsZVNldCkKICAgICAgICAgbV9zY29waW5n
RWxlbWVudFN0YWNrLmFwcGVuZChTY29wZVN0YWNrRnJhbWUocGFyZW50LCBydWxlU2V0KSk7CkBA
IC04MzYsMTkgKzg0MCwyMSBAQCB2b2lkIENTU1N0eWxlU2VsZWN0b3I6Om1hdGNoQXV0aG9yUnVs
ZXMoaW50JiBmaXJzdFJ1bGVJbmRleCwgaW50JiBsYXN0UnVsZUluZGV4LAogICAgIGNvbGxlY3RN
YXRjaGluZ1J1bGVzRm9yUmVnaW9uKG1fYXV0aG9yU3R5bGUuZ2V0KCksIGZpcnN0UnVsZUluZGV4
LCBsYXN0UnVsZUluZGV4LCBpbmNsdWRlRW1wdHlSdWxlcyk7CiAKICNpZiBFTkFCTEUoU1RZTEVf
U0NPUEVEKQotICAgIC8vIE1hdGNoIHNjb3BlZCBhdXRob3IgcnVsZXMgYnkgdHJhdmVyc2luZyB0
aGUgc2NvcGVkIGVsZW1lbnQgc3RhY2sgKHJlYnVpbGQgaXQgaWYgaXQgZ290IGluY29uc2lzdGVu
dCkuCi0gICAgY29uc3QgRWxlbWVudCogcGFyZW50ID0gbV9lbGVtZW50LT5wYXJlbnRPckhvc3RF
bGVtZW50KCk7Ci0gICAgaWYgKCFzY29waW5nRWxlbWVudFN0YWNrSXNDb25zaXN0ZW50KHBhcmVu
dCkpCi0gICAgICAgIHNldHVwU2NvcGluZ0VsZW1lbnRTdGFjayhwYXJlbnQpOwotICAgIGZvciAo
c2l6ZV90IGkgPSBtX3Njb3BpbmdFbGVtZW50U3RhY2suc2l6ZSgpOyBpOyAtLWkpIHsKLSAgICAg
ICAgY29sbGVjdE1hdGNoaW5nUnVsZXMobV9zY29waW5nRWxlbWVudFN0YWNrW2kgLSAxXS5tX3J1
bGVTZXQsIGZpcnN0UnVsZUluZGV4LCBsYXN0UnVsZUluZGV4LCBpbmNsdWRlRW1wdHlSdWxlcyk7
Ci0gICAgICAgIGNvbGxlY3RNYXRjaGluZ1J1bGVzRm9yUmVnaW9uKG1fc2NvcGluZ0VsZW1lbnRT
dGFja1tpIC0gMV0ubV9ydWxlU2V0LCBmaXJzdFJ1bGVJbmRleCwgbGFzdFJ1bGVJbmRleCwgaW5j
bHVkZUVtcHR5UnVsZXMpOwotICAgIH0KLSAgICAvLyBBbHNvIGluY2x1ZGUgdGhlIGN1cnJlbnQg
ZWxlbWVudC4KLSAgICBSdWxlU2V0KiBydWxlU2V0ID0gc2NvcGVkUnVsZVNldEZvckVsZW1lbnQo
bV9lbGVtZW50KTsKLSAgICBpZiAocnVsZVNldCkgewotICAgICAgICBjb2xsZWN0TWF0Y2hpbmdS
dWxlcyhydWxlU2V0LCBmaXJzdFJ1bGVJbmRleCwgbGFzdFJ1bGVJbmRleCwgaW5jbHVkZUVtcHR5
UnVsZXMpOwotICAgICAgICBjb2xsZWN0TWF0Y2hpbmdSdWxlc0ZvclJlZ2lvbihydWxlU2V0LCBm
aXJzdFJ1bGVJbmRleCwgbGFzdFJ1bGVJbmRleCwgaW5jbHVkZUVtcHR5UnVsZXMpOworICAgIGlm
ICghbV9zY29wZWRBdXRob3JTdHlsZXMuaXNFbXB0eSgpKSB7CisgICAgICAgIC8vIE1hdGNoIHNj
b3BlZCBhdXRob3IgcnVsZXMgYnkgdHJhdmVyc2luZyB0aGUgc2NvcGVkIGVsZW1lbnQgc3RhY2sg
KHJlYnVpbGQgaXQgaWYgaXQgZ290IGluY29uc2lzdGVudCkuCisgICAgICAgIGNvbnN0IEVsZW1l
bnQqIHBhcmVudCA9IG1fZWxlbWVudC0+cGFyZW50T3JIb3N0RWxlbWVudCgpOworICAgICAgICBp
ZiAoIXNjb3BpbmdFbGVtZW50U3RhY2tJc0NvbnNpc3RlbnQocGFyZW50KSkKKyAgICAgICAgICAg
IHNldHVwU2NvcGluZ0VsZW1lbnRTdGFjayhwYXJlbnQpOworICAgICAgICBmb3IgKHNpemVfdCBp
ID0gbV9zY29waW5nRWxlbWVudFN0YWNrLnNpemUoKTsgaTsgLS1pKSB7CisgICAgICAgICAgICBj
b2xsZWN0TWF0Y2hpbmdSdWxlcyhtX3Njb3BpbmdFbGVtZW50U3RhY2tbaSAtIDFdLm1fcnVsZVNl
dCwgZmlyc3RSdWxlSW5kZXgsIGxhc3RSdWxlSW5kZXgsIGluY2x1ZGVFbXB0eVJ1bGVzKTsKKyAg
ICAgICAgICAgIGNvbGxlY3RNYXRjaGluZ1J1bGVzRm9yUmVnaW9uKG1fc2NvcGluZ0VsZW1lbnRT
dGFja1tpIC0gMV0ubV9ydWxlU2V0LCBmaXJzdFJ1bGVJbmRleCwgbGFzdFJ1bGVJbmRleCwgaW5j
bHVkZUVtcHR5UnVsZXMpOworICAgICAgICB9CisgICAgICAgIC8vIEFsc28gaW5jbHVkZSB0aGUg
Y3VycmVudCBlbGVtZW50LgorICAgICAgICBSdWxlU2V0KiBydWxlU2V0ID0gc2NvcGVkUnVsZVNl
dEZvckVsZW1lbnQobV9lbGVtZW50KTsKKyAgICAgICAgaWYgKHJ1bGVTZXQpIHsKKyAgICAgICAg
ICAgIGNvbGxlY3RNYXRjaGluZ1J1bGVzKHJ1bGVTZXQsIGZpcnN0UnVsZUluZGV4LCBsYXN0UnVs
ZUluZGV4LCBpbmNsdWRlRW1wdHlSdWxlcyk7CisgICAgICAgICAgICBjb2xsZWN0TWF0Y2hpbmdS
dWxlc0ZvclJlZ2lvbihydWxlU2V0LCBmaXJzdFJ1bGVJbmRleCwgbGFzdFJ1bGVJbmRleCwgaW5j
bHVkZUVtcHR5UnVsZXMpOworICAgICAgICB9CiAgICAgfQogI2VuZGlmCiAK
</data>
<flag name="review"
          id="126005"
          type_id="1"
          status="+"
          setter="koivisto"
    />
    <flag name="commit-queue"
          id="126006"
          type_id="3"
          status="-"
          setter="koivisto"
    />
          </attachment>
      

    </bug>

</bugzilla>