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

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

Issue 23742003: Use css-device-adapt constraining for legacy viewport tags. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Review issue: one assignent per line/statement Created 7 years, 3 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
« no previous file with comments | « Source/core/css/CSSDefaultStyleSheets.cpp ('k') | Source/core/css/RuleSet.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 1662 matching lines...) Expand 10 before | Expand all | Expand 10 after
1673 1673
1674 if (!m_valueList) 1674 if (!m_valueList)
1675 return false; 1675 return false;
1676 1676
1677 CSSParserValue* value = m_valueList->current(); 1677 CSSParserValue* value = m_valueList->current();
1678 1678
1679 if (!value) 1679 if (!value)
1680 return false; 1680 return false;
1681 1681
1682 if (inViewport()) { 1682 if (inViewport()) {
1683 if (!RuntimeEnabledFeatures::cssViewportEnabled()) 1683 // Allow @viewport rules from UA stylesheets even if the feature is disa bled.
1684 if (!RuntimeEnabledFeatures::cssViewportEnabled() && m_context.mode != U ASheetMode)
1684 return false; 1685 return false;
1685 1686
1686 return parseViewportProperty(propId, important); 1687 return parseViewportProperty(propId, important);
1687 } 1688 }
1688 1689
1689 // Note: m_parsedCalculation is used to pass the calc value to validUnit and then cleared at the end of this function. 1690 // Note: m_parsedCalculation is used to pass the calc value to validUnit and then cleared at the end of this function.
1690 // FIXME: This is to avoid having to pass parsedCalc to all validUnit caller s. 1691 // FIXME: This is to avoid having to pass parsedCalc to all validUnit caller s.
1691 ASSERT(!m_parsedCalculation); 1692 ASSERT(!m_parsedCalculation);
1692 1693
1693 CSSValueID id = value->id; 1694 CSSValueID id = value->id;
(...skipping 9933 matching lines...) Expand 10 before | Expand all | Expand 10 after
11627 m_sourceDataHandler->startEndUnknownRule(); 11628 m_sourceDataHandler->startEndUnknownRule();
11628 } 11629 }
11629 11630
11630 unsigned CSSParser::safeUserStringTokenOffset() 11631 unsigned CSSParser::safeUserStringTokenOffset()
11631 { 11632 {
11632 return min(tokenStartOffset(), static_cast<unsigned>(m_length - 1 - m_parsed TextSuffixLength)) - m_parsedTextPrefixLength; 11633 return min(tokenStartOffset(), static_cast<unsigned>(m_length - 1 - m_parsed TextSuffixLength)) - m_parsedTextPrefixLength;
11633 } 11634 }
11634 11635
11635 StyleRuleBase* CSSParser::createViewportRule() 11636 StyleRuleBase* CSSParser::createViewportRule()
11636 { 11637 {
11637 if (!RuntimeEnabledFeatures::cssViewportEnabled()) { 11638 // Allow @viewport rules from UA stylesheets even if the feature is disabled .
11639 if (!RuntimeEnabledFeatures::cssViewportEnabled() && m_context.mode != UAShe etMode) {
11638 endRuleBody(true); 11640 endRuleBody(true);
11639 return 0; 11641 return 0;
11640 } 11642 }
11641 11643
11642 m_allowImportRules = m_allowNamespaceDeclarations = false; 11644 m_allowImportRules = m_allowNamespaceDeclarations = false;
11643 11645
11644 RefPtr<StyleRuleViewport> rule = StyleRuleViewport::create(); 11646 RefPtr<StyleRuleViewport> rule = StyleRuleViewport::create();
11645 11647
11646 rule->setProperties(createStylePropertySet()); 11648 rule->setProperties(createStylePropertySet());
11647 clearProperties(); 11649 clearProperties();
11648 11650
11649 StyleRuleViewport* result = rule.get(); 11651 StyleRuleViewport* result = rule.get();
11650 m_parsedRules.append(rule.release()); 11652 m_parsedRules.append(rule.release());
11651 endRuleBody(); 11653 endRuleBody();
11652 11654
11653 return result; 11655 return result;
11654 } 11656 }
11655 11657
11656 bool CSSParser::parseViewportProperty(CSSPropertyID propId, bool important) 11658 bool CSSParser::parseViewportProperty(CSSPropertyID propId, bool important)
11657 { 11659 {
11658 ASSERT(RuntimeEnabledFeatures::cssViewportEnabled()); 11660 ASSERT(RuntimeEnabledFeatures::cssViewportEnabled() || m_context.mode == UAS heetMode);
11659 11661
11660 CSSParserValue* value = m_valueList->current(); 11662 CSSParserValue* value = m_valueList->current();
11661 if (!value) 11663 if (!value)
11662 return false; 11664 return false;
11663 11665
11664 CSSValueID id = value->id; 11666 CSSValueID id = value->id;
11665 bool validPrimitive = false; 11667 bool validPrimitive = false;
11666 11668
11667 switch (propId) { 11669 switch (propId) {
11668 case CSSPropertyMinWidth: // auto | extend-to-zoom | <length> | <percentage> 11670 case CSSPropertyMinWidth: // auto | extend-to-zoom | <length> | <percentage>
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
11708 addProperty(propId, parsedValue.release(), important); 11710 addProperty(propId, parsedValue.release(), important);
11709 return true; 11711 return true;
11710 } 11712 }
11711 } 11713 }
11712 11714
11713 return false; 11715 return false;
11714 } 11716 }
11715 11717
11716 bool CSSParser::parseViewportShorthand(CSSPropertyID propId, CSSPropertyID first , CSSPropertyID second, bool important) 11718 bool CSSParser::parseViewportShorthand(CSSPropertyID propId, CSSPropertyID first , CSSPropertyID second, bool important)
11717 { 11719 {
11718 ASSERT(RuntimeEnabledFeatures::cssViewportEnabled()); 11720 ASSERT(RuntimeEnabledFeatures::cssViewportEnabled() || m_context.mode == UAS heetMode);
11719 unsigned numValues = m_valueList->size(); 11721 unsigned numValues = m_valueList->size();
11720 11722
11721 if (numValues > 2) 11723 if (numValues > 2)
11722 return false; 11724 return false;
11723 11725
11724 ShorthandScope scope(this, propId); 11726 ShorthandScope scope(this, propId);
11725 11727
11726 if (!parseViewportProperty(first, important)) 11728 if (!parseViewportProperty(first, important))
11727 return false; 11729 return false;
11728 11730
(...skipping 244 matching lines...) Expand 10 before | Expand all | Expand 10 after
11973 { 11975 {
11974 // The tokenizer checks for the construct of an+b. 11976 // The tokenizer checks for the construct of an+b.
11975 // However, since the {ident} rule precedes the {nth} rule, some of those 11977 // However, since the {ident} rule precedes the {nth} rule, some of those
11976 // tokens are identified as string literal. Furthermore we need to accept 11978 // tokens are identified as string literal. Furthermore we need to accept
11977 // "odd" and "even" which does not match to an+b. 11979 // "odd" and "even" which does not match to an+b.
11978 return equalIgnoringCase(token, "odd") || equalIgnoringCase(token, "even") 11980 return equalIgnoringCase(token, "odd") || equalIgnoringCase(token, "even")
11979 || equalIgnoringCase(token, "n") || equalIgnoringCase(token, "-n"); 11981 || equalIgnoringCase(token, "n") || equalIgnoringCase(token, "-n");
11980 } 11982 }
11981 11983
11982 } 11984 }
OLDNEW
« no previous file with comments | « Source/core/css/CSSDefaultStyleSheets.cpp ('k') | Source/core/css/RuleSet.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698