mirror of
https://github.com/servo/servo.git
synced 2025-08-03 04:30:10 +01:00
Introduce ComputedUrl
Add web platform tests for computed URL styles Mark url with no original or resolved unreachable Update the WPT manifest for new url tests
This commit is contained in:
parent
f6aa17add9
commit
14c5a1b8d3
17 changed files with 197 additions and 46 deletions
|
@ -26,10 +26,10 @@ use values::specified::position::{HorizontalPosition, Position, PositionComponen
|
|||
use values::specified::url::SpecifiedUrl;
|
||||
|
||||
/// A specified clipping shape.
|
||||
pub type ClippingShape = GenericClippingShape<BasicShape>;
|
||||
pub type ClippingShape = GenericClippingShape<BasicShape, SpecifiedUrl>;
|
||||
|
||||
/// A specified float area shape.
|
||||
pub type FloatAreaShape = GenericFloatAreaShape<BasicShape>;
|
||||
pub type FloatAreaShape = GenericFloatAreaShape<BasicShape, SpecifiedUrl>;
|
||||
|
||||
/// A specified basic shape.
|
||||
pub type BasicShape = GenericBasicShape<HorizontalPosition, VerticalPosition, LengthOrPercentage>;
|
||||
|
@ -49,7 +49,7 @@ pub type ShapeRadius = GenericShapeRadius<LengthOrPercentage>;
|
|||
/// The specified value of `Polygon`
|
||||
pub type Polygon = GenericPolygon<LengthOrPercentage>;
|
||||
|
||||
impl<ReferenceBox: Parse> Parse for ShapeSource<BasicShape, ReferenceBox> {
|
||||
impl<ReferenceBox: Parse> Parse for ShapeSource<BasicShape, ReferenceBox, SpecifiedUrl> {
|
||||
fn parse<'i, 't>(context: &ParserContext, input: &mut Parser<'i, 't>) -> Result<Self, ParseError<'i>> {
|
||||
if input.try(|i| i.expect_ident_matching("none")).is_ok() {
|
||||
return Ok(ShapeSource::None)
|
||||
|
|
|
@ -38,7 +38,7 @@ pub type ImageLayer = Either<None_, Image>;
|
|||
|
||||
/// Specified values for an image according to CSS-IMAGES.
|
||||
/// https://drafts.csswg.org/css-images/#image-values
|
||||
pub type Image = GenericImage<Gradient, MozImageRect>;
|
||||
pub type Image = GenericImage<Gradient, MozImageRect, SpecifiedUrl>;
|
||||
|
||||
/// Specified values for a CSS gradient.
|
||||
/// https://drafts.csswg.org/css-images/#gradients
|
||||
|
@ -125,7 +125,7 @@ pub type ColorStop = GenericColorStop<RGBAColor, LengthOrPercentage>;
|
|||
|
||||
/// Specified values for `moz-image-rect`
|
||||
/// -moz-image-rect(<uri>, top, right, bottom, left);
|
||||
pub type MozImageRect = GenericMozImageRect<NumberOrPercentage>;
|
||||
pub type MozImageRect = GenericMozImageRect<NumberOrPercentage, SpecifiedUrl>;
|
||||
|
||||
impl Parse for Image {
|
||||
#[cfg_attr(not(feature = "gecko"), allow(unused_mut))]
|
||||
|
|
|
@ -76,6 +76,7 @@ pub mod url {
|
|||
use cssparser::Parser;
|
||||
use parser::{Parse, ParserContext};
|
||||
use style_traits::ParseError;
|
||||
#[cfg(feature = "gecko")]
|
||||
use values::computed::ComputedValueAsSpecified;
|
||||
|
||||
#[cfg(feature = "servo")]
|
||||
|
@ -92,7 +93,7 @@ impl Parse for SpecifiedUrl {
|
|||
|
||||
impl Eq for SpecifiedUrl {}
|
||||
|
||||
// TODO(emilio): Maybe consider ComputedUrl to save a word in style structs?
|
||||
#[cfg(feature = "gecko")]
|
||||
impl ComputedValueAsSpecified for SpecifiedUrl {}
|
||||
|
||||
no_viewport_percentage!(SpecifiedUrl);
|
||||
|
|
|
@ -8,16 +8,16 @@ use cssparser::Parser;
|
|||
use parser::{Parse, ParserContext};
|
||||
use style_traits::{CommaWithSpace, ParseError, Separator, StyleParseError};
|
||||
use values::generics::svg as generic;
|
||||
use values::specified::{LengthOrPercentageOrNumber, NonNegativeLengthOrPercentageOrNumber, Opacity};
|
||||
use values::specified::{LengthOrPercentageOrNumber, NonNegativeLengthOrPercentageOrNumber, Opacity, SpecifiedUrl};
|
||||
use values::specified::color::RGBAColor;
|
||||
|
||||
/// Specified SVG Paint value
|
||||
pub type SVGPaint = generic::SVGPaint<RGBAColor>;
|
||||
pub type SVGPaint = generic::SVGPaint<RGBAColor, SpecifiedUrl>;
|
||||
|
||||
no_viewport_percentage!(SVGPaint);
|
||||
|
||||
/// Specified SVG Paint Kind value
|
||||
pub type SVGPaintKind = generic::SVGPaintKind<RGBAColor>;
|
||||
pub type SVGPaintKind = generic::SVGPaintKind<RGBAColor, SpecifiedUrl>;
|
||||
|
||||
#[cfg(feature = "gecko")]
|
||||
fn is_context_value_enabled() -> bool {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue