use style::context::QuirksMode;
use style::error_reporting::ParseErrorReporter;
use style::parser::ParserContext;
use style::stylesheets::{CssRuleType, Origin, UrlExtraData};
use style_traits::ParsingMode;
use crate::dom::document::Document;
pub(crate) fn parser_context_for_document<'a>(
document: &'a Document,
rule_type: CssRuleType,
parsing_mode: ParsingMode,
url_data: &'a UrlExtraData,
) -> ParserContext<'a> {
let quirks_mode = document.quirks_mode();
let error_reporter = document.window().css_error_reporter();
ParserContext::new(
Origin::Author,
url_data,
Some(rule_type),
parsing_mode,
quirks_mode,
Default::default(),
Some(error_reporter),
None,
)
}
pub(crate) fn parser_context_for_document_with_reporter<'a>(
document: &'a Document,
rule_type: CssRuleType,
parsing_mode: ParsingMode,
url_data: &'a UrlExtraData,
error_reporter: &'a dyn ParseErrorReporter,
) -> ParserContext<'a> {
let quirks_mode = document.quirks_mode();
ParserContext::new(
Origin::Author,
url_data,
Some(rule_type),
parsing_mode,
quirks_mode,
Default::default(),
Some(error_reporter),
None,
)
}
pub(crate) fn parser_context_for_anonymous_content<'a>(
rule_type: CssRuleType,
parsing_mode: ParsingMode,
url_data: &'a UrlExtraData,
) -> ParserContext<'a> {
ParserContext::new(
Origin::Author,
url_data,
Some(rule_type),
parsing_mode,
QuirksMode::NoQuirks,
Default::default(),
None,
None,
)
}