mirror of
https://github.com/servo/servo.git
synced 2025-08-15 10:25:32 +01:00
Move ParsingMode into style_traits.
This commit is contained in:
parent
849bdc958c
commit
8bfed4cb3c
23 changed files with 73 additions and 62 deletions
|
@ -7,37 +7,11 @@
|
|||
use context::QuirksMode;
|
||||
use cssparser::{Parser, SourcePosition, UnicodeRange};
|
||||
use error_reporting::{ParseErrorReporter, ContextualParseError};
|
||||
use style_traits::{OneOrMoreCommaSeparated, ParseError};
|
||||
use style_traits::{OneOrMoreCommaSeparated, ParseError, ParsingMode};
|
||||
#[cfg(feature = "gecko")]
|
||||
use style_traits::{PARSING_MODE_DEFAULT, PARSING_MODE_ALLOW_UNITLESS_LENGTH, PARSING_MODE_ALLOW_ALL_NUMERIC_VALUES};
|
||||
use stylesheets::{CssRuleType, Origin, UrlExtraData, Namespaces};
|
||||
|
||||
bitflags! {
|
||||
/// The mode to use when parsing values.
|
||||
pub flags ParsingMode: u8 {
|
||||
/// In CSS, lengths must have units, except for zero values, where the unit can be omitted.
|
||||
/// https://www.w3.org/TR/css3-values/#lengths
|
||||
const PARSING_MODE_DEFAULT = 0x00,
|
||||
/// In SVG, a coordinate or length value without a unit identifier (e.g., "25") is assumed
|
||||
/// to be in user units (px).
|
||||
/// https://www.w3.org/TR/SVG/coords.html#Units
|
||||
const PARSING_MODE_ALLOW_UNITLESS_LENGTH = 0x01,
|
||||
/// In SVG, out-of-range values are not treated as an error in parsing.
|
||||
/// https://www.w3.org/TR/SVG/implnote.html#RangeClamping
|
||||
const PARSING_MODE_ALLOW_ALL_NUMERIC_VALUES = 0x02,
|
||||
}
|
||||
}
|
||||
|
||||
impl ParsingMode {
|
||||
/// Whether the parsing mode allows unitless lengths for non-zero values to be intpreted as px.
|
||||
pub fn allows_unitless_lengths(&self) -> bool {
|
||||
self.intersects(PARSING_MODE_ALLOW_UNITLESS_LENGTH)
|
||||
}
|
||||
|
||||
/// Whether the parsing mode allows all numeric values.
|
||||
pub fn allows_all_numeric_values(&self) -> bool {
|
||||
self.intersects(PARSING_MODE_ALLOW_ALL_NUMERIC_VALUES)
|
||||
}
|
||||
}
|
||||
|
||||
/// Asserts that all ParsingMode flags have a matching ParsingMode value in gecko.
|
||||
#[cfg(feature = "gecko")]
|
||||
#[inline]
|
||||
|
|
|
@ -10,13 +10,13 @@ use context::QuirksMode;
|
|||
use cssparser::{DeclarationListParser, parse_important, ParserInput};
|
||||
use cssparser::{Parser, AtRuleParser, DeclarationParser, Delimiter};
|
||||
use error_reporting::{ParseErrorReporter, ContextualParseError};
|
||||
use parser::{PARSING_MODE_DEFAULT, ParsingMode, ParserContext, log_css_error};
|
||||
use parser::{ParserContext, log_css_error};
|
||||
use properties::animated_properties::AnimationValue;
|
||||
use selectors::parser::SelectorParseError;
|
||||
use shared_lock::Locked;
|
||||
use std::fmt;
|
||||
use std::slice::Iter;
|
||||
use style_traits::{ToCss, ParseError, StyleParseError};
|
||||
use style_traits::{PARSING_MODE_DEFAULT, ToCss, ParseError, ParsingMode, StyleParseError};
|
||||
use stylesheets::{CssRuleType, Origin, UrlExtraData};
|
||||
use stylesheets::{MallocSizeOf, MallocSizeOfFn};
|
||||
use super::*;
|
||||
|
|
|
@ -31,13 +31,13 @@ use font_metrics::FontMetricsProvider;
|
|||
#[cfg(feature = "servo")] use logical_geometry::{LogicalMargin, PhysicalSide};
|
||||
use logical_geometry::WritingMode;
|
||||
use media_queries::Device;
|
||||
use parser::{PARSING_MODE_DEFAULT, Parse, ParserContext};
|
||||
use parser::{Parse, ParserContext};
|
||||
use properties::animated_properties::TransitionProperty;
|
||||
#[cfg(feature = "gecko")] use properties::longhands::system_font::SystemFont;
|
||||
use selectors::parser::SelectorParseError;
|
||||
#[cfg(feature = "servo")] use servo_config::prefs::PREFS;
|
||||
use shared_lock::StylesheetGuards;
|
||||
use style_traits::{HasViewportPercentage, ToCss, ParseError, PropertyDeclarationParseError};
|
||||
use style_traits::{PARSING_MODE_DEFAULT, HasViewportPercentage, ToCss, ParseError, PropertyDeclarationParseError};
|
||||
use stylesheets::{CssRuleType, MallocSizeOf, MallocSizeOfFn, Origin, UrlExtraData};
|
||||
#[cfg(feature = "servo")] use values::Either;
|
||||
use values::generics::text::LineHeight;
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
use cssparser::{AtRuleParser, Parser, QualifiedRuleParser, RuleListParser, ParserInput};
|
||||
use cssparser::{DeclarationListParser, DeclarationParser, parse_one_rule, SourceLocation};
|
||||
use error_reporting::{NullReporter, ContextualParseError};
|
||||
use parser::{PARSING_MODE_DEFAULT, ParserContext, log_css_error};
|
||||
use parser::{ParserContext, log_css_error};
|
||||
use properties::{Importance, PropertyDeclaration, PropertyDeclarationBlock, PropertyId};
|
||||
use properties::{PropertyDeclarationId, LonghandId, SourcePropertyDeclaration};
|
||||
use properties::LonghandIdSet;
|
||||
|
@ -17,7 +17,7 @@ use selectors::parser::SelectorParseError;
|
|||
use shared_lock::{DeepCloneWithLock, SharedRwLock, SharedRwLockReadGuard, Locked, ToCssWithGuard};
|
||||
use std::borrow::Cow;
|
||||
use std::fmt;
|
||||
use style_traits::{ToCss, ParseError, StyleParseError};
|
||||
use style_traits::{PARSING_MODE_DEFAULT, ToCss, ParseError, StyleParseError};
|
||||
use stylearc::Arc;
|
||||
use stylesheets::{CssRuleType, Stylesheet};
|
||||
use stylesheets::rule_parser::VendorPrefix;
|
||||
|
|
|
@ -24,9 +24,10 @@ pub mod viewport_rule;
|
|||
|
||||
use cssparser::{parse_one_rule, Parser, ParserInput};
|
||||
use error_reporting::NullReporter;
|
||||
use parser::{ParserContext, PARSING_MODE_DEFAULT};
|
||||
use parser::ParserContext;
|
||||
use shared_lock::{DeepCloneWithLock, Locked, SharedRwLock, SharedRwLockReadGuard, ToCssWithGuard};
|
||||
use std::fmt;
|
||||
use style_traits::PARSING_MODE_DEFAULT;
|
||||
use stylearc::Arc;
|
||||
|
||||
pub use self::counter_style_rule::CounterStyleRule;
|
||||
|
|
|
@ -9,10 +9,11 @@ use error_reporting::{ParseErrorReporter, ContextualParseError};
|
|||
use fnv::FnvHashMap;
|
||||
use media_queries::{MediaList, Device};
|
||||
use parking_lot::RwLock;
|
||||
use parser::{PARSING_MODE_DEFAULT, ParserContext, log_css_error};
|
||||
use parser::{ParserContext, log_css_error};
|
||||
use shared_lock::{DeepCloneWithLock, Locked, SharedRwLock, SharedRwLockReadGuard};
|
||||
use std::mem;
|
||||
use std::sync::atomic::{AtomicBool, Ordering};
|
||||
use style_traits::PARSING_MODE_DEFAULT;
|
||||
use stylearc::Arc;
|
||||
use stylesheets::{CssRule, CssRules, Origin, UrlExtraData};
|
||||
use stylesheets::loader::StylesheetLoader;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue