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

Side by Side Diff: Source/core/css/parser/BisonCSSParser-in.cpp

Issue 171383002: A thread-safe Media Query Parser (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Another attempt to fix Android build issues Created 6 years, 9 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 unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2003 Lars Knoll (knoll@kde.org) 2 * Copyright (C) 2003 Lars Knoll (knoll@kde.org)
3 * Copyright (C) 2005 Allan Sandfeld Jensen (kde@carewolf.com) 3 * Copyright (C) 2005 Allan Sandfeld Jensen (kde@carewolf.com)
4 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc. All rights reserved. 4 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc. All rights reserved.
5 * Copyright (C) 2007 Nicholas Shanks <webkit@nickshanks.com> 5 * Copyright (C) 2007 Nicholas Shanks <webkit@nickshanks.com>
6 * Copyright (C) 2008 Eric Seidel <eric@webkit.org> 6 * Copyright (C) 2008 Eric Seidel <eric@webkit.org>
7 * Copyright (C) 2009 Torch Mobile Inc. All rights reserved. (http://www.torchmo bile.com/) 7 * Copyright (C) 2009 Torch Mobile Inc. All rights reserved. (http://www.torchmo bile.com/)
8 * Copyright (C) 2012 Adobe Systems Incorporated. All rights reserved. 8 * Copyright (C) 2012 Adobe Systems Incorporated. All rights reserved.
9 * Copyright (C) 2012 Intel Corporation. All rights reserved. 9 * Copyright (C) 2012 Intel Corporation. All rights reserved.
10 * 10 *
(...skipping 10115 matching lines...) Expand 10 before | Expand all | Expand 10 after
10126 unsigned length = string.length(); 10126 unsigned length = string.length();
10127 10127
10128 if (!length) 10128 if (!length)
10129 return CSSPropertyInvalid; 10129 return CSSPropertyInvalid;
10130 if (length > maxCSSPropertyNameLength) 10130 if (length > maxCSSPropertyNameLength)
10131 return CSSPropertyInvalid; 10131 return CSSPropertyInvalid;
10132 10132
10133 return string.is8Bit() ? cssPropertyID(string.characters8(), length) : cssPr opertyID(string.characters16(), length); 10133 return string.is8Bit() ? cssPropertyID(string.characters8(), length) : cssPr opertyID(string.characters16(), length);
10134 } 10134 }
10135 10135
10136 template <typename CharacterType>
10137 static CSSValueID cssValueKeywordID(const CharacterType* valueKeyword, unsigned length)
10138 {
10139 char buffer[maxCSSValueKeywordLength + 1]; // 1 for null character
10140
10141 for (unsigned i = 0; i != length; ++i) {
10142 CharacterType c = valueKeyword[i];
10143 if (c == 0 || c >= 0x7F)
10144 return CSSValueInvalid; // illegal character
10145 buffer[i] = WTF::toASCIILower(c);
10146 }
10147 buffer[length] = '\0';
10148
10149 const Value* hashTableEntry = findValue(buffer, length);
10150 return hashTableEntry ? static_cast<CSSValueID>(hashTableEntry->id) : CSSVal ueInvalid;
10151 }
10152
10153 CSSValueID cssValueKeywordID(const CSSParserString& string)
10154 {
10155 unsigned length = string.length();
10156 if (!length)
10157 return CSSValueInvalid;
10158 if (length > maxCSSValueKeywordLength)
10159 return CSSValueInvalid;
10160
10161 return string.is8Bit() ? cssValueKeywordID(string.characters8(), length) : c ssValueKeywordID(string.characters16(), length);
10162 }
10163
10164 bool isValidNthToken(const CSSParserString& token) 10136 bool isValidNthToken(const CSSParserString& token)
10165 { 10137 {
10166 // The tokenizer checks for the construct of an+b. 10138 // The tokenizer checks for the construct of an+b.
10167 // However, since the {ident} rule precedes the {nth} rule, some of those 10139 // However, since the {ident} rule precedes the {nth} rule, some of those
10168 // tokens are identified as string literal. Furthermore we need to accept 10140 // tokens are identified as string literal. Furthermore we need to accept
10169 // "odd" and "even" which does not match to an+b. 10141 // "odd" and "even" which does not match to an+b.
10170 return equalIgnoringCase(token, "odd") || equalIgnoringCase(token, "even") 10142 return equalIgnoringCase(token, "odd") || equalIgnoringCase(token, "even")
10171 || equalIgnoringCase(token, "n") || equalIgnoringCase(token, "-n"); 10143 || equalIgnoringCase(token, "n") || equalIgnoringCase(token, "-n");
10172 } 10144 }
10173 10145
10174 } 10146 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698