зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1370779 followup 2 - Downgrade cssparser to 0.19.2.
MozReview-Commit-ID: 3lf30ZvMvWm
This commit is contained in:
Родитель
759a4f76a0
Коммит
77c491fafa
|
@ -1 +1 @@
|
|||
{"files":{".cargo-ok":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",".travis.yml":"f1fb4b65964c81bc1240544267ea334f554ca38ae7a74d57066f4d47d2b5d568","Cargo.toml":"b525dcc16da6c23dc7e5a69eea402eb202635b530470f4090b82df71af738ba9","LICENSE":"fab3dd6bdab226f1c08630b1dd917e11fcb4ec5e1e020e2c16f83a0a13863e85","README.md":"c5781e673335f37ed3d7acb119f8ed33efdf6eb75a7094b7da2abe0c3230adb8","build.rs":"950bcc47a196f07f99f59637c28cc65e02a885130011f90a2b2608248b4724a2","build/match_byte.rs":"89e8b941af74df2c204abf808672d3ff278bdec75abc918c41a843260b924677","docs/.nojekyll":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","docs/404.html":"025861f76f8d1f6d67c20ab624c6e418f4f824385e2dd8ad8732c4ea563c6a2e","docs/index.html":"025861f76f8d1f6d67c20ab624c6e418f4f824385e2dd8ad8732c4ea563c6a2e","src/color.rs":"b847b80097015cb7d0f4be67c0d8b2f6b82006be865917ff14a96b484760d460","src/cow_rc_str.rs":"541216f8ef74ee3cc5cbbc1347e5f32ed66588c401851c9a7d68b867aede1de0","src/from_bytes.rs":"331fe63af2123ae3675b61928a69461b5ac77799fff3ce9978c55cf2c558f4ff","src/lib.rs":"56d7bb15699a938c827ec57464525f0a58f0529920433db6c652142e97fd67e4","src/macros.rs":"adb9773c157890381556ea83d7942dcc676f99eea71abbb6afeffee1e3f28960","src/nth.rs":"246fa83a3ab97a7bb617c97a976af77136652ce77ba8ccca22e144b213b61310","src/parser.rs":"a7a200d11ed3acebc87fa862a7b55b5e4769d63607e4443fddc0c41f1c8caba1","src/rules_and_declarations.rs":"44e47663aaa8a5ff167393b91337e377e5a4fcbef64b227028780b6d22879f69","src/serializer.rs":"843c9d01de00523851a4c40f791c64e3b00325426cb38f897e4a2ddb4cfa6de8","src/size_of_tests.rs":"a28664d44797519119d659eaf7e84e1789ef97e9e2c2d36630eb9f226c0cc0a6","src/tests.rs":"fb3dda2a53109642a9bdc407499e151c1275c440e15e31c0eb9a300acfac7444","src/tokenizer.rs":"63640e6a2d875e8afda9dea6034b8c57db9b5877c3c491a97fee1c6ec223b75d","src/unicode_range.rs":"fbbd0f4b393944699730a6b0f945b2b2376fcea61fce2ea37190fb287793021a"},"package":"6b32e2d9f37c01c985ffdcf891ef4b7cd226494144545fc8e312ff01523f7ec0"}
|
||||
{"files":{".cargo-ok":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",".travis.yml":"f1fb4b65964c81bc1240544267ea334f554ca38ae7a74d57066f4d47d2b5d568","Cargo.toml":"c4f2dc684880666eaf58ade1209dc52e94a19b85b3b7ceeb1908642400c633f4","LICENSE":"fab3dd6bdab226f1c08630b1dd917e11fcb4ec5e1e020e2c16f83a0a13863e85","README.md":"c5781e673335f37ed3d7acb119f8ed33efdf6eb75a7094b7da2abe0c3230adb8","build.rs":"950bcc47a196f07f99f59637c28cc65e02a885130011f90a2b2608248b4724a2","build/match_byte.rs":"89e8b941af74df2c204abf808672d3ff278bdec75abc918c41a843260b924677","docs/.nojekyll":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","docs/404.html":"025861f76f8d1f6d67c20ab624c6e418f4f824385e2dd8ad8732c4ea563c6a2e","docs/index.html":"025861f76f8d1f6d67c20ab624c6e418f4f824385e2dd8ad8732c4ea563c6a2e","src/color.rs":"b847b80097015cb7d0f4be67c0d8b2f6b82006be865917ff14a96b484760d460","src/cow_rc_str.rs":"541216f8ef74ee3cc5cbbc1347e5f32ed66588c401851c9a7d68b867aede1de0","src/from_bytes.rs":"331fe63af2123ae3675b61928a69461b5ac77799fff3ce9978c55cf2c558f4ff","src/lib.rs":"56d7bb15699a938c827ec57464525f0a58f0529920433db6c652142e97fd67e4","src/macros.rs":"adb9773c157890381556ea83d7942dcc676f99eea71abbb6afeffee1e3f28960","src/nth.rs":"246fa83a3ab97a7bb617c97a976af77136652ce77ba8ccca22e144b213b61310","src/parser.rs":"7a35d02bf0158a4725527e32295ce734d317e226569234d346952e27048f6ee2","src/rules_and_declarations.rs":"f2cde5c4518a2349d24049f6195e31783a8af2815d84394d21f90c763fc257a1","src/serializer.rs":"843c9d01de00523851a4c40f791c64e3b00325426cb38f897e4a2ddb4cfa6de8","src/size_of_tests.rs":"a28664d44797519119d659eaf7e84e1789ef97e9e2c2d36630eb9f226c0cc0a6","src/tests.rs":"120298ba20126c90ec6c8b1eb837b3c3a567fc6f9701552486191cc61d8459a6","src/tokenizer.rs":"914326e19bf2d97122b41e9930e16a70825aa5c4096bdb39c66d18388f4cdbda","src/unicode_range.rs":"fbbd0f4b393944699730a6b0f945b2b2376fcea61fce2ea37190fb287793021a"},"package":"1f9442c00898020a56c9485d64c9c8f14ae30ba45be89d15846046593383467f"}
|
|
@ -12,7 +12,7 @@
|
|||
|
||||
[package]
|
||||
name = "cssparser"
|
||||
version = "0.19.4"
|
||||
version = "0.19.2"
|
||||
authors = ["Simon Sapin <simon.sapin@exyr.org>"]
|
||||
build = "build.rs"
|
||||
exclude = ["src/css-parsing-tests/**", "src/big-data-url.css"]
|
||||
|
@ -22,12 +22,6 @@ readme = "README.md"
|
|||
keywords = ["css", "syntax", "parser"]
|
||||
license = "MPL-2.0"
|
||||
repository = "https://github.com/servo/rust-cssparser"
|
||||
[dependencies.phf]
|
||||
version = "0.7"
|
||||
|
||||
[dependencies.matches]
|
||||
version = "0.1"
|
||||
|
||||
[dependencies.serde]
|
||||
version = "1.0"
|
||||
optional = true
|
||||
|
@ -44,20 +38,26 @@ optional = true
|
|||
|
||||
[dependencies.cssparser-macros]
|
||||
version = "0.3"
|
||||
[dev-dependencies.encoding_rs]
|
||||
version = "0.5"
|
||||
|
||||
[dependencies.phf]
|
||||
version = "0.7"
|
||||
|
||||
[dependencies.matches]
|
||||
version = "0.1"
|
||||
[dev-dependencies.difference]
|
||||
version = "1.0"
|
||||
|
||||
[dev-dependencies.rustc-serialize]
|
||||
version = "0.3"
|
||||
|
||||
[dev-dependencies.difference]
|
||||
version = "1.0"
|
||||
[build-dependencies.quote]
|
||||
version = "0.3"
|
||||
|
||||
[dev-dependencies.encoding_rs]
|
||||
version = "0.5"
|
||||
[build-dependencies.syn]
|
||||
version = "0.11"
|
||||
|
||||
[build-dependencies.quote]
|
||||
version = "0.3"
|
||||
|
||||
[features]
|
||||
bench = []
|
||||
dummy_match_byte = []
|
||||
bench = []
|
||||
|
|
|
@ -288,32 +288,6 @@ impl<'i: 't, 't> Parser<'i, 't> {
|
|||
}
|
||||
}
|
||||
|
||||
/// Advance the input until the next token that’s not whitespace or a comment.
|
||||
#[inline]
|
||||
pub fn skip_whitespace(&mut self) {
|
||||
// If we just consumed `{`, `[`, `(`, or `function(`, leave whitespace
|
||||
// or comments inside the block or function up to the nested parser.
|
||||
if self.at_start_of.is_some() {
|
||||
return
|
||||
}
|
||||
|
||||
self.input.tokenizer.skip_whitespace()
|
||||
}
|
||||
|
||||
#[inline]
|
||||
pub(crate) fn skip_cdc_and_cdo(&mut self) {
|
||||
self.input.tokenizer.skip_cdc_and_cdo()
|
||||
}
|
||||
|
||||
#[inline]
|
||||
pub(crate) fn next_byte(&self) -> Option<u8> {
|
||||
let byte = self.input.tokenizer.next_byte();
|
||||
if self.stop_before.contains(Delimiters::from_byte(byte)) {
|
||||
return None
|
||||
}
|
||||
byte
|
||||
}
|
||||
|
||||
/// Restore the internal state of the parser (including position within the input)
|
||||
/// to what was previously saved by the `Parser::position` method.
|
||||
///
|
||||
|
@ -390,8 +364,14 @@ impl<'i: 't, 't> Parser<'i, 't> {
|
|||
///
|
||||
/// This only returns a closing token when it is unmatched (and therefore an error).
|
||||
pub fn next(&mut self) -> Result<&Token<'i>, BasicParseError<'i>> {
|
||||
self.skip_whitespace();
|
||||
self.next_including_whitespace_and_comments()
|
||||
loop {
|
||||
match self.next_including_whitespace_and_comments() {
|
||||
Err(e) => return Err(e),
|
||||
Ok(&Token::WhiteSpace(_)) | Ok(&Token::Comment(_)) => {},
|
||||
_ => break
|
||||
}
|
||||
}
|
||||
Ok(self.input.cached_token_ref())
|
||||
}
|
||||
|
||||
/// Same as `Parser::next`, but does not skip whitespace tokens.
|
||||
|
@ -479,7 +459,6 @@ impl<'i: 't, 't> Parser<'i, 't> {
|
|||
where F: for<'tt> FnMut(&mut Parser<'i, 'tt>) -> Result<T, ParseError<'i, E>> {
|
||||
let mut values = vec![];
|
||||
loop {
|
||||
self.skip_whitespace(); // Unnecessary for correctness, but may help try() in parse_one rewind less.
|
||||
values.push(self.parse_until_before(Delimiter::Comma, &mut parse_one)?);
|
||||
match self.next() {
|
||||
Err(_) => return Ok(values),
|
||||
|
|
|
@ -342,29 +342,15 @@ where P: QualifiedRuleParser<'i, QualifiedRule = R, Error = E> +
|
|||
|
||||
fn next(&mut self) -> Option<Result<R, PreciseParseError<'i, E>>> {
|
||||
loop {
|
||||
if self.is_stylesheet {
|
||||
self.input.skip_cdc_and_cdo()
|
||||
} else {
|
||||
self.input.skip_whitespace()
|
||||
}
|
||||
let start = self.input.state();
|
||||
|
||||
let at_keyword;
|
||||
match self.input.next_byte() {
|
||||
Some(b'@') => {
|
||||
match self.input.next_including_whitespace_and_comments() {
|
||||
Ok(&Token::AtKeyword(ref name)) => at_keyword = Some(name.clone()),
|
||||
_ => at_keyword = None,
|
||||
}
|
||||
// FIXME: move this back inside `match` when lifetimes are non-lexical
|
||||
if at_keyword.is_none() {
|
||||
self.input.reset(&start)
|
||||
}
|
||||
}
|
||||
Some(_) => at_keyword = None,
|
||||
None => return None
|
||||
}
|
||||
|
||||
// FIXME: remove intermediate variable when lifetimes are non-lexical
|
||||
let at_keyword = match self.input.next_including_whitespace_and_comments() {
|
||||
Ok(&Token::WhiteSpace(_)) | Ok(&Token::Comment(_)) => continue,
|
||||
Ok(&Token::CDO) | Ok(&Token::CDC) if self.is_stylesheet => continue,
|
||||
Ok(&Token::AtKeyword(ref name)) => Some(name.clone()),
|
||||
Ok(_) => None,
|
||||
Err(_) => return None,
|
||||
};
|
||||
if let Some(name) = at_keyword {
|
||||
let first_stylesheet_rule = self.is_stylesheet && !self.any_rule_so_far;
|
||||
self.any_rule_so_far = true;
|
||||
|
@ -376,6 +362,7 @@ where P: QualifiedRuleParser<'i, QualifiedRule = R, Error = E> +
|
|||
}
|
||||
} else {
|
||||
self.any_rule_so_far = true;
|
||||
self.input.reset(&start);
|
||||
return Some(parse_qualified_rule(self.input, &mut self.parser)
|
||||
.map_err(|e| PreciseParseError {
|
||||
error: e,
|
||||
|
@ -413,27 +400,20 @@ pub fn parse_one_rule<'i, 't, R, P, E>(input: &mut Parser<'i, 't>, parser: &mut
|
|||
where P: QualifiedRuleParser<'i, QualifiedRule = R, Error = E> +
|
||||
AtRuleParser<'i, AtRule = R, Error = E> {
|
||||
input.parse_entirely(|input| {
|
||||
input.skip_whitespace();
|
||||
let start = input.state();
|
||||
|
||||
let at_keyword;
|
||||
if input.next_byte() == Some(b'@') {
|
||||
match *input.next_including_whitespace_and_comments()? {
|
||||
Token::AtKeyword(ref name) => at_keyword = Some(name.clone()),
|
||||
_ => at_keyword = None,
|
||||
loop {
|
||||
let start = input.state();
|
||||
// FIXME: remove intermediate variable when lifetimes are non-lexical
|
||||
let at_keyword = match *input.next_including_whitespace_and_comments()? {
|
||||
Token::WhiteSpace(_) | Token::Comment(_) => continue,
|
||||
Token::AtKeyword(ref name) => Some(name.clone()),
|
||||
_ => None
|
||||
};
|
||||
if let Some(name) = at_keyword {
|
||||
return parse_at_rule(&start, name, input, parser).map_err(|e| e.error)
|
||||
} else {
|
||||
input.reset(&start);
|
||||
return parse_qualified_rule(input, parser)
|
||||
}
|
||||
// FIXME: move this back inside `match` when lifetimes are non-lexical
|
||||
if at_keyword.is_none() {
|
||||
input.reset(&start)
|
||||
}
|
||||
} else {
|
||||
at_keyword = None
|
||||
}
|
||||
|
||||
if let Some(name) = at_keyword {
|
||||
parse_at_rule(&start, name, input, parser).map_err(|e| e.error)
|
||||
} else {
|
||||
parse_qualified_rule(input, parser)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
|
|
@ -970,15 +970,6 @@ fn parser_maintains_current_line() {
|
|||
assert_eq!(parser.current_line(), "ident");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn cdc_regression_test() {
|
||||
let mut input = ParserInput::new("-->x");
|
||||
let mut parser = Parser::new(&mut input);
|
||||
parser.skip_cdc_and_cdo();
|
||||
assert_eq!(parser.next(), Ok(&Token::Ident("x".into())));
|
||||
assert_eq!(parser.next(), Err(BasicParseError::EndOfInput));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn parse_entirely_reports_first_error() {
|
||||
#[derive(PartialEq, Debug)]
|
||||
|
|
|
@ -411,76 +411,6 @@ impl<'a> Tokenizer<'a> {
|
|||
fn starts_with(&self, needle: &[u8]) -> bool {
|
||||
self.input.as_bytes()[self.position..].starts_with(needle)
|
||||
}
|
||||
|
||||
pub fn skip_whitespace(&mut self) {
|
||||
while !self.is_eof() {
|
||||
match_byte! { self.next_byte_unchecked(),
|
||||
b' ' | b'\t' => {
|
||||
self.advance(1)
|
||||
},
|
||||
b'\n' | b'\x0C' => {
|
||||
self.advance(1);
|
||||
self.seen_newline(false);
|
||||
},
|
||||
b'\r' => {
|
||||
self.advance(1);
|
||||
self.seen_newline(true);
|
||||
},
|
||||
b'/' => {
|
||||
if self.starts_with(b"/*") {
|
||||
consume_comment(self);
|
||||
} else {
|
||||
return
|
||||
}
|
||||
}
|
||||
_ => {
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pub fn skip_cdc_and_cdo(&mut self) {
|
||||
while !self.is_eof() {
|
||||
match_byte! { self.next_byte_unchecked(),
|
||||
b' ' | b'\t' => {
|
||||
self.advance(1)
|
||||
},
|
||||
b'\n' | b'\x0C' => {
|
||||
self.advance(1);
|
||||
self.seen_newline(false);
|
||||
},
|
||||
b'\r' => {
|
||||
self.advance(1);
|
||||
self.seen_newline(true);
|
||||
},
|
||||
b'/' => {
|
||||
if self.starts_with(b"/*") {
|
||||
consume_comment(self);
|
||||
} else {
|
||||
return
|
||||
}
|
||||
}
|
||||
b'<' => {
|
||||
if self.starts_with(b"<!--") {
|
||||
self.advance(4)
|
||||
} else {
|
||||
return
|
||||
}
|
||||
}
|
||||
b'-' => {
|
||||
if self.starts_with(b"-->") {
|
||||
self.advance(3)
|
||||
} else {
|
||||
return
|
||||
}
|
||||
}
|
||||
_ => {
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// A position from the start of the input, counted in UTF-8 bytes.
|
||||
|
@ -584,7 +514,9 @@ fn next_token<'a>(tokenizer: &mut Tokenizer<'a>) -> Result<Token<'a>, ()> {
|
|||
}
|
||||
b'/' => {
|
||||
if tokenizer.starts_with(b"/*") {
|
||||
Comment(consume_comment(tokenizer))
|
||||
let contents = consume_comment(tokenizer);
|
||||
check_for_source_map(tokenizer, contents);
|
||||
Comment(contents)
|
||||
} else {
|
||||
tokenizer.advance(1);
|
||||
Delim('/')
|
||||
|
@ -695,9 +627,7 @@ fn consume_comment<'a>(tokenizer: &mut Tokenizer<'a>) -> &'a str {
|
|||
tokenizer.advance(1);
|
||||
if tokenizer.next_byte() == Some(b'/') {
|
||||
tokenizer.advance(1);
|
||||
let contents = tokenizer.slice(start_position..end_position);
|
||||
check_for_source_map(tokenizer, contents);
|
||||
return contents
|
||||
return tokenizer.slice(start_position..end_position)
|
||||
}
|
||||
}
|
||||
b'\n' | b'\x0C' => {
|
||||
|
@ -713,9 +643,7 @@ fn consume_comment<'a>(tokenizer: &mut Tokenizer<'a>) -> &'a str {
|
|||
}
|
||||
}
|
||||
}
|
||||
let contents = tokenizer.slice_from(start_position);
|
||||
check_for_source_map(tokenizer, contents);
|
||||
contents
|
||||
tokenizer.slice_from(start_position)
|
||||
}
|
||||
|
||||
fn consume_string<'a>(tokenizer: &mut Tokenizer<'a>, single_quote: bool) -> Token<'a> {
|
||||
|
|
|
@ -232,7 +232,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "cssparser"
|
||||
version = "0.19.4"
|
||||
version = "0.19.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"cssparser-macros 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
|
@ -398,7 +398,7 @@ name = "geckoservo"
|
|||
version = "0.0.1"
|
||||
dependencies = [
|
||||
"atomic_refcell 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"cssparser 0.19.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"cssparser 0.19.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"env_logger 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"libc 0.2.24 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
|
@ -857,7 +857,7 @@ name = "selectors"
|
|||
version = "0.19.0"
|
||||
dependencies = [
|
||||
"bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"cssparser 0.19.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"cssparser 0.19.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"fnv 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"matches 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
|
@ -959,7 +959,7 @@ dependencies = [
|
|||
"bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"byteorder 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"cfg-if 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"cssparser 0.19.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"cssparser 0.19.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"euclid 0.15.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"fnv 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"itertools 0.5.10 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
|
@ -1006,7 +1006,7 @@ version = "0.0.1"
|
|||
dependencies = [
|
||||
"app_units 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"cssparser 0.19.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"cssparser 0.19.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"euclid 0.15.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"selectors 0.19.0",
|
||||
]
|
||||
|
@ -1312,7 +1312,7 @@ dependencies = [
|
|||
"checksum core-foundation-sys 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "41115a6aa5d3e1e5ef98148373f25971d1fad53818553f216495f9e67e90a624"
|
||||
"checksum core-graphics 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a9f841e9637adec70838c537cae52cb4c751cc6514ad05669b51d107c2021c79"
|
||||
"checksum core-text 6.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "16ce16d9ed00181016c11ff48e561314bec92bfbce9fe48f319366618d4e5de6"
|
||||
"checksum cssparser 0.19.4 (registry+https://github.com/rust-lang/crates.io-index)" = "6b32e2d9f37c01c985ffdcf891ef4b7cd226494144545fc8e312ff01523f7ec0"
|
||||
"checksum cssparser 0.19.2 (registry+https://github.com/rust-lang/crates.io-index)" = "1f9442c00898020a56c9485d64c9c8f14ae30ba45be89d15846046593383467f"
|
||||
"checksum cssparser-macros 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "079adec4af52bb5275eadd004292028c79eb3c5f5b4ee8086a36d4197032f6df"
|
||||
"checksum dtoa 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "09c3753c3db574d215cba4ea76018483895d7bff25a31b49ba45db21c48e50ab"
|
||||
"checksum dtoa-short 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fe6f727b406462fd57c95fed84d1b0dbfb5f0136fcac005adba9ea0367c05cc8"
|
||||
|
|
|
@ -230,7 +230,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "cssparser"
|
||||
version = "0.19.4"
|
||||
version = "0.19.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"cssparser-macros 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
|
@ -396,7 +396,7 @@ name = "geckoservo"
|
|||
version = "0.0.1"
|
||||
dependencies = [
|
||||
"atomic_refcell 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"cssparser 0.19.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"cssparser 0.19.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"env_logger 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"libc 0.2.24 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
|
@ -844,7 +844,7 @@ name = "selectors"
|
|||
version = "0.19.0"
|
||||
dependencies = [
|
||||
"bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"cssparser 0.19.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"cssparser 0.19.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"fnv 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"matches 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
|
@ -946,7 +946,7 @@ dependencies = [
|
|||
"bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"byteorder 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"cfg-if 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"cssparser 0.19.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"cssparser 0.19.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"euclid 0.15.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"fnv 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"itertools 0.5.10 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
|
@ -993,7 +993,7 @@ version = "0.0.1"
|
|||
dependencies = [
|
||||
"app_units 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"cssparser 0.19.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"cssparser 0.19.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"euclid 0.15.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"selectors 0.19.0",
|
||||
]
|
||||
|
@ -1299,7 +1299,7 @@ dependencies = [
|
|||
"checksum core-foundation-sys 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "41115a6aa5d3e1e5ef98148373f25971d1fad53818553f216495f9e67e90a624"
|
||||
"checksum core-graphics 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a9f841e9637adec70838c537cae52cb4c751cc6514ad05669b51d107c2021c79"
|
||||
"checksum core-text 6.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "16ce16d9ed00181016c11ff48e561314bec92bfbce9fe48f319366618d4e5de6"
|
||||
"checksum cssparser 0.19.4 (registry+https://github.com/rust-lang/crates.io-index)" = "6b32e2d9f37c01c985ffdcf891ef4b7cd226494144545fc8e312ff01523f7ec0"
|
||||
"checksum cssparser 0.19.2 (registry+https://github.com/rust-lang/crates.io-index)" = "1f9442c00898020a56c9485d64c9c8f14ae30ba45be89d15846046593383467f"
|
||||
"checksum cssparser-macros 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "079adec4af52bb5275eadd004292028c79eb3c5f5b4ee8086a36d4197032f6df"
|
||||
"checksum dtoa 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "09c3753c3db574d215cba4ea76018483895d7bff25a31b49ba45db21c48e50ab"
|
||||
"checksum dtoa-short 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fe6f727b406462fd57c95fed84d1b0dbfb5f0136fcac005adba9ea0367c05cc8"
|
||||
|
|
Загрузка…
Ссылка в новой задаче