Commit 5c7d48b0 authored by Kevin Babbitt's avatar Kevin Babbitt Committed by Commit Bot

[CSSParser] Plumb streaming parser into at-rule handlers

This CL pushes stream-based parsing one level deeper in the stack for
at-rules. The most notable difference is that at-rule handler functions
are now responsible for tokenizing their own preludes and starting
block handling if needed.

Actual parsing for at-rule preludes is unchanged as of yet; the handler
functions generate token ranges on their own and parse them as before.
In future CLs we'll be able to convert each at-rule handler to make
full use of stream parsing.

Bug: 661854
Change-Id: Ia3345be73ab8cc9fce2537443e8a3ed9df017b96
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2208812Reviewed-by: default avatarAnders Hartvoll Ruud <andruud@chromium.org>
Commit-Queue: Kevin Babbitt <kbabbitt@microsoft.com>
Cr-Commit-Position: refs/heads/master@{#771906}
parent 714a98f9
......@@ -147,33 +147,18 @@ class CORE_EXPORT CSSParserImpl {
StyleRuleBase* ConsumeAtRule(CSSParserTokenStream&, AllowedRulesType);
StyleRuleBase* ConsumeQualifiedRule(CSSParserTokenStream&, AllowedRulesType);
static StyleRuleCharset* ConsumeCharsetRule(CSSParserTokenRange prelude);
static StyleRuleCharset* ConsumeCharsetRule(CSSParserTokenStream&);
StyleRuleImport* ConsumeImportRule(AtomicString prelude_uri,
CSSParserTokenRange prelude,
const RangeOffset& prelude_offset);
StyleRuleNamespace* ConsumeNamespaceRule(CSSParserTokenRange prelude);
StyleRuleMedia* ConsumeMediaRule(CSSParserTokenRange prelude,
const RangeOffset& prelude_offset,
CSSParserTokenStream& block);
StyleRuleSupports* ConsumeSupportsRule(CSSParserTokenRange prelude,
const RangeOffset& prelude_offset,
CSSParserTokenStream& block);
StyleRuleViewport* ConsumeViewportRule(CSSParserTokenRange prelude,
const RangeOffset& prelude_offset,
CSSParserTokenStream& block);
StyleRuleFontFace* ConsumeFontFaceRule(CSSParserTokenRange prelude,
const RangeOffset& prelude_offset,
CSSParserTokenStream& block);
CSSParserTokenStream&);
StyleRuleNamespace* ConsumeNamespaceRule(CSSParserTokenStream&);
StyleRuleMedia* ConsumeMediaRule(CSSParserTokenStream&);
StyleRuleSupports* ConsumeSupportsRule(CSSParserTokenStream&);
StyleRuleViewport* ConsumeViewportRule(CSSParserTokenStream&);
StyleRuleFontFace* ConsumeFontFaceRule(CSSParserTokenStream&);
StyleRuleKeyframes* ConsumeKeyframesRule(bool webkit_prefixed,
CSSParserTokenRange prelude,
const RangeOffset& prelude_offset,
CSSParserTokenStream& block);
StyleRulePage* ConsumePageRule(CSSParserTokenRange prelude,
const RangeOffset& prelude_offset,
CSSParserTokenStream& block);
StyleRuleProperty* ConsumePropertyRule(CSSParserTokenRange prelude,
const RangeOffset& prelude_offset,
CSSParserTokenStream& block);
CSSParserTokenStream&);
StyleRulePage* ConsumePageRule(CSSParserTokenStream&);
StyleRuleProperty* ConsumePropertyRule(CSSParserTokenStream&);
StyleRuleKeyframe* ConsumeKeyframeStyleRule(CSSParserTokenRange prelude,
const RangeOffset& prelude_offset,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment