bool BisonCSSParser::parseAttributeMatchType(CSSSelector::AttributeMatchType& matchType, const String& string) { if (!RuntimeEnabledFeatures::cssAttributeCaseSensitivityEnabled() && !isUASheetBehavior(m_context.mode())) return false; if (string == "i") { matchType = CSSSelector::CaseInsensitive; return true; } return false; }
CSSSelector::AttributeMatchType CSSSelectorParser::consumeAttributeFlags(CSSParserTokenRange& range) { if (range.peek().type() != IdentToken) return CSSSelector::CaseSensitive; const CSSParserToken& flag = range.consumeIncludingWhitespace(); if (String(flag.value()) == "i") { if (RuntimeEnabledFeatures::cssAttributeCaseSensitivityEnabled() || isUASheetBehavior(m_context.mode())) return CSSSelector::CaseInsensitive; } m_failedParsing = true; return CSSSelector::CaseSensitive; }
StyleRuleBase* BisonCSSParser::createViewportRule() { // Allow @viewport rules from UA stylesheets even if the feature is disabled. if (!RuntimeEnabledFeatures::cssViewportEnabled() && !isUASheetBehavior(m_context.mode())) return 0; m_allowImportRules = m_allowNamespaceDeclarations = false; RefPtrWillBeRawPtr<StyleRuleViewport> rule = StyleRuleViewport::create(); rule->setProperties(createStylePropertySet()); clearProperties(); StyleRuleViewport* result = rule.get(); m_parsedRules.append(rule.release()); return result; }
PassRefPtrWillBeRawPtr<StyleRuleViewport> CSSParserImpl::consumeViewportRule(CSSParserTokenRange prelude, CSSParserTokenRange block) { // Allow @viewport rules from UA stylesheets even if the feature is disabled. if (!RuntimeEnabledFeatures::cssViewportEnabled() && !isUASheetBehavior(m_context.mode())) return nullptr; prelude.consumeWhitespace(); if (!prelude.atEnd()) return nullptr; // Parser error; @viewport prelude should be empty if (m_observerWrapper) { unsigned endOffset = m_observerWrapper->endOffset(prelude); m_observerWrapper->observer().startRuleHeader(StyleRule::Viewport, m_observerWrapper->startOffset(prelude)); m_observerWrapper->observer().endRuleHeader(endOffset); m_observerWrapper->observer().startRuleBody(endOffset); m_observerWrapper->observer().endRuleBody(endOffset); } consumeDeclarationList(block, StyleRule::Viewport); return StyleRuleViewport::create(createStylePropertySet(m_parsedProperties, CSSViewportRuleMode)); }