| Index: third_party/WebKit/Source/core/css/parser/CSSSelectorParser.cpp
|
| diff --git a/third_party/WebKit/Source/core/css/parser/CSSSelectorParser.cpp b/third_party/WebKit/Source/core/css/parser/CSSSelectorParser.cpp
|
| index 33e69d2192ce6561da902d708cea6a3803f93fc3..37b6f8f3de33d5a2695c83a2bab09fbf2a5380f8 100644
|
| --- a/third_party/WebKit/Source/core/css/parser/CSSSelectorParser.cpp
|
| +++ b/third_party/WebKit/Source/core/css/parser/CSSSelectorParser.cpp
|
| @@ -14,9 +14,9 @@
|
|
|
| namespace blink {
|
|
|
| -static void recordSelectorStats(const CSSParserContext& context,
|
| +static void recordSelectorStats(const CSSParserContext* context,
|
| const CSSSelectorList& selectorList) {
|
| - if (!context.useCounter())
|
| + if (!context->isUseCounterRecordingEnabled())
|
| return;
|
|
|
| for (const CSSSelector* selector = selectorList.first(); selector;
|
| @@ -53,11 +53,11 @@ static void recordSelectorStats(const CSSParserContext& context,
|
| feature = UseCounter::CSSSelectorPseudoFullScreen;
|
| break;
|
| case CSSSelector::PseudoListBox:
|
| - if (context.mode() != UASheetMode)
|
| + if (context->mode() != UASheetMode)
|
| feature = UseCounter::CSSSelectorInternalPseudoListBox;
|
| break;
|
| case CSSSelector::PseudoWebKitCustomElement:
|
| - if (context.mode() != UASheetMode) {
|
| + if (context->mode() != UASheetMode) {
|
| if (current->value() == "-internal-media-controls-cast-button")
|
| feature = UseCounter::CSSSelectorInternalMediaControlsCastButton;
|
| else if (current->value() ==
|
| @@ -67,25 +67,25 @@ static void recordSelectorStats(const CSSParserContext& context,
|
| }
|
| break;
|
| case CSSSelector::PseudoSpatialNavigationFocus:
|
| - if (context.mode() != UASheetMode)
|
| + if (context->mode() != UASheetMode)
|
| feature =
|
| UseCounter::CSSSelectorInternalPseudoSpatialNavigationFocus;
|
| break;
|
| case CSSSelector::PseudoReadOnly:
|
| - if (context.mode() != UASheetMode)
|
| + if (context->mode() != UASheetMode)
|
| feature = UseCounter::CSSSelectorPseudoReadOnly;
|
| break;
|
| case CSSSelector::PseudoReadWrite:
|
| - if (context.mode() != UASheetMode)
|
| + if (context->mode() != UASheetMode)
|
| feature = UseCounter::CSSSelectorPseudoReadWrite;
|
| break;
|
| default:
|
| break;
|
| }
|
| if (feature != UseCounter::NumberOfFeatures)
|
| - context.useCounter()->count(feature);
|
| + context->useCounter()->count(feature);
|
| if (current->relation() == CSSSelector::IndirectAdjacent)
|
| - context.useCounter()->count(UseCounter::CSSSelectorIndirectAdjacent);
|
| + context->useCounter()->count(UseCounter::CSSSelectorIndirectAdjacent);
|
| if (current->selectorList())
|
| recordSelectorStats(context, *current->selectorList());
|
| }
|
| @@ -94,7 +94,7 @@ static void recordSelectorStats(const CSSParserContext& context,
|
|
|
| CSSSelectorList CSSSelectorParser::parseSelector(
|
| CSSParserTokenRange range,
|
| - const CSSParserContext& context,
|
| + const CSSParserContext* context,
|
| StyleSheetContents* styleSheet) {
|
| CSSSelectorParser parser(context, styleSheet);
|
| range.consumeWhitespace();
|
| @@ -106,7 +106,7 @@ CSSSelectorList CSSSelectorParser::parseSelector(
|
| return result;
|
| }
|
|
|
| -CSSSelectorParser::CSSSelectorParser(const CSSParserContext& context,
|
| +CSSSelectorParser::CSSSelectorParser(const CSSParserContext* context,
|
| StyleSheetContents* styleSheet)
|
| : m_context(context), m_styleSheet(styleSheet) {}
|
|
|
| @@ -191,7 +191,7 @@ std::unique_ptr<CSSParserSelector> CSSSelectorParser::consumeComplexSelector(
|
|
|
| for (CSSParserSelector* simple = selector.get();
|
| simple && !previousCompoundFlags; simple = simple->tagHistory())
|
| - previousCompoundFlags |= extractCompoundFlags(*simple, m_context.mode());
|
| + previousCompoundFlags |= extractCompoundFlags(*simple, m_context->mode());
|
|
|
| while (CSSSelector::RelationType combinator = consumeCombinator(range)) {
|
| std::unique_ptr<CSSParserSelector> nextSelector =
|
| @@ -202,10 +202,10 @@ std::unique_ptr<CSSParserSelector> CSSSelectorParser::consumeComplexSelector(
|
| if (previousCompoundFlags & HasPseudoElementForRightmostCompound)
|
| return nullptr;
|
| CSSParserSelector* end = nextSelector.get();
|
| - unsigned compoundFlags = extractCompoundFlags(*end, m_context.mode());
|
| + unsigned compoundFlags = extractCompoundFlags(*end, m_context->mode());
|
| while (end->tagHistory()) {
|
| end = end->tagHistory();
|
| - compoundFlags |= extractCompoundFlags(*end, m_context.mode());
|
| + compoundFlags |= extractCompoundFlags(*end, m_context->mode());
|
| }
|
| end->setRelation(combinator);
|
| if (previousCompoundFlags & HasContentPseudoElement)
|
| @@ -312,7 +312,7 @@ std::unique_ptr<CSSParserSelector> CSSSelectorParser::consumeCompoundSelector(
|
| if (compoundSelector->match() == CSSSelector::PseudoElement)
|
| compoundPseudoElement = compoundSelector->pseudoType();
|
| }
|
| - if (m_context.isHTMLDocument())
|
| + if (m_context->isHTMLDocument())
|
| elementName = elementName.lower();
|
|
|
| while (std::unique_ptr<CSSParserSelector> simpleSelector =
|
| @@ -321,7 +321,7 @@ std::unique_ptr<CSSParserSelector> CSSSelectorParser::consumeCompoundSelector(
|
| // The UASheetMode check is a work-around to allow this selector in
|
| // mediaControls(New).css:
|
| // video::-webkit-media-text-track-region-container.scrolling
|
| - if (m_context.mode() != UASheetMode &&
|
| + if (m_context->mode() != UASheetMode &&
|
| !isSimpleSelectorValidAfterPseudoElement(*simpleSelector.get(),
|
| compoundPseudoElement)) {
|
| m_failedParsing = true;
|
| @@ -423,7 +423,7 @@ std::unique_ptr<CSSParserSelector> CSSSelectorParser::consumeId(
|
| std::unique_ptr<CSSParserSelector> selector = CSSParserSelector::create();
|
| selector->setMatch(CSSSelector::Id);
|
| AtomicString value = range.consume().value().toAtomicString();
|
| - selector->setValue(value, isQuirksModeBehavior(m_context.matchMode()));
|
| + selector->setValue(value, isQuirksModeBehavior(m_context->matchMode()));
|
| return selector;
|
| }
|
|
|
| @@ -437,7 +437,7 @@ std::unique_ptr<CSSParserSelector> CSSSelectorParser::consumeClass(
|
| std::unique_ptr<CSSParserSelector> selector = CSSParserSelector::create();
|
| selector->setMatch(CSSSelector::Class);
|
| AtomicString value = range.consume().value().toAtomicString();
|
| - selector->setValue(value, isQuirksModeBehavior(m_context.matchMode()));
|
| + selector->setValue(value, isQuirksModeBehavior(m_context->matchMode()));
|
| return selector;
|
| }
|
|
|
| @@ -453,7 +453,7 @@ std::unique_ptr<CSSParserSelector> CSSSelectorParser::consumeAttribute(
|
| return nullptr;
|
| block.consumeWhitespace();
|
|
|
| - if (m_context.isHTMLDocument())
|
| + if (m_context->isHTMLDocument())
|
| attributeName = attributeName.lower();
|
|
|
| AtomicString namespaceURI = determineNamespace(namespacePrefix);
|
| @@ -616,7 +616,7 @@ CSSSelector::RelationType CSSSelectorParser::consumeCombinator(
|
| case '>':
|
| if (!RuntimeEnabledFeatures::
|
| shadowPiercingDescendantCombinatorEnabled() ||
|
| - m_context.isDynamicProfile() ||
|
| + m_context->isDynamicProfile() ||
|
| range.peek(1).type() != DelimiterToken ||
|
| range.peek(1).delimiter() != '>') {
|
| range.consumeIncludingWhitespace();
|
|
|