<?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>135149</bug_id>
          
          <creation_ts>2014-07-21 23:16:22 -0700</creation_ts>
          <short_desc>Reproducible ASSERT_NOT_REACHED in SelectorChecker::checkOne on my.yahoo.com</short_desc>
          <delta_ts>2014-07-23 10:40:29 -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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tim Horton">thorton</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>achristensen</cc>
    
    <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1023891</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-07-21 23:16:22 -0700</bug_when>
    <thetext>Steps to Reproduce:

1. Load my.yahoo.com while logged into yahoo.
2. Wait.

Expected: No assert!
Actual: An assertion failure:

Notes: I&apos;m using UI-side compositing in Minibrowser but it seems unlikely either of those are prerequisites for this failure.

SHOULD NEVER BE REACHED
/Users/thorton/src/WebKit/OpenSource/Source/WebCore/css/SelectorChecker.cpp(793) : bool WebCore::SelectorChecker::checkOne(const WebCore::SelectorChecker::SelectorCheckingContext &amp;) const
1   0x10abecf10 WTFCrash
2   0x10d912b13 WebCore::SelectorChecker::checkOne(WebCore::SelectorChecker::SelectorCheckingContext const&amp;) const
3   0x10d910c1e WebCore::SelectorChecker::matchRecursively(WebCore::SelectorChecker::SelectorCheckingContext const&amp;, WebCore::PseudoId&amp;) const
4   0x10d9112cf WebCore::SelectorChecker::matchRecursively(WebCore::SelectorChecker::SelectorCheckingContext const&amp;, WebCore::PseudoId&amp;) const
5   0x10d9112cf WebCore::SelectorChecker::matchRecursively(WebCore::SelectorChecker::SelectorCheckingContext const&amp;, WebCore::PseudoId&amp;) const
6   0x10d910b1a WebCore::SelectorChecker::match(WebCore::SelectorChecker::SelectorCheckingContext const&amp;) const
7   0x10c5689a0 WebCore::ElementRuleCollector::ruleMatches(WebCore::RuleData const&amp;)
8   0x10c566ec5 WebCore::ElementRuleCollector::collectMatchingRulesForList(WTF::Vector&lt;WebCore::RuleData, 0ul, WTF::CrashOnOverflow&gt; const*, WebCore::MatchRequest const&amp;, WebCore::StyleResolver::RuleRange&amp;)
9   0x10c566c76 WebCore::ElementRuleCollector::collectMatchingRules(WebCore::MatchRequest const&amp;, WebCore::StyleResolver::RuleRange&amp;)
10  0x10c5674c8 WebCore::ElementRuleCollector::matchAuthorRules(bool)
11  0x10da346ce WebCore::invalidateStyleRecursively(WebCore::Element&amp;, WebCore::SelectorFilter&amp;, WebCore::DocumentRuleSets const&amp;)
[ ... a bunch of levels of recursion elided ... ]
27  0x10da347e7 WebCore::invalidateStyleRecursively(WebCore::Element&amp;, WebCore::SelectorFilter&amp;, WebCore::DocumentRuleSets const&amp;)
28  0x10da3462d WebCore::StyleInvalidationAnalysis::invalidateStyle(WebCore::Document&amp;)
29  0x10c42f368 WebCore::DocumentStyleSheetCollection::analyzeStyleSheetChange(WebCore::DocumentStyleSheetCollection::UpdateFlag, WTF::Vector&lt;WTF::RefPtr&lt;WebCore::CSSStyleSheet&gt;, 0ul, WTF::CrashOnOverflow&gt; const&amp;, WebCore::DocumentStyleSheetCollection::StyleResolverUpdateType&amp;, bool&amp;)
30  0x10c42f4bf WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets(WebCore::DocumentStyleSheetCollection::UpdateFlag)
31  0x10c3acb04 WebCore::Document::styleResolverChanged(WebCore::StyleResolverUpdateFlag)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1023892</commentid>
    <comment_count>1</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-07-21 23:21:25 -0700</bug_when>
    <thetext>(lldb) p selector-&gt;pseudoClassType()
(WebCore::CSSSelector::PseudoClassType) $0 = PseudoClassWindowInactive

Which does indeed seem to be missing from that switch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1024078</commentid>
    <comment_count>2</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2014-07-22 14:57:20 -0700</bug_when>
    <thetext>I&apos;ll look into this.  It is quite upsetting that this was not caught with a test :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1024113</commentid>
    <comment_count>3</comment_count>
      <attachid>235327</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2014-07-22 17:05:01 -0700</bug_when>
    <thetext>Created attachment 235327
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1024116</commentid>
    <comment_count>4</comment_count>
      <attachid>235327</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-07-22 17:19:15 -0700</bug_when>
    <thetext>Comment on attachment 235327
Patch

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

&gt; Source/WebCore/css/SelectorChecker.cpp:-792
&gt; -        default:

A++</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1024128</commentid>
    <comment_count>5</comment_count>
      <attachid>235327</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-07-22 18:02:22 -0700</bug_when>
    <thetext>Comment on attachment 235327
Patch

Clearing flags on attachment: 235327

Committed r171378: &lt;http://trac.webkit.org/changeset/171378&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1024129</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-07-22 18:02:29 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1024186</commentid>
    <comment_count>7</comment_count>
      <attachid>235327</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-07-23 01:10:31 -0700</bug_when>
    <thetext>Comment on attachment 235327
Patch

I am only catching up with my mails now. This is amazing. The lack of tests for something this simple baffles me.

Can you please add PseudoClassWindowInactive as an unoptimizedPseudoClass to the CSS JIT?

In SelectorChecker, you should remove the branch &quot;if (context.hasSelectionPseudo) -&gt; check for :window-inactive&quot;.

Can you please also add a test for style resolution? It is common to find bugs that only appear in one of style-resolution/querySelector.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1024261</commentid>
    <comment_count>8</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2014-07-23 10:40:29 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 235327 [details])
&gt; I am only catching up with my mails now. This is amazing. The lack of tests for something this simple baffles me.
&gt; 
&gt; Can you please add PseudoClassWindowInactive as an unoptimizedPseudoClass to the CSS JIT?
https://bugs.webkit.org/show_bug.cgi?id=135200
&gt; 
&gt; In SelectorChecker, you should remove the branch &quot;if (context.hasSelectionPseudo) -&gt; check for :window-inactive&quot;.
&gt; 
&gt; Can you please also add a test for style resolution? It is common to find bugs that only appear in one of style-resolution/querySelector.
There already was a test for style resolution, but not for querySelector, which is why this bug existed.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>235327</attachid>
            <date>2014-07-22 17:05:01 -0700</date>
            <delta_ts>2014-07-23 01:10:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-135149-20140722170446.patch</filename>
            <type>text/plain</type>
            <size>4594</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE3MTM3MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDE0LTA3LTIyICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgRml4IHdpbmRv
dy1pbmFjdGl2ZSBjc3Mgc2VsZWN0b3JzIHdoZW4gdXNpbmcgcXVlcnlTZWxlY3Rvci4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNTE0OQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGZhc3Qvc2Vs
ZWN0b3JzL3F1ZXJ5U2VsZWN0b3Itd2luZG93LWluYWN0aXZlLmh0bWwKKworICAgICAgICAqIGNz
cy9TZWxlY3RvckNoZWNrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JDaGVja2Vy
OjpjaGVja09uZSk6CisgICAgICAgIFJlbW92ZWQgZGVmYXVsdCBhbmQgaW1wbGVtZW50ZWQgY2Fz
ZSBQc2V1ZG9DbGFzc1dpbmRvd0luYWN0aXZlLgorCiAyMDE0LTA3LTIyICBwZWF2b0BvdXRsb29r
LmNvbSAgPHBlYXZvQG91dGxvb2suY29tPgogCiAgICAgICAgIFtXaW5dIENyYXNoIGFmdGVyIHBs
dWdpbiBpcyB1bmxvYWRlZC4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNr
ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIu
Y3BwCShyZXZpc2lvbiAxNzEzNjYpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVj
a2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzc2LDYgKzc3Niw5IEBAIGJvb2wgU2VsZWN0b3JD
aGVja2VyOjpjaGVja09uZShjb25zdCBTZWwKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgICAgIH0KIAorICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc1dpbmRvd0lu
YWN0aXZlOgorICAgICAgICAgICAgcmV0dXJuICFlbGVtZW50LT5kb2N1bWVudCgpLnBhZ2UoKS0+
Zm9jdXNDb250cm9sbGVyKCkuaXNBY3RpdmUoKTsKKwogICAgICAgICBjYXNlIENTU1NlbGVjdG9y
OjpQc2V1ZG9DbGFzc0hvcml6b250YWw6CiAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVk
b0NsYXNzVmVydGljYWw6CiAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzRGVj
cmVtZW50OgpAQCAtNzg5LDcgKzc5Miw2IEBAIGJvb2wgU2VsZWN0b3JDaGVja2VyOjpjaGVja09u
ZShjb25zdCBTZWwKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgICAgICBjYXNlIENT
U1NlbGVjdG9yOjpQc2V1ZG9DbGFzc1Vua25vd246Ci0gICAgICAgIGRlZmF1bHQ6CiAgICAgICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9
CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCShyZXZpc2lvbiAxNzEzNzIpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAxNC0wNy0yMiAgQWxleCBDaHJpc3RlbnNl
biAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAgICAgIEZpeCB3aW5kb3ctaW5hY3Rp
dmUgY3NzIHNlbGVjdG9ycyB3aGVuIHVzaW5nIHF1ZXJ5U2VsZWN0b3IuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzUxNDkKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3Qvc2VsZWN0b3JzL3F1ZXJ5
U2VsZWN0b3Itd2luZG93LWluYWN0aXZlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9zZWxlY3RvcnMvcXVlcnlTZWxlY3Rvci13aW5kb3ctaW5hY3RpdmUuaHRtbDogQWRkZWQu
CisgICAgICAgICogcGxhdGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgIEFkZGVk
IHF1ZXJ5U2VsZWN0b3Itd2luZG93LWluYWN0aXZlLmh0bWwgdG8gbGlzdCBvZiB0ZXN0cyB0aGF0
IGRvIG5vdCB3b3JrIGluIFdLMiBiZWNhdXNlIG9mIHNldFdpbmRvd0lzS2V5LiAKKwogMjAxNC0w
Ny0yMiAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAgIE1lcmdlIHIx
Njg2MzUsIHIxNjg3ODAsIHIxNjkwMDUsIHIxNjkwMTQsIGFuZCByMTY5MTQzIGZyb20gZnRsb3B0
LgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9zZWxlY3RvcnMvcXVlcnlTZWxlY3Rvci13aW5kb3ct
aW5hY3RpdmUtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qvc2Vs
ZWN0b3JzL3F1ZXJ5U2VsZWN0b3Itd2luZG93LWluYWN0aXZlLWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gMCkKKysrIExheW91dFRlc3RzL2Zhc3Qvc2VsZWN0b3JzL3F1ZXJ5U2VsZWN0b3Itd2luZG93
LWluYWN0aXZlLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDExIEBACitU
ZXN0IHdpbmRvdy1pbmFjdGl2ZSBpbiBxdWVyeVNlbGVjdG9yQWxsLgorCitPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCisKKworUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJhOndpbmRv
dy1pbmFjdGl2ZSIpLmxlbmd0aCBpcyAwCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwo
ImE6d2luZG93LWluYWN0aXZlIikubGVuZ3RoIGlzIDEKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorc29tZSB0ZXh0CkluZGV4OiBMYXlvdXRUZXN0cy9m
YXN0L3NlbGVjdG9ycy9xdWVyeVNlbGVjdG9yLXdpbmRvdy1pbmFjdGl2ZS5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qvc2VsZWN0b3JzL3F1ZXJ5U2VsZWN0b3Itd2luZG93LWlu
YWN0aXZlLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L3NlbGVjdG9ycy9x
dWVyeVNlbGVjdG9yLXdpbmRvdy1pbmFjdGl2ZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsMTggQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+
Cis8YT5zb21lIHRleHQ8L2E+Cis8L2JvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ1Rlc3Qg
d2luZG93LWluYWN0aXZlIGluIHF1ZXJ5U2VsZWN0b3JBbGwuJyk7CitzaG91bGRCZSgnZG9jdW1l
bnQucXVlcnlTZWxlY3RvckFsbCgiYTp3aW5kb3ctaW5hY3RpdmUiKS5sZW5ndGgnLCAnMCcpOwor
aWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci5zZXRXaW5kb3dJc0tleShm
YWxzZSk7CisgICAgc2hvdWxkQmUoJ2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoImE6d2luZG93
LWluYWN0aXZlIikubGVuZ3RoJywgJzEnKTsKK30KKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9odG1sPgpJbmRleDog
TGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlvbnMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlvbnMJKHJldmlzaW9uIDE3MTM2
NikKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL3drMi9UZXN0RXhwZWN0YXRpb25zCSh3b3JraW5n
IGNvcHkpCkBAIC0yMTAsNiArMjEwLDcgQEAgaHR0cC90ZXN0cy9tdWx0aXBhcnQvbXVsdGlwYXJ0
LXdhaXQtYmVmbwogIyBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRXaW5kb3dJc0tleSgpIGhhcyBu
byBlZmZlY3Qgb24gdGhlIHdlYiBwcm9jZXNzIHNpZGUgaW4gV2ViS2l0MgogIyBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODE3MzYgcmRhcjovL3Byb2JsZW0vMTEwODgy
NjgKIGZhc3QvZXZlbnRzL2JsdXItZm9jdXMtd2luZG93LXNob3VsZC1ibHVyLWZvY3VzLWVsZW1l
bnQuaHRtbAorZmFzdC9zZWxlY3RvcnMvcXVlcnlTZWxlY3Rvci13aW5kb3ctaW5hY3RpdmUuaHRt
bAogZmFzdC9zZWxlY3RvcnMvc2VsZWN0aW9uLXdpbmRvdy1pbmFjdGl2ZS5odG1sCiBmYXN0L2Rv
bS9XaW5kb3cvd2luZG93LWZvY3VzLXNlbGYuaHRtbAogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>