mirror of
https://github.com/servo/servo.git
synced 2025-08-03 12:40:06 +01:00
Propagate quirks mode all the way to ParserContext
The quirks mode is still not properly propagated in geckolib.
This commit is contained in:
parent
10fb8e61c7
commit
f68e2fded9
39 changed files with 225 additions and 100 deletions
|
@ -6,6 +6,7 @@
|
|||
|
||||
#![deny(missing_docs)]
|
||||
|
||||
use context::QuirksMode;
|
||||
use cssparser::{Parser, SourcePosition, UnicodeRange};
|
||||
use error_reporting::ParseErrorReporter;
|
||||
use style_traits::OneOrMoreCommaSeparated;
|
||||
|
@ -44,6 +45,8 @@ pub struct ParserContext<'a> {
|
|||
pub line_number_offset: u64,
|
||||
/// The mode to use when parsing lengths.
|
||||
pub length_parsing_mode: LengthParsingMode,
|
||||
/// The quirks mode of this stylesheet.
|
||||
pub quirks_mode: QuirksMode,
|
||||
}
|
||||
|
||||
impl<'a> ParserContext<'a> {
|
||||
|
@ -52,7 +55,8 @@ impl<'a> ParserContext<'a> {
|
|||
url_data: &'a UrlExtraData,
|
||||
error_reporter: &'a ParseErrorReporter,
|
||||
rule_type: Option<CssRuleType>,
|
||||
length_parsing_mode: LengthParsingMode)
|
||||
length_parsing_mode: LengthParsingMode,
|
||||
quirks_mode: QuirksMode)
|
||||
-> ParserContext<'a> {
|
||||
ParserContext {
|
||||
stylesheet_origin: stylesheet_origin,
|
||||
|
@ -61,6 +65,7 @@ impl<'a> ParserContext<'a> {
|
|||
rule_type: rule_type,
|
||||
line_number_offset: 0u64,
|
||||
length_parsing_mode: length_parsing_mode,
|
||||
quirks_mode: quirks_mode,
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -68,9 +73,10 @@ impl<'a> ParserContext<'a> {
|
|||
pub fn new_for_cssom(url_data: &'a UrlExtraData,
|
||||
error_reporter: &'a ParseErrorReporter,
|
||||
rule_type: Option<CssRuleType>,
|
||||
length_parsing_mode: LengthParsingMode)
|
||||
length_parsing_mode: LengthParsingMode,
|
||||
quirks_mode: QuirksMode)
|
||||
-> ParserContext<'a> {
|
||||
Self::new(Origin::Author, url_data, error_reporter, rule_type, length_parsing_mode)
|
||||
Self::new(Origin::Author, url_data, error_reporter, rule_type, length_parsing_mode, quirks_mode)
|
||||
}
|
||||
|
||||
/// Create a parser context based on a previous context, but with a modified rule type.
|
||||
|
@ -84,6 +90,7 @@ impl<'a> ParserContext<'a> {
|
|||
rule_type: rule_type,
|
||||
line_number_offset: context.line_number_offset,
|
||||
length_parsing_mode: context.length_parsing_mode,
|
||||
quirks_mode: context.quirks_mode,
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -92,7 +99,8 @@ impl<'a> ParserContext<'a> {
|
|||
url_data: &'a UrlExtraData,
|
||||
error_reporter: &'a ParseErrorReporter,
|
||||
line_number_offset: u64,
|
||||
length_parsing_mode: LengthParsingMode)
|
||||
length_parsing_mode: LengthParsingMode,
|
||||
quirks_mode: QuirksMode)
|
||||
-> ParserContext<'a> {
|
||||
ParserContext {
|
||||
stylesheet_origin: stylesheet_origin,
|
||||
|
@ -101,6 +109,7 @@ impl<'a> ParserContext<'a> {
|
|||
rule_type: None,
|
||||
line_number_offset: line_number_offset,
|
||||
length_parsing_mode: length_parsing_mode,
|
||||
quirks_mode: quirks_mode,
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue