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

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

Issue 19632002: Support 'extend-to-zoom' viewport descriptor value (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Improve initialization in tests. Created 7 years, 5 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 11388 matching lines...) Expand 10 before | Expand all | Expand 10 after
11399 m_sourceDataHandler->startEndUnknownRule(); 11399 m_sourceDataHandler->startEndUnknownRule();
11400 } 11400 }
11401 11401
11402 unsigned CSSParser::safeUserStringTokenOffset() 11402 unsigned CSSParser::safeUserStringTokenOffset()
11403 { 11403 {
11404 return min(tokenStartOffset(), static_cast<unsigned>(m_length - 1 - m_parsed TextSuffixLength)) - m_parsedTextPrefixLength; 11404 return min(tokenStartOffset(), static_cast<unsigned>(m_length - 1 - m_parsed TextSuffixLength)) - m_parsedTextPrefixLength;
11405 } 11405 }
11406 11406
11407 StyleRuleBase* CSSParser::createViewportRule() 11407 StyleRuleBase* CSSParser::createViewportRule()
11408 { 11408 {
11409 if (!RuntimeEnabledFeatures::cssViewportEnabled())
apavlov 2013/07/18 16:06:17 Has this removal been agreed upon? Looking at CSSP
11410 return 0;
11411
11412 m_allowImportRules = m_allowNamespaceDeclarations = false; 11409 m_allowImportRules = m_allowNamespaceDeclarations = false;
11413 11410
11414 RefPtr<StyleRuleViewport> rule = StyleRuleViewport::create(); 11411 RefPtr<StyleRuleViewport> rule = StyleRuleViewport::create();
11415 11412
11416 rule->setProperties(createStylePropertySet()); 11413 rule->setProperties(createStylePropertySet());
11417 clearProperties(); 11414 clearProperties();
11418 11415
11419 StyleRuleViewport* result = rule.get(); 11416 StyleRuleViewport* result = rule.get();
11420 m_parsedRules.append(rule.release()); 11417 m_parsedRules.append(rule.release());
11421 endRuleBody(); 11418 endRuleBody();
11422 11419
11423 return result; 11420 return result;
11424 } 11421 }
11425 11422
11426 bool CSSParser::parseViewportProperty(CSSPropertyID propId, bool important) 11423 bool CSSParser::parseViewportProperty(CSSPropertyID propId, bool important)
11427 { 11424 {
11428 ASSERT(RuntimeEnabledFeatures::cssViewportEnabled());
11429
11430 CSSParserValue* value = m_valueList->current(); 11425 CSSParserValue* value = m_valueList->current();
11431 if (!value) 11426 if (!value)
11432 return false; 11427 return false;
11433 11428
11434 CSSValueID id = value->id; 11429 CSSValueID id = value->id;
11435 bool validPrimitive = false; 11430 bool validPrimitive = false;
11436 11431
11437 switch (propId) { 11432 switch (propId) {
11438 case CSSPropertyMinWidth: // auto | <length> | <percentage> 11433 case CSSPropertyMinWidth: // auto | extend-to-zoom | <length> | <percentage>
11439 case CSSPropertyMaxWidth: 11434 case CSSPropertyMaxWidth:
11440 case CSSPropertyMinHeight: 11435 case CSSPropertyMinHeight:
11441 case CSSPropertyMaxHeight: 11436 case CSSPropertyMaxHeight:
11442 if (id == CSSValueAuto) 11437 if (id == CSSValueAuto || id == CSSValueInternalExtendToZoom)
11443 validPrimitive = true; 11438 validPrimitive = true;
11444 else 11439 else
11445 validPrimitive = (!id && validUnit(value, FLength | FPercent | FNonN eg)); 11440 validPrimitive = (!id && validUnit(value, FLength | FPercent | FNonN eg));
11446 break; 11441 break;
11447 case CSSPropertyWidth: // shorthand 11442 case CSSPropertyWidth: // shorthand
11448 return parseViewportShorthand(propId, CSSPropertyMinWidth, CSSPropertyMa xWidth, important); 11443 return parseViewportShorthand(propId, CSSPropertyMinWidth, CSSPropertyMa xWidth, important);
11449 case CSSPropertyHeight: 11444 case CSSPropertyHeight:
11450 return parseViewportShorthand(propId, CSSPropertyMinHeight, CSSPropertyM axHeight, important); 11445 return parseViewportShorthand(propId, CSSPropertyMinHeight, CSSPropertyM axHeight, important);
11451 case CSSPropertyMinZoom: // auto | <number> | <percentage> 11446 case CSSPropertyMinZoom: // auto | <number> | <percentage>
11452 case CSSPropertyMaxZoom: 11447 case CSSPropertyMaxZoom:
(...skipping 25 matching lines...) Expand all
11478 addProperty(propId, parsedValue.release(), important); 11473 addProperty(propId, parsedValue.release(), important);
11479 return true; 11474 return true;
11480 } 11475 }
11481 } 11476 }
11482 11477
11483 return false; 11478 return false;
11484 } 11479 }
11485 11480
11486 bool CSSParser::parseViewportShorthand(CSSPropertyID propId, CSSPropertyID first , CSSPropertyID second, bool important) 11481 bool CSSParser::parseViewportShorthand(CSSPropertyID propId, CSSPropertyID first , CSSPropertyID second, bool important)
11487 { 11482 {
11488 ASSERT(RuntimeEnabledFeatures::cssViewportEnabled());
11489 unsigned numValues = m_valueList->size(); 11483 unsigned numValues = m_valueList->size();
11490 11484
11491 if (numValues > 2) 11485 if (numValues > 2)
11492 return false; 11486 return false;
11493 11487
11494 ShorthandScope scope(this, propId); 11488 ShorthandScope scope(this, propId);
11495 11489
11496 if (!parseViewportProperty(first, important)) 11490 if (!parseViewportProperty(first, important))
11497 return false; 11491 return false;
11498 11492
(...skipping 244 matching lines...) Expand 10 before | Expand all | Expand 10 after
11743 { 11737 {
11744 // The tokenizer checks for the construct of an+b. 11738 // The tokenizer checks for the construct of an+b.
11745 // However, since the {ident} rule precedes the {nth} rule, some of those 11739 // However, since the {ident} rule precedes the {nth} rule, some of those
11746 // tokens are identified as string literal. Furthermore we need to accept 11740 // tokens are identified as string literal. Furthermore we need to accept
11747 // "odd" and "even" which does not match to an+b. 11741 // "odd" and "even" which does not match to an+b.
11748 return equalIgnoringCase(token, "odd") || equalIgnoringCase(token, "even") 11742 return equalIgnoringCase(token, "odd") || equalIgnoringCase(token, "even")
11749 || equalIgnoringCase(token, "n") || equalIgnoringCase(token, "-n"); 11743 || equalIgnoringCase(token, "n") || equalIgnoringCase(token, "-n");
11750 } 11744 }
11751 11745
11752 } 11746 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698