Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(465)

Unified Diff: Source/core/css/CSSGrammar.y

Issue 252683011: Add support for case-insensitive attribute value selectors (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: add runtime flag; fix selector serializing Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: Source/core/css/CSSGrammar.y
diff --git a/Source/core/css/CSSGrammar.y b/Source/core/css/CSSGrammar.y
index 97d1672e06a11feead3e4e79a15d887a78189d15..8870a84ba5d61f28cdfdf93bc1ab1ea8b4465946 100644
--- a/Source/core/css/CSSGrammar.y
+++ b/Source/core/css/CSSGrammar.y
@@ -346,6 +346,8 @@ inline static CSSParserValue makeIdentValue(CSSParserString string)
%type <integer> match
%type <integer> unary_operator
%type <integer> maybe_unary_operator
+%type <integer> attr_flags
+%type <integer> maybe_attr_flags
%type <character> operator
%type <valueList> expr
@@ -1240,26 +1242,40 @@ attr_name:
}
;
+attr_flags:
+ IDENT maybe_space {
+ unsigned flags;
+ if (!parser->parseAttributeFlags(flags, $1))
+ YYERROR;
+ $$ = flags;
+ }
+ ;
+
+maybe_attr_flags:
+ attr_flags
+ | /* empty */ { $$ = CSSSelector::NoAttributeFlags; }
+ ;
+
attrib:
'[' maybe_space attr_name closing_square_bracket {
$$ = parser->createFloatingSelector();
- $$->setAttribute(QualifiedName(nullAtom, $3, nullAtom));
+ $$->setAttribute(QualifiedName(nullAtom, $3, nullAtom), CSSSelector::NoAttributeFlags);
$$->setMatch(CSSSelector::Set);
}
- | '[' maybe_space attr_name match maybe_space ident_or_string maybe_space closing_square_bracket {
+ | '[' maybe_space attr_name match maybe_space ident_or_string maybe_space maybe_attr_flags closing_square_bracket {
$$ = parser->createFloatingSelector();
- $$->setAttribute(QualifiedName(nullAtom, $3, nullAtom));
+ $$->setAttribute(QualifiedName(nullAtom, $3, nullAtom), $8);
$$->setMatch((CSSSelector::Match)$4);
$$->setValue($6);
}
| '[' maybe_space namespace_selector attr_name closing_square_bracket {
$$ = parser->createFloatingSelector();
- $$->setAttribute(parser->determineNameInNamespace($3, $4));
+ $$->setAttribute(parser->determineNameInNamespace($3, $4), CSSSelector::NoAttributeFlags);
$$->setMatch(CSSSelector::Set);
}
- | '[' maybe_space namespace_selector attr_name match maybe_space ident_or_string maybe_space closing_square_bracket {
+ | '[' maybe_space namespace_selector attr_name match maybe_space ident_or_string maybe_space maybe_attr_flags closing_square_bracket {
$$ = parser->createFloatingSelector();
- $$->setAttribute(parser->determineNameInNamespace($3, $4));
+ $$->setAttribute(parser->determineNameInNamespace($3, $4), $9);
$$->setMatch((CSSSelector::Match)$5);
$$->setValue($7);
}

Powered by Google App Engine
This is Rietveld 408576698