Remove unused code for parsing a sizes attribute.

We have `SourceSizeList` in
components/style/values/specified/source_size_list.rs which does the job and is
tested via WPT in Gecko.
This commit is contained in:
Emilio Cobos Álvarez 2018-07-01 10:41:19 +02:00
parent 8e5c853fca
commit 36495d677f
No known key found for this signature in database
GPG key ID: 056B727BB9C1027C
6 changed files with 0 additions and 174 deletions

1
Cargo.lock generated
View file

@ -2590,7 +2590,6 @@ dependencies = [
"msg 0.0.1",
"script 0.0.1",
"servo_url 0.0.1",
"style 0.0.1",
]
[[package]]

View file

@ -3,7 +3,6 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
use app_units::{Au, AU_PER_PX};
use cssparser::{Parser, ParserInput};
use document_loader::{LoadType, LoadBlocker};
use dom::activation::Activatable;
use dom::attr::Attr;
@ -58,13 +57,7 @@ use std::default::Default;
use std::i32;
use std::sync::{Arc, Mutex};
use style::attr::{AttrValue, LengthOrPercentageOrAuto, parse_double, parse_unsigned_integer};
use style::context::QuirksMode;
use style::media_queries::MediaQuery;
use style::parser::ParserContext;
use style::str::is_ascii_digit;
use style::values::specified::{Length, ViewportPercentageLength};
use style::values::specified::length::NoCalcLength;
use style_traits::ParsingMode;
use task_source::TaskSource;
enum ParseState {
@ -94,12 +87,6 @@ enum State {
Broken,
}
#[derive(Debug, PartialEq)]
pub struct Size {
pub query: Option<MediaQuery>,
pub length: Length,
}
#[derive(Clone, Copy, JSTraceable, MallocSizeOf)]
enum ImageRequestPhase {
Pending,
@ -758,63 +745,6 @@ impl LayoutHTMLImageElementHelpers for LayoutDom<HTMLImageElement> {
}
}
//https://html.spec.whatwg.org/multipage/#parse-a-sizes-attribute
pub fn parse_a_sizes_attribute(input: DOMString, width: Option<u32>) -> Vec<Size> {
let mut sizes = Vec::<Size>::new();
for unparsed_size in input.split(',') {
let whitespace = unparsed_size.chars().rev().take_while(|c| char::is_whitespace(*c)).count();
let trimmed: String = unparsed_size.chars().take(unparsed_size.chars().count() - whitespace).collect();
if trimmed.is_empty() {
continue;
}
let mut input = ParserInput::new(&trimmed);
let url = ServoUrl::parse("about:blank").unwrap();
let context = ParserContext::new_for_cssom(
&url,
None,
ParsingMode::empty(),
QuirksMode::NoQuirks,
None,
);
let mut parser = Parser::new(&mut input);
let length = parser.try(|i| Length::parse_non_negative(&context, i));
match length {
Ok(len) => sizes.push(Size {
length: len,
query: None
}),
Err(_) => {
let mut media_query_parser = parser;
let media_query = media_query_parser.try(|i| MediaQuery::parse(&context, i));
if let Ok(query) = media_query {
let length = Length::parse_non_negative(&context, &mut media_query_parser);
if let Ok(length) = length {
sizes.push(Size {
length: length,
query: Some(query)
})
}
}
},
}
}
if sizes.is_empty() {
let size = match width {
Some(w) => Size {
length: Length::from_px(w as f32),
query: None
},
None => Size {
length: Length::NoCalc(NoCalcLength::ViewportPercentage(ViewportPercentageLength::Vw(100.))),
query: None
},
};
sizes.push(size);
}
sizes
}
impl HTMLImageElementMethods for HTMLImageElement {
// https://html.spec.whatwg.org/multipage/#dom-img-alt
make_getter!(Alt, "alt");

View file

@ -15,10 +15,6 @@ pub mod area {
pub use dom::htmlareaelement::{Area, Shape};
}
pub mod sizes {
pub use dom::htmlimageelement::{parse_a_sizes_attribute, Size};
}
pub mod size_of {
use dom::characterdata::CharacterData;
use dom::element::Element;

View file

@ -13,4 +13,3 @@ euclid = "0.17"
msg = {path = "../../../components/msg"}
script = {path = "../../../components/script"}
servo_url = {path = "../../../components/url"}
style = {path = "../../../components/style"}

View file

@ -2,104 +2,7 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
use script::test::DOMString;
use script::test::sizes::{parse_a_sizes_attribute, Size};
use script::test::srcset::{Descriptor, ImageSource, parse_a_srcset_attribute};
use style::media_queries::{MediaQuery, MediaQueryType};
use style::media_queries::Expression;
use style::servo::media_queries::{ExpressionKind, Range};
use style::values::specified::{Length, NoCalcLength, AbsoluteLength, ViewportPercentageLength};
pub fn test_length_for_no_default_provided(len: f32) -> Length {
let length = Length::NoCalc(NoCalcLength::ViewportPercentage(ViewportPercentageLength::Vw(len)));
return length;
}
#[test]
fn no_default_provided() {
let mut a = vec![];
let length = test_length_for_no_default_provided(100f32);
let size = Size { query: None, length: length };
a.push(size);
assert_eq!(parse_a_sizes_attribute(DOMString::new(), None), a);
}
pub fn test_length_for_default_provided(len: f32) -> Length {
let length = Length::NoCalc(NoCalcLength::Absolute(AbsoluteLength::Px(len)));
return length;
}
#[test]
fn default_provided() {
let mut a = vec![];
let length = test_length_for_default_provided(2f32);
let size = Size { query: None, length: length };
a.push(size);
assert_eq!(parse_a_sizes_attribute(DOMString::new(), Some(2)), a);
}
pub fn test_media_query(len: f32) -> MediaQuery {
let length = Length::NoCalc(NoCalcLength::Absolute(AbsoluteLength::Px(len)));
let expr = Expression(ExpressionKind::Width(Range::Max(length)));
let media_query = MediaQuery {
qualifier: None,
media_type: MediaQueryType::All,
expressions: vec![expr]
};
media_query
}
pub fn test_length(len: f32) -> Length {
let length = Length::NoCalc(NoCalcLength::Absolute(AbsoluteLength::Px(len)));
return length;
}
#[test]
fn one_value() {
let mut a = vec![];
let media_query = test_media_query(200f32);
let length = test_length(545f32);
let size = Size { query: Some(media_query), length: length };
a.push(size);
assert_eq!(parse_a_sizes_attribute(DOMString::from("(max-width: 200px) 545px"), None), a);
}
#[test]
fn more_then_one_value() {
let media_query = test_media_query(900f32);
let length = test_length(1000f32);
let size = Size { query: Some(media_query), length: length };
let media_query1 = test_media_query(900f32);
let length1 = test_length(50f32);
let size1 = Size { query: Some(media_query1), length: length1 };
let a = &[size, size1];
assert_eq!(parse_a_sizes_attribute(DOMString::from("(max-width: 900px) 1000px, (max-width: 900px) 50px"),
None), a);
}
#[test]
fn no_extra_whitespace() {
let mut a = vec![];
let media_query = test_media_query(200f32);
let length = test_length(545f32);
let size = Size { query: Some(media_query), length: length };
a.push(size);
assert_eq!(parse_a_sizes_attribute(DOMString::from("(max-width: 200px) 545px"), None), a);
}
#[test]
fn extra_whitespace() {
let media_query = test_media_query(900f32);
let length = test_length(1000f32);
let size = Size { query: Some(media_query), length: length };
let media_query1 = test_media_query(900f32);
let length1 = test_length(50f32);
let size1 = Size { query: Some(media_query1), length: length1 };
let a = &[size, size1];
assert_eq!(parse_a_sizes_attribute(
DOMString::from("(max-width: 900px) 1000px, (max-width: 900px) 50px"),
None), a);
}
#[test]
fn no_value() {

View file

@ -6,7 +6,6 @@
#[cfg(test)] extern crate msg;
#[cfg(test)] extern crate script;
#[cfg(test)] extern crate servo_url;
#[cfg(test)] extern crate style;
#[cfg(test)] mod origin;
#[cfg(all(test, target_pointer_width = "64"))] mod size_of;