Changeset 14879 in webkit
- Timestamp:
- Jun 15, 2006 2:37:13 PM (18 years ago)
- Location:
- trunk
- Files:
-
- 2 added
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r14877 r14879 1 2006-06-15 Nicholas Shanks <contact@nickshanks.com> 2 3 Reviewed by Hyatt, landed by Joost de Valk. 4 5 Testcases for fix to bug http://bugzilla.opendarwin.org/show_bug.cgi?id=3233 6 7 * fast/css/css3-modsel-22-expected.txt: Added. 8 * fast/css/css3-modsel-22.html: Added. 9 1 10 2006-06-15 Justin Garcia <justin.garcia@apple.com> 2 11 -
trunk/WebCore/ChangeLog
r14877 r14879 1 2006-06-15 Nicholas Shanks <contact@nickshanks.com> 2 3 Reviewed by Hyatt, landed by Joost de Valk. 4 5 Fix http://bugzilla.opendarwin.org/show_bug.cgi?id=3233 6 7 Add support for the :lang pseudo-class. 8 9 * css/CSSGrammar.y: 10 * css/CSSSelector.cpp: 11 (WebCore::CSSSelector::operator == ): 12 * css/CSSSelector.h: 13 (WebCore::CSSSelector::CSSSelector): 14 * css/cssparser.cpp: 15 (WebCore::CSSParser::lex): 16 * css/cssstyleselector.cpp: 17 (WebCore::CSSStyleSelector::checkOneSelector): 18 * css/tokenizer.flex: 19 1 20 2006-06-15 Justin Garcia <justin.garcia@apple.com> 2 21 -
trunk/WebCore/css/CSSGrammar.y
r14779 r14879 219 219 %token <string> URI 220 220 %token <string> FUNCTION 221 %token <string> NOTFUNCTION 221 222 222 223 %token <string> UNICODERANGE … … 836 837 $$->value = atomicString($3); 837 838 } 838 | ':' FUNCTION maybe_space simple_selector maybe_space ')' { 839 // used by :lang 840 | ':' FUNCTION IDENT ')' { 841 $$ = new CSSSelector(); 842 $$->match = CSSSelector::PseudoClass; 843 $$->argument = atomicString($3); 844 $2.lower(); 845 $$->value = atomicString($2); 846 } 847 // used by :not 848 | ':' NOTFUNCTION maybe_space simple_selector ')' { 839 849 CSSParser* p = static_cast<CSSParser*>(parser); 840 850 $$ = p->createFloatingSelector(); -
trunk/WebCore/css/CSSSelector.cpp
r14408 r14879 181 181 sel1->relation() != sel2->relation() || sel1->match != sel2->match || 182 182 sel1->value != sel2->value || 183 sel1->pseudoType() != sel2->pseudoType()) 183 sel1->pseudoType() != sel2->pseudoType() || 184 sel1->argument != sel2->argument) 184 185 return false; 185 186 sel1 = sel1->tagHistory; -
trunk/WebCore/css/CSSSelector.h
r14408 r14879 37 37 , simpleSelector(0) 38 38 , nextSelector(0) 39 , argument(nullAtom) 39 40 , attr(anyQName()) 40 41 , tag(anyQName()) … … 49 50 , simpleSelector(0) 50 51 , nextSelector(0) 52 , argument(nullAtom) 51 53 , attr(anyQName()) 52 54 , tag(qName) … … 159 161 CSSSelector* simpleSelector; // Used for :not. 160 162 CSSSelector* nextSelector; // used for ,-chained selectors 163 AtomicString argument; // Used for :contains, :lang and :nth-* 161 164 162 165 QualifiedName attr; -
trunk/WebCore/css/cssparser.cpp
r14779 r14879 2672 2672 case UNICODERANGE: 2673 2673 case FUNCTION: 2674 case NOTFUNCTION: 2674 2675 yylval->string.characters = t; 2675 2676 yylval->string.length = length; -
trunk/WebCore/css/cssstyleselector.cpp
r14816 r14879 4 4 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) 5 5 * (C) 2004-2005 Allan Sandfeld Jensen (kde@carewolf.com) 6 * (C) 2006 Nicholas Shanks (webkit@nickshanks.com) 6 7 * Copyright (C) 2005, 2006 Apple Computer, Inc. 7 8 * … … 1521 1522 return true; 1522 1523 break; 1524 case CSSSelector::PseudoLang: { 1525 const AtomicString& value = e->getAttribute(langAttr); 1526 if (value.isEmpty() || !value.startsWith(sel->argument, false)) 1527 break; 1528 if (value.length() != sel->argument.length() && value[sel->argument.length()] != '-') 1529 break; 1530 return true; 1531 } 1523 1532 case CSSSelector::PseudoNot: { 1524 1533 // check the simple selector 1525 for (CSSSelector* subSel = sel->simpleSelector; subSel; 1526 subSel = subSel->tagHistory) { 1527 // :not cannot nest. I don't really know why this is a restriction in CSS3, 1528 // but it is, so let's honor it. 1534 for (CSSSelector* subSel = sel->simpleSelector; subSel; subSel = subSel->tagHistory) { 1535 // :not cannot nest. I don't really know why this is a 1536 // restriction in CSS3, but it is, so let's honour it. 1529 1537 if (subSel->simpleSelector) 1530 1538 break; … … 1534 1542 break; 1535 1543 } 1536 case CSSSelector::PseudoLang:1537 /* not supported for now */1538 1544 case CSSSelector::PseudoOther: 1539 1545 break; … … 1566 1572 break; 1567 1573 } 1568 1574 return false; 1569 1575 } 1570 1576 // ### add the rest of the checks... -
trunk/WebCore/css/tokenizer.flex
r14779 r14879 81 81 {num} {yyTok = FLOAT; return yyTok;} 82 82 83 "not(" {yyTok = NOTFUNCTION; return yyTok;} 83 84 "url("{w}{string}{w}")" {yyTok = URI; return yyTok;} 84 85 "url("{w}{url}{w}")" {yyTok = URI; return yyTok;}
Note: See TracChangeset
for help on using the changeset viewer.