Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 1739 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1750 RefPtrWillBeRawPtr<StyleRuleKeyframes> rule = StyleRuleKeyframes::create(); | 1750 RefPtrWillBeRawPtr<StyleRuleKeyframes> rule = StyleRuleKeyframes::create(); |
| 1751 for (size_t i = 0; i < keyframes->size(); ++i) | 1751 for (size_t i = 0; i < keyframes->size(); ++i) |
| 1752 rule->parserAppendKeyframe(keyframes->at(i)); | 1752 rule->parserAppendKeyframe(keyframes->at(i)); |
| 1753 rule->setName(name); | 1753 rule->setName(name); |
| 1754 rule->setVendorPrefixed(isPrefixed); | 1754 rule->setVendorPrefixed(isPrefixed); |
| 1755 StyleRuleKeyframes* rulePtr = rule.get(); | 1755 StyleRuleKeyframes* rulePtr = rule.get(); |
| 1756 m_parsedRules.append(rule.release()); | 1756 m_parsedRules.append(rule.release()); |
| 1757 return rulePtr; | 1757 return rulePtr; |
| 1758 } | 1758 } |
| 1759 | 1759 |
| 1760 static void recordSelectorStats(const CSSParserContext& context, const CSSSelect orList& selectorList) | |
| 1761 { | |
| 1762 if (!context.useCounter()) | |
| 1763 return; | |
| 1764 | |
| 1765 for (const CSSSelector* selector = selectorList.first(); selector; selector = CSSSelectorList::next(*selector)) { | |
| 1766 for ( ; ; selector = selector->tagHistory()) { | |
| 1767 UseCounter::Feature feature = UseCounter::NumberOfFeatures; | |
| 1768 switch (selector->pseudoType()) { | |
| 1769 case CSSSelector::PseudoUnresolved: | |
| 1770 feature = UseCounter::CSSSelectorPseudoUnresolved; | |
| 1771 break; | |
| 1772 case CSSSelector::PseudoShadow: | |
| 1773 feature = UseCounter::CSSSelectorPseudoShadow; | |
| 1774 break; | |
| 1775 case CSSSelector::PseudoContent: | |
| 1776 feature = UseCounter::CSSSelectorPseudoContent; | |
| 1777 break; | |
| 1778 case CSSSelector::PseudoHost: | |
| 1779 feature = UseCounter::CSSSelectorPseudoHost; | |
| 1780 break; | |
| 1781 case CSSSelector::PseudoHostContext: | |
| 1782 feature = UseCounter::CSSSelectorPseudoHostContext; | |
| 1783 break; | |
| 1784 default: | |
| 1785 break; | |
| 1786 } | |
| 1787 if (feature != UseCounter::NumberOfFeatures) | |
| 1788 context.useCounter()->count(feature); | |
| 1789 if (selector->relation() == CSSSelector::ShadowDeep) | |
|
kochi
2014/06/18 09:03:31
I noticed that some pseudo element can be combined
| |
| 1790 context.useCounter()->count(UseCounter::CSSDeepCombinator); | |
| 1791 if (selector->selectorList()) | |
| 1792 recordSelectorStats(context, *selector->selectorList()); | |
| 1793 if (selector->isLastInTagHistory()) | |
|
esprehn
2014/06/18 11:13:25
I don't think you should need this check and break
kochi
2014/06/18 16:30:23
This was unintentionally tricky...
The |selector|
| |
| 1794 break; | |
| 1795 } | |
| 1796 } | |
| 1797 } | |
| 1798 | |
| 1760 StyleRuleBase* BisonCSSParser::createStyleRule(Vector<OwnPtr<CSSParserSelector> >* selectors) | 1799 StyleRuleBase* BisonCSSParser::createStyleRule(Vector<OwnPtr<CSSParserSelector> >* selectors) |
| 1761 { | 1800 { |
| 1762 StyleRule* result = 0; | 1801 StyleRule* result = 0; |
| 1763 if (selectors) { | 1802 if (selectors) { |
| 1764 m_allowImportRules = m_allowNamespaceDeclarations = false; | 1803 m_allowImportRules = m_allowNamespaceDeclarations = false; |
| 1765 RefPtrWillBeRawPtr<StyleRule> rule = StyleRule::create(); | 1804 RefPtrWillBeRawPtr<StyleRule> rule = StyleRule::create(); |
| 1766 rule->parserAdoptSelectorVector(*selectors); | 1805 rule->parserAdoptSelectorVector(*selectors); |
| 1767 rule->setProperties(createStylePropertySet()); | 1806 rule->setProperties(createStylePropertySet()); |
| 1768 result = rule.get(); | 1807 result = rule.get(); |
| 1769 m_parsedRules.append(rule.release()); | 1808 m_parsedRules.append(rule.release()); |
| 1809 recordSelectorStats(m_context, result->selectorList()); | |
| 1770 } | 1810 } |
| 1771 clearProperties(); | 1811 clearProperties(); |
| 1772 return result; | 1812 return result; |
| 1773 } | 1813 } |
| 1774 | 1814 |
| 1775 StyleRuleBase* BisonCSSParser::createFontFaceRule() | 1815 StyleRuleBase* BisonCSSParser::createFontFaceRule() |
| 1776 { | 1816 { |
| 1777 m_allowImportRules = m_allowNamespaceDeclarations = false; | 1817 m_allowImportRules = m_allowNamespaceDeclarations = false; |
| 1778 for (unsigned i = 0; i < m_parsedProperties.size(); ++i) { | 1818 for (unsigned i = 0; i < m_parsedProperties.size(); ++i) { |
| 1779 CSSProperty& property = m_parsedProperties[i]; | 1819 CSSProperty& property = m_parsedProperties[i]; |
| (...skipping 293 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2073 rule->setProperties(createStylePropertySet()); | 2113 rule->setProperties(createStylePropertySet()); |
| 2074 clearProperties(); | 2114 clearProperties(); |
| 2075 | 2115 |
| 2076 StyleRuleViewport* result = rule.get(); | 2116 StyleRuleViewport* result = rule.get(); |
| 2077 m_parsedRules.append(rule.release()); | 2117 m_parsedRules.append(rule.release()); |
| 2078 | 2118 |
| 2079 return result; | 2119 return result; |
| 2080 } | 2120 } |
| 2081 | 2121 |
| 2082 } | 2122 } |
| OLD | NEW |