aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--components/compositing/Cargo.toml2
-rw-r--r--components/compositing/constellation.rs2
-rw-r--r--components/layout/fragment.rs31
-rw-r--r--components/net/Cargo.toml1
-rw-r--r--components/net/fetch/methods.rs162
-rw-r--r--components/net/lib.rs3
-rw-r--r--components/net_traits/Cargo.toml2
-rw-r--r--components/net_traits/response.rs2
-rw-r--r--components/script/Cargo.toml2
-rw-r--r--components/script/dom/bindings/trace.rs3
-rw-r--r--components/script/dom/document.rs58
-rw-r--r--components/script/dom/htmlbaseelement.rs30
-rw-r--r--components/script/dom/htmltableelement.rs7
-rw-r--r--components/script/dom/htmltablerowelement.rs31
-rw-r--r--components/script/dom/webidls/HTMLBaseElement.webidl4
-rw-r--r--components/script/dom/webidls/HTMLTableRowElement.webidl2
-rw-r--r--components/script/lib.rs1
-rw-r--r--components/script/origin.rs73
-rw-r--r--components/servo/Cargo.lock182
-rw-r--r--components/servo/Cargo.toml2
-rw-r--r--components/style/properties.mako.rs139
-rw-r--r--components/webdriver_server/Cargo.toml2
-rw-r--r--ports/cef/Cargo.lock172
-rw-r--r--ports/geckolib/Cargo.lock16
-rw-r--r--ports/gonk/Cargo.lock168
-rw-r--r--python/tidy.py9
-rw-r--r--python/tidy_self_test/speclink.rs9
-rw-r--r--python/tidy_self_test/tidy_self_test.py5
-rw-r--r--tests/unit/net/fetch.rs78
-rw-r--r--tests/unit/script/Cargo.toml6
-rw-r--r--tests/unit/script/lib.rs5
-rw-r--r--tests/unit/script/origin.rs105
-rw-r--r--tests/wpt/metadata-css/css21_dev/html4/max-width-110.htm.ini3
-rw-r--r--tests/wpt/metadata/XMLHttpRequest/open-url-base-inserted.htm.ini5
-rw-r--r--tests/wpt/metadata/html/browsers/origin/relaxing-the-same-origin-restriction/document_domain.html.ini5
-rw-r--r--tests/wpt/metadata/html/dom/interfaces.html.ini16
-rw-r--r--tests/wpt/metadata/html/semantics/document-metadata/the-base-element/base_href_empty.html.ini8
-rw-r--r--tests/wpt/metadata/html/semantics/document-metadata/the-base-element/base_href_specified.sub.html.ini5
-rw-r--r--tests/wpt/metadata/html/semantics/document-metadata/the-base-element/base_href_unspecified.html.ini8
-rw-r--r--tests/wpt/metadata/html/semantics/tabular-data/the-tr-element/sectionRowIndex.html.ini59
-rw-r--r--tests/wpt/mozilla/meta/MANIFEST.json96
-rw-r--r--tests/wpt/mozilla/tests/css/250x250_green.pngbin0 -> 628 bytes
-rw-r--r--tests/wpt/mozilla/tests/css/max_inline_block_size.html21
-rw-r--r--tests/wpt/mozilla/tests/css/max_inline_block_size_canvas.html24
-rw-r--r--tests/wpt/mozilla/tests/css/max_inline_block_size_image.html18
-rw-r--r--tests/wpt/mozilla/tests/css/max_inline_block_size_ref.html20
46 files changed, 1138 insertions, 464 deletions
diff --git a/components/compositing/Cargo.toml b/components/compositing/Cargo.toml
index de33358873f..cec58afb9dd 100644
--- a/components/compositing/Cargo.toml
+++ b/components/compositing/Cargo.toml
@@ -89,7 +89,7 @@ git = "https://github.com/servo/webrender"
app_units = {version = "0.2.3", features = ["plugins"]}
euclid = {version = "0.6.4", features = ["plugins"]}
gleam = "0.2.8"
-image = "0.7"
+image = "0.9"
log = "0.3.5"
num = "0.1.24"
offscreen_gl_context = "0.1.2"
diff --git a/components/compositing/constellation.rs b/components/compositing/constellation.rs
index fbefabba03c..74b09dcb477 100644
--- a/components/compositing/constellation.rs
+++ b/components/compositing/constellation.rs
@@ -955,7 +955,7 @@ impl<LTF: LayoutThreadFactory, STF: ScriptThreadFactory> Constellation<LTF, STF>
// Compare the pipeline's url to the new url. If the origin is the same,
// then reuse the script thread in creating the new pipeline
- let source_url = source_pipeline.url.clone();
+ let source_url = &source_pipeline.url;
let same_script = source_url.host() == new_url.host() &&
source_url.port() == new_url.port() &&
diff --git a/components/layout/fragment.rs b/components/layout/fragment.rs
index 439e8a79f60..03638be5fab 100644
--- a/components/layout/fragment.rs
+++ b/components/layout/fragment.rs
@@ -1029,12 +1029,15 @@ impl Fragment {
fn style_specified_intrinsic_inline_size(&self) -> IntrinsicISizesContribution {
let flags = self.quantities_included_in_intrinsic_inline_size();
let style = self.style();
- let specified = if flags.contains(INTRINSIC_INLINE_SIZE_INCLUDES_SPECIFIED) {
- max(model::specified(style.min_inline_size(), Au(0)),
- MaybeAuto::from_style(style.content_inline_size(), Au(0)).specified_or_zero())
- } else {
- Au(0)
- };
+ let mut specified = Au(0);
+
+ if flags.contains(INTRINSIC_INLINE_SIZE_INCLUDES_SPECIFIED) {
+ specified = MaybeAuto::from_style(style.content_inline_size(), Au(0)).specified_or_zero();
+ specified = max(model::specified(style.min_inline_size(), Au(0)), specified);
+ if let Some(max) = model::specified_or_none(style.max_inline_size(), Au(0)) {
+ specified = min(specified, max)
+ }
+ }
// FIXME(#2261, pcwalton): This won't work well for inlines: is this OK?
let surrounding_inline_size = self.surrounding_intrinsic_inline_size();
@@ -1375,7 +1378,7 @@ impl Fragment {
result.union_block(&block_flow.base.intrinsic_inline_sizes)
}
SpecificFragmentInfo::Image(ref mut image_fragment_info) => {
- let image_inline_size = match self.style.content_inline_size() {
+ let mut image_inline_size = match self.style.content_inline_size() {
LengthOrPercentageOrAuto::Auto |
LengthOrPercentageOrAuto::Percentage(_) => {
image_fragment_info.image_inline_size()
@@ -1383,13 +1386,19 @@ impl Fragment {
LengthOrPercentageOrAuto::Length(length) => length,
LengthOrPercentageOrAuto::Calc(calc) => calc.length(),
};
+
+ image_inline_size = max(model::specified(self.style.min_inline_size(), Au(0)), image_inline_size);
+ if let Some(max) = model::specified_or_none(self.style.max_inline_size(), Au(0)) {
+ image_inline_size = min(image_inline_size, max)
+ }
+
result.union_block(&IntrinsicISizes {
minimum_inline_size: image_inline_size,
preferred_inline_size: image_inline_size,
});
}
SpecificFragmentInfo::Canvas(ref mut canvas_fragment_info) => {
- let canvas_inline_size = match self.style.content_inline_size() {
+ let mut canvas_inline_size = match self.style.content_inline_size() {
LengthOrPercentageOrAuto::Auto |
LengthOrPercentageOrAuto::Percentage(_) => {
canvas_fragment_info.canvas_inline_size()
@@ -1397,6 +1406,12 @@ impl Fragment {
LengthOrPercentageOrAuto::Length(length) => length,
LengthOrPercentageOrAuto::Calc(calc) => calc.length(),
};
+
+ canvas_inline_size = max(model::specified(self.style.min_inline_size(), Au(0)), canvas_inline_size);
+ if let Some(max) = model::specified_or_none(self.style.max_inline_size(), Au(0)) {
+ canvas_inline_size = min(canvas_inline_size, max)
+ }
+
result.union_block(&IntrinsicISizes {
minimum_inline_size: canvas_inline_size,
preferred_inline_size: canvas_inline_size,
diff --git a/components/net/Cargo.toml b/components/net/Cargo.toml
index 58a60da2bb1..955ceb24fcb 100644
--- a/components/net/Cargo.toml
+++ b/components/net/Cargo.toml
@@ -44,6 +44,7 @@ openssl = "0.7.6"
rustc-serialize = "0.3"
threadpool = "1.0"
time = "0.1.17"
+unicase = "1.4.0"
url = {version = "0.5.7", features = ["heap_size"]}
uuid = { version = "0.2", features = ["v4"] }
websocket = "0.16.1"
diff --git a/components/net/fetch/methods.rs b/components/net/fetch/methods.rs
index d99dc3f10e4..76140b1245f 100644
--- a/components/net/fetch/methods.rs
+++ b/components/net/fetch/methods.rs
@@ -5,12 +5,12 @@
use data_loader::decode;
use fetch::cors_cache::{BasicCORSCache, CORSCache, CacheRequestDetails};
use http_loader::{NetworkHttpRequestFactory, create_http_connector, obtain_response};
-use hyper::header::{Accept, CacheControl, IfMatch, IfRange, IfUnmodifiedSince, Location};
-use hyper::header::{AcceptLanguage, ContentLength, ContentLanguage, HeaderView, Pragma};
-use hyper::header::{AccessControlAllowCredentials, AccessControlAllowOrigin};
-use hyper::header::{Authorization, Basic, CacheDirective, ContentEncoding, Encoding};
-use hyper::header::{ContentType, Headers, IfModifiedSince, IfNoneMatch};
-use hyper::header::{QualityItem, q, qitem, Referer as RefererHeader, UserAgent};
+use hyper::header::{Accept, AcceptLanguage, Authorization, AccessControlAllowCredentials};
+use hyper::header::{AccessControlAllowOrigin, AccessControlAllowHeaders, AccessControlAllowMethods};
+use hyper::header::{AccessControlRequestHeaders, AccessControlMaxAge, AccessControlRequestMethod, Basic};
+use hyper::header::{CacheControl, CacheDirective, ContentEncoding, ContentLength, ContentLanguage, ContentType};
+use hyper::header::{Encoding, HeaderView, Headers, IfMatch, IfRange, IfUnmodifiedSince, IfModifiedSince};
+use hyper::header::{IfNoneMatch, Pragma, Location, QualityItem, Referer as RefererHeader, UserAgent, q, qitem};
use hyper::method::Method;
use hyper::mime::{Mime, SubLevel, TopLevel};
use hyper::status::StatusCode;
@@ -20,9 +20,12 @@ use net_traits::request::{RedirectMode, Referer, Request, RequestMode, ResponseT
use net_traits::response::{HttpsState, TerminationReason};
use net_traits::response::{Response, ResponseBody, ResponseType};
use resource_thread::CancellationListener;
+use std::collections::HashSet;
use std::io::Read;
+use std::iter::FromIterator;
use std::rc::Rc;
use std::thread;
+use unicase::UniCase;
use url::idna::domain_to_ascii;
use url::{Origin as UrlOrigin, OpaqueOrigin, Url, UrlParser, whatwg_scheme_type_mapper};
use util::thread::spawn_named;
@@ -210,7 +213,7 @@ fn main_fetch(request: Rc<Request>, cors_flag: bool, recursive_flag: bool) -> Re
let internal_response = if response.is_network_error() {
&network_error_res
} else {
- response.get_actual_response()
+ response.actual_response()
};
// Step 13
@@ -245,7 +248,7 @@ fn main_fetch(request: Rc<Request>, cors_flag: bool, recursive_flag: bool) -> Re
// Step 16
if request.synchronous {
- response.get_actual_response().wait_until_done();
+ response.actual_response().wait_until_done();
return response;
}
@@ -263,7 +266,7 @@ fn main_fetch(request: Rc<Request>, cors_flag: bool, recursive_flag: bool) -> Re
let internal_response = if response.is_network_error() {
&network_error_res
} else {
- response.get_actual_response()
+ response.actual_response()
};
// Step 18
@@ -365,7 +368,7 @@ fn http_fetch(request: Rc<Request>,
}
// Substep 4
- let actual_response = res.get_actual_response();
+ let actual_response = res.actual_response();
if actual_response.url_list.borrow().is_empty() {
*actual_response.url_list.borrow_mut() = request.url_list.borrow().clone();
}
@@ -390,7 +393,7 @@ fn http_fetch(request: Rc<Request>,
}, request.method.borrow().clone());
let method_mismatch = !method_cache_match && (!is_simple_method(&request.method.borrow()) ||
- request.use_cors_preflight);
+ request.use_cors_preflight);
let header_mismatch = request.headers.borrow().iter().any(|view|
!cache.match_header(CacheRequestDetails {
origin: origin.clone(),
@@ -401,7 +404,7 @@ fn http_fetch(request: Rc<Request>,
// Sub-substep 1
if method_mismatch || header_mismatch {
- let preflight_result = preflight_fetch(request.clone());
+ let preflight_result = cors_preflight_fetch(request.clone(), Some(cache));
// Sub-substep 2
if preflight_result.response_type == ResponseType::Error {
return Response::network_error();
@@ -415,8 +418,7 @@ fn http_fetch(request: Rc<Request>,
// Substep 3
let credentials = match request.credentials_mode {
CredentialsMode::Include => true,
- CredentialsMode::CredentialsSameOrigin if
- request.response_tainting.get() == ResponseTainting::Basic
+ CredentialsMode::CredentialsSameOrigin if request.response_tainting.get() == ResponseTainting::Basic
=> true,
_ => false
};
@@ -437,7 +439,7 @@ fn http_fetch(request: Rc<Request>,
let mut response = response.unwrap();
// Step 5
- match response.get_actual_response().status.unwrap() {
+ match response.actual_response().status.unwrap() {
// Code 301, 302, 303, 307, 308
StatusCode::MovedPermanently | StatusCode::Found | StatusCode::SeeOther |
@@ -518,21 +520,21 @@ fn http_redirect_fetch(request: Rc<Request>,
assert_eq!(response.return_internal.get(), true);
// Step 3
- // this step is done early, because querying if Location is available says
+ // this step is done early, because querying if Location exists says
// if it is None or Some, making it easy to seperate from the retrieval failure case
- if !response.get_actual_response().headers.has::<Location>() {
+ if !response.actual_response().headers.has::<Location>() {
return Rc::try_unwrap(response).ok().unwrap();
}
// Step 2
- let location = match response.get_actual_response().headers.get::<Location>() {
+ let location = match response.actual_response().headers.get::<Location>() {
Some(&Location(ref location)) => location.clone(),
// Step 4
_ => return Response::network_error()
};
// Step 5
- let response_url = response.get_actual_response().url.as_ref().unwrap();
+ let response_url = response.actual_response().url.as_ref().unwrap();
let location_url = UrlParser::new().base_url(response_url).parse(&*location);
// Step 6
@@ -575,7 +577,7 @@ fn http_redirect_fetch(request: Rc<Request>,
}
// Step 13
- let status_code = response.get_actual_response().status.unwrap();
+ let status_code = response.actual_response().status.unwrap();
if ((status_code == StatusCode::MovedPermanently || status_code == StatusCode::Found) &&
*request.method.borrow() == Method::Post) ||
status_code == StatusCode::SeeOther {
@@ -876,11 +878,11 @@ fn http_network_fetch(request: Rc<Request>,
// Substep 2
- // TODO how can I tell if response was retrieved over HTTPS?
+ // TODO Determine if response was retrieved over HTTPS
// TODO Servo needs to decide what ciphers are to be treated as "deprecated"
response.https_state = HttpsState::None;
- // TODO how do I read request?
+ // TODO Read request
// Step 5
// TODO when https://bugzilla.mozilla.org/show_bug.cgi?id=1030660
@@ -925,8 +927,113 @@ fn http_network_fetch(request: Rc<Request>,
}
/// [CORS preflight fetch](https://fetch.spec.whatwg.org#cors-preflight-fetch)
-fn preflight_fetch(_request: Rc<Request>) -> Response {
- // TODO: Implement preflight fetch spec
+fn cors_preflight_fetch(request: Rc<Request>, cache: Option<BasicCORSCache>) -> Response {
+ // Step 1
+ let mut preflight = Request::new(request.current_url(), Some(request.origin.borrow().clone()), false);
+ *preflight.method.borrow_mut() = Method::Options;
+ preflight.initiator = request.initiator.clone();
+ preflight.type_ = request.type_.clone();
+ preflight.destination = request.destination.clone();
+ preflight.referer = request.referer.clone();
+
+ // Step 2
+ preflight.headers.borrow_mut().set::<AccessControlRequestMethod>(
+ AccessControlRequestMethod(request.method.borrow().clone()));
+
+ // Step 3, 4
+ let mut value = request.headers.borrow().iter()
+ .filter_map(|ref view| if is_simple_header(view) {
+ None
+ } else {
+ Some(UniCase(view.name().to_owned()))
+ }).collect::<Vec<UniCase<String>>>();
+ value.sort();
+
+ // Step 5
+ preflight.headers.borrow_mut().set::<AccessControlRequestHeaders>(
+ AccessControlRequestHeaders(value));
+
+ // Step 6
+ let preflight = Rc::new(preflight);
+ let response = http_network_or_cache_fetch(preflight.clone(), false, false);
+
+ // Step 7
+ if cors_check(request.clone(), &response).is_ok() &&
+ response.status.map_or(false, |status| status.is_success()) {
+ // Substep 1
+ let mut methods = if response.headers.has::<AccessControlAllowMethods>() {
+ match response.headers.get::<AccessControlAllowMethods>() {
+ Some(&AccessControlAllowMethods(ref m)) => m.clone(),
+ // Substep 3
+ None => return Response::network_error()
+ }
+ } else {
+ vec![]
+ };
+
+ // Substep 2
+ let header_names = if response.headers.has::<AccessControlAllowHeaders>() {
+ match response.headers.get::<AccessControlAllowHeaders>() {
+ Some(&AccessControlAllowHeaders(ref hn)) => hn.clone(),
+ // Substep 3
+ None => return Response::network_error()
+ }
+ } else {
+ vec![]
+ };
+
+ // Substep 4
+ if methods.is_empty() && request.use_cors_preflight {
+ methods = vec![request.method.borrow().clone()];
+ }
+
+ // Substep 5
+ if methods.iter().all(|method| *method != *request.method.borrow()) &&
+ !is_simple_method(&*request.method.borrow()) {
+ return Response::network_error();
+ }
+
+ // Substep 6
+ let set: HashSet<&UniCase<String>> = HashSet::from_iter(header_names.iter());
+ if request.headers.borrow().iter().any(|ref hv| !set.contains(&UniCase(hv.name().to_owned())) &&
+ !is_simple_header(hv)) {
+ return Response::network_error();
+ }
+
+ // Substep 7, 8
+ let max_age = response.headers.get::<AccessControlMaxAge>().map(|acma| acma.0).unwrap_or(0);
+
+ // TODO: Substep 9 - Need to define what an imposed limit on max-age is
+
+ // Substep 10
+ let mut cache = match cache {
+ Some(c) => c,
+ None => return response
+ };
+
+ // Substep 11, 12
+ for method in &methods {
+ cache.match_method_and_update(CacheRequestDetails {
+ origin: request.origin.borrow().clone(),
+ destination: request.current_url(),
+ credentials: request.credentials_mode == CredentialsMode::Include
+ }, method.clone(), max_age);
+ }
+
+ // Substep 13, 14
+ for header_name in &header_names {
+ cache.match_header_and_update(CacheRequestDetails {
+ origin: request.origin.borrow().clone(),
+ destination: request.current_url(),
+ credentials: request.credentials_mode == CredentialsMode::Include
+ }, &*header_name, max_age);
+ }
+
+ // Substep 15
+ return response;
+ }
+
+ // Step 8
Response::network_error()
}
@@ -934,7 +1041,6 @@ fn preflight_fetch(_request: Rc<Request>) -> Response {
fn cors_check(request: Rc<Request>, response: &Response) -> Result<(), ()> {
// Step 1
- // let headers = request.headers.borrow();
let origin = response.headers.get::<AccessControlAllowOrigin>().cloned();
// Step 2
@@ -942,18 +1048,18 @@ fn cors_check(request: Rc<Request>, response: &Response) -> Result<(), ()> {
// Step 3
if request.credentials_mode != CredentialsMode::Include &&
- origin == AccessControlAllowOrigin::Any {
+ origin == AccessControlAllowOrigin::Any {
return Ok(());
}
// Step 4
let origin = match origin {
AccessControlAllowOrigin::Value(origin) => origin,
- // if it's Any or Null at this point, I see nothing to do but return Err(())
+ // if it's Any or Null at this point, there's nothing to do but return Err(())
_ => return Err(())
};
- // strings are already utf-8 encoded, so I don't need to re-encode origin for this step
+ // strings are already utf-8 encoded, so there's no need to re-encode origin for this step
match ascii_serialise_origin(&request.origin.borrow()) {
Ok(request_origin) => {
if request_origin != origin {
diff --git a/components/net/lib.rs b/components/net/lib.rs
index dafb7f55c47..47342299130 100644
--- a/components/net/lib.rs
+++ b/components/net/lib.rs
@@ -29,6 +29,7 @@ extern crate openssl;
extern crate rustc_serialize;
extern crate threadpool;
extern crate time;
+extern crate unicase;
extern crate url;
extern crate util;
extern crate uuid;
@@ -49,7 +50,7 @@ pub mod resource_thread;
pub mod storage_thread;
pub mod websocket_loader;
-/// An implementation of the [Fetch spec](https://fetch.spec.whatwg.org/)
+/// An implementation of the [Fetch specification](https://fetch.spec.whatwg.org/)
pub mod fetch {
pub mod cors_cache;
pub mod methods;
diff --git a/components/net_traits/Cargo.toml b/components/net_traits/Cargo.toml
index c22a270c03f..d8cdd4213f0 100644
--- a/components/net_traits/Cargo.toml
+++ b/components/net_traits/Cargo.toml
@@ -24,7 +24,7 @@ path = "../plugins"
heapsize = "0.3.0"
heapsize_plugin = "0.1.2"
hyper = { version = "0.8", features = [ "serde-serialization" ] }
-image = "0.7"
+image = "0.9"
lazy_static = "0.1.15"
log = "0.3.5"
serde = "0.7"
diff --git a/components/net_traits/response.rs b/components/net_traits/response.rs
index 9e6cedd2765..1c1796df52a 100644
--- a/components/net_traits/response.rs
+++ b/components/net_traits/response.rs
@@ -144,7 +144,7 @@ impl Response {
}
}
- pub fn get_actual_response(&self) -> &Response {
+ pub fn actual_response(&self) -> &Response {
if self.return_internal.get() && self.internal_response.is_some() {
&**self.internal_response.as_ref().unwrap()
} else {
diff --git a/components/script/Cargo.toml b/components/script/Cargo.toml
index eaf86e3b39f..9fda41e036f 100644
--- a/components/script/Cargo.toml
+++ b/components/script/Cargo.toml
@@ -75,7 +75,7 @@ heapsize = "0.3.0"
heapsize_plugin = "0.1.2"
html5ever = {version = "0.5.1", features = ["heap_size", "unstable"]}
hyper = { version = "0.8", features = [ "serde-serialization" ] }
-image = "0.7"
+image = "0.9"
libc = "0.2"
log = "0.3.5"
num = "0.1.24"
diff --git a/components/script/dom/bindings/trace.rs b/components/script/dom/bindings/trace.rs
index 16138b33641..50c3fbf682f 100644
--- a/components/script/dom/bindings/trace.rs
+++ b/components/script/dom/bindings/trace.rs
@@ -89,6 +89,7 @@ use style::properties::PropertyDeclarationBlock;
use style::restyle_hints::ElementSnapshot;
use style::selector_impl::PseudoElement;
use style::values::specified::Length;
+use url::Origin as UrlOrigin;
use url::Url;
use util::str::{DOMString, LengthOrPercentageOrAuto};
use uuid::Uuid;
@@ -276,7 +277,7 @@ impl<A: JSTraceable, B: JSTraceable, C: JSTraceable> JSTraceable for (A, B, C) {
}
}
-no_jsmanaged_fields!(bool, f32, f64, String, Url, AtomicBool, AtomicUsize, Uuid);
+no_jsmanaged_fields!(bool, f32, f64, String, Url, AtomicBool, AtomicUsize, UrlOrigin, Uuid);
no_jsmanaged_fields!(usize, u8, u16, u32, u64);
no_jsmanaged_fields!(isize, i8, i16, i32, i64);
no_jsmanaged_fields!(Sender<T>);
diff --git a/components/script/dom/document.rs b/components/script/dom/document.rs
index e38ab86bf29..723e461df30 100644
--- a/components/script/dom/document.rs
+++ b/components/script/dom/document.rs
@@ -94,6 +94,7 @@ use net_traits::CookieSource::NonHTTP;
use net_traits::response::HttpsState;
use net_traits::{AsyncResponseTarget, PendingAsyncLoad};
use num::ToPrimitive;
+use origin::Origin;
use script_runtime::ScriptChan;
use script_thread::{MainThreadScriptChan, MainThreadScriptMsg, Runnable};
use script_traits::UntrustedNodeAddress;
@@ -223,6 +224,8 @@ pub struct Document {
/// https://html.spec.whatwg.org/multipage/#concept-document-https-state
https_state: Cell<HttpsState>,
touchpad_pressure_phase: Cell<TouchpadPressurePhase>,
+ /// The document's origin.
+ origin: Origin,
}
#[derive(JSTraceable, HeapSizeOf)]
@@ -1544,14 +1547,6 @@ impl Document {
/// https://html.spec.whatwg.org/multipage/#cookie-averse-document-object
fn is_cookie_averse(&self) -> bool {
- /// https://url.spec.whatwg.org/#network-scheme
- fn url_has_network_scheme(url: &Url) -> bool {
- match &*url.scheme {
- "ftp" | "http" | "https" => true,
- _ => false,
- }
- }
-
self.browsing_context.is_none() || !url_has_network_scheme(&self.url)
}
@@ -1590,6 +1585,14 @@ impl LayoutDocumentHelpers for LayoutJS<Document> {
}
}
+/// https://url.spec.whatwg.org/#network-scheme
+fn url_has_network_scheme(url: &Url) -> bool {
+ match &*url.scheme {
+ "ftp" | "http" | "https" => true,
+ _ => false,
+ }
+}
+
impl Document {
pub fn new_inherited(window: &Window,
browsing_context: Option<&BrowsingContext>,
@@ -1608,6 +1611,15 @@ impl Document {
(DocumentReadyState::Complete, true)
};
+ // Incomplete implementation of Document origin specification at
+ // https://html.spec.whatwg.org/multipage/#origin:document
+ let origin = if url_has_network_scheme(&url) {
+ Origin::new(&url)
+ } else {
+ // Default to DOM standard behaviour
+ Origin::opaque_identifier()
+ };
+
Document {
node: Node::new_document_node(),
window: JS::from_ref(window),
@@ -1673,6 +1685,7 @@ impl Document {
css_errors_store: DOMRefCell::new(vec![]),
https_state: Cell::new(HttpsState::None),
touchpad_pressure_phase: Cell::new(TouchpadPressurePhase::BeforeClick),
+ origin: origin,
}
}
@@ -1868,9 +1881,18 @@ impl DocumentMethods for Document {
// https://html.spec.whatwg.org/multipage/#relaxing-the-same-origin-restriction
fn Domain(&self) -> DOMString {
- // TODO: This should use the effective script origin when it exists
- let origin = self.window.get_url();
- DOMString::from(origin.serialize_host().unwrap_or_else(|| "".to_owned()))
+ // Step 1.
+ if self.browsing_context().is_none() {
+ return DOMString::new();
+ }
+
+ if let Some(host) = self.origin.host() {
+ // Step 4.
+ DOMString::from(host.serialize())
+ } else {
+ // Step 3.
+ DOMString::new()
+ }
}
// https://dom.spec.whatwg.org/#dom-document-documenturi
@@ -2497,10 +2519,11 @@ impl DocumentMethods for Document {
return Ok(DOMString::new());
}
- let url = self.url();
- if !is_scheme_host_port_tuple(&url) {
+ if !self.origin.is_scheme_host_port_tuple() {
return Err(Error::Security);
}
+
+ let url = self.url();
let (tx, rx) = ipc::channel().unwrap();
let _ = self.window.resource_thread().send(GetCookiesForUrl((*url).clone(), tx, NonHTTP));
let cookies = rx.recv().unwrap();
@@ -2513,10 +2536,11 @@ impl DocumentMethods for Document {
return Ok(());
}
- let url = self.url();
- if !is_scheme_host_port_tuple(url) {
+ if !self.origin.is_scheme_host_port_tuple() {
return Err(Error::Security);
}
+
+ let url = self.url();
let _ = self.window
.resource_thread()
.send(SetCookiesForUrl((*url).clone(), String::from(cookie), NonHTTP));
@@ -2720,10 +2744,6 @@ impl DocumentMethods for Document {
}
}
-fn is_scheme_host_port_tuple(url: &Url) -> bool {
- url.host().is_some() && url.port_or_default().is_some()
-}
-
fn update_with_current_time_ms(marker: &Cell<u64>) {
if marker.get() == Default::default() {
let time = time::get_time();
diff --git a/components/script/dom/htmlbaseelement.rs b/components/script/dom/htmlbaseelement.rs
index 7f1ce7641d3..241c209c7a8 100644
--- a/components/script/dom/htmlbaseelement.rs
+++ b/components/script/dom/htmlbaseelement.rs
@@ -2,8 +2,9 @@
* 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 dom::attr::Attr;
+use dom::attr::{Attr, AttrValue};
use dom::bindings::codegen::Bindings::HTMLBaseElementBinding;
+use dom::bindings::codegen::Bindings::HTMLBaseElementBinding::HTMLBaseElementMethods;
use dom::bindings::inheritance::Castable;
use dom::bindings::js::Root;
use dom::document::Document;
@@ -60,6 +61,33 @@ impl HTMLBaseElement {
}
}
+impl HTMLBaseElementMethods for HTMLBaseElement {
+ // https://html.spec.whatwg.org/multipage/#dom-base-href
+ fn Href(&self) -> DOMString {
+ let document = document_from_node(self);
+
+ // Step 1.
+ if !self.upcast::<Element>().has_attribute(&atom!("href")) {
+ return DOMString::from(document.base_url().serialize());
+ }
+
+ // Step 2.
+ let fallback_base_url = document.fallback_base_url();
+
+ // Step 3.
+ let url = self.upcast::<Element>().get_url_attribute(&atom!("href"));
+
+ // Step 4.
+ let url_record = fallback_base_url.join(&*url);
+
+ // Step 5, 6.
+ DOMString::from(url_record.ok().map_or("".to_owned(), |record| record.serialize()))
+ }
+
+ // https://html.spec.whatwg.org/multipage/#dom-base-href
+ make_url_setter!(SetHref, "href");
+}
+
impl VirtualMethods for HTMLBaseElement {
fn super_type(&self) -> Option<&VirtualMethods> {
Some(self.upcast::<HTMLElement>() as &VirtualMethods)
diff --git a/components/script/dom/htmltableelement.rs b/components/script/dom/htmltableelement.rs
index efcc24f4370..4ea908675b1 100644
--- a/components/script/dom/htmltableelement.rs
+++ b/components/script/dom/htmltableelement.rs
@@ -118,13 +118,6 @@ impl HTMLTableElement {
thead.upcast::<Node>().remove_self();
}
}
-
- /// Determine the row index for the given `HTMLTableRowElement`.
- pub fn row_index(&self, row_elem: &HTMLTableRowElement) -> Option<usize> {
- self.Rows()
- .elements_iter()
- .position(|elem| (&elem as &Element) == row_elem.upcast::<Element>())
- }
}
impl HTMLTableElementMethods for HTMLTableElement {
diff --git a/components/script/dom/htmltablerowelement.rs b/components/script/dom/htmltablerowelement.rs
index c6d532a0323..bb83e00b0db 100644
--- a/components/script/dom/htmltablerowelement.rs
+++ b/components/script/dom/htmltablerowelement.rs
@@ -4,7 +4,9 @@
use cssparser::RGBA;
use dom::attr::AttrValue;
+use dom::bindings::codegen::Bindings::HTMLTableElementBinding::HTMLTableElementMethods;
use dom::bindings::codegen::Bindings::HTMLTableRowElementBinding::{self, HTMLTableRowElementMethods};
+use dom::bindings::codegen::Bindings::HTMLTableSectionElementBinding::HTMLTableSectionElementMethods;
use dom::bindings::codegen::Bindings::NodeBinding::NodeMethods;
use dom::bindings::error::{ErrorResult, Fallible};
use dom::bindings::inheritance::Castable;
@@ -54,6 +56,14 @@ impl HTMLTableRowElement {
document,
HTMLTableRowElementBinding::Wrap)
}
+
+ /// Determine the index for this `HTMLTableRowElement` within the given
+ /// `HTMLCollection`. Returns `-1` if not found within collection.
+ fn row_index(&self, collection: Root<HTMLCollection>) -> i32 {
+ collection.elements_iter()
+ .position(|elem| (&elem as &Element) == self.upcast())
+ .map_or(-1, |i| i as i32)
+ }
}
impl HTMLTableRowElementMethods for HTMLTableRowElement {
@@ -97,7 +107,7 @@ impl HTMLTableRowElementMethods for HTMLTableRowElement {
None => return -1,
};
if let Some(table) = parent.downcast::<HTMLTableElement>() {
- return table.row_index(self).map_or(-1, |i| i as i32);
+ return self.row_index(table.Rows());
}
if !parent.is::<HTMLTableSectionElement>() {
return -1;
@@ -107,8 +117,23 @@ impl HTMLTableRowElementMethods for HTMLTableRowElement {
None => return -1,
};
grandparent.downcast::<HTMLTableElement>()
- .and_then(|table| table.row_index(self))
- .map_or(-1, |i| i as i32)
+ .map_or(-1, |table| self.row_index(table.Rows()))
+ }
+
+ // https://html.spec.whatwg.org/multipage/#dom-tr-sectionrowindex
+ fn SectionRowIndex(&self) -> i32 {
+ let parent = match self.upcast::<Node>().GetParentNode() {
+ Some(parent) => parent,
+ None => return -1,
+ };
+ let collection = if let Some(table) = parent.downcast::<HTMLTableElement>() {
+ table.Rows()
+ } else if let Some(table_section) = parent.downcast::<HTMLTableSectionElement>() {
+ table_section.Rows()
+ } else {
+ return -1;
+ };
+ self.row_index(collection)
}
}
diff --git a/components/script/dom/webidls/HTMLBaseElement.webidl b/components/script/dom/webidls/HTMLBaseElement.webidl
index 5c59c62f9be..549a6df1004 100644
--- a/components/script/dom/webidls/HTMLBaseElement.webidl
+++ b/components/script/dom/webidls/HTMLBaseElement.webidl
@@ -5,6 +5,6 @@
// https://html.spec.whatwg.org/multipage/#htmlbaseelement
interface HTMLBaseElement : HTMLElement {
- // attribute DOMString href;
- // attribute DOMString target;
+ attribute DOMString href;
+// attribute DOMString target;
};
diff --git a/components/script/dom/webidls/HTMLTableRowElement.webidl b/components/script/dom/webidls/HTMLTableRowElement.webidl
index 05d339aba3f..fe6c93e6be5 100644
--- a/components/script/dom/webidls/HTMLTableRowElement.webidl
+++ b/components/script/dom/webidls/HTMLTableRowElement.webidl
@@ -6,7 +6,7 @@
// https://html.spec.whatwg.org/multipage/#htmltablerowelement
interface HTMLTableRowElement : HTMLElement {
readonly attribute long rowIndex;
- //readonly attribute long sectionRowIndex;
+ readonly attribute long sectionRowIndex;
readonly attribute HTMLCollection cells;
[Throws]
HTMLElement insertCell(optional long index = -1);
diff --git a/components/script/lib.rs b/components/script/lib.rs
index d3913865070..e525a62b70d 100644
--- a/components/script/lib.rs
+++ b/components/script/lib.rs
@@ -90,6 +90,7 @@ pub mod dom;
pub mod layout_interface;
mod mem;
mod network_listener;
+pub mod origin;
pub mod page;
pub mod parse;
pub mod reporter;
diff --git a/components/script/origin.rs b/components/script/origin.rs
new file mode 100644
index 00000000000..096ffbbd6fb
--- /dev/null
+++ b/components/script/origin.rs
@@ -0,0 +1,73 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * 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 std::cell::RefCell;
+use std::rc::Rc;
+use url::{OpaqueOrigin, Origin as UrlOrigin};
+use url::{Url, Host};
+
+/// A representation of an [origin](https://html.spec.whatwg.org/multipage/#origin-2).
+#[derive(HeapSizeOf)]
+pub struct Origin {
+ #[ignore_heap_size_of = "Rc<T> has unclear ownership semantics"]
+ inner: Rc<RefCell<UrlOrigin>>,
+}
+
+// We can't use RefCell inside JSTraceable, but Origin doesn't contain JS values and
+// DOMRefCell makes it much harder to write unit tests (due to setting up required TLS).
+no_jsmanaged_fields!(Origin);
+
+impl Origin {
+ /// Create a new origin comprising a unique, opaque identifier.
+ pub fn opaque_identifier() -> Origin {
+ let opaque = UrlOrigin::UID(OpaqueOrigin::new());
+ Origin {
+ inner: Rc::new(RefCell::new(opaque)),
+ }
+ }
+
+ /// Create a new origin for the given URL.
+ pub fn new(url: &Url) -> Origin {
+ Origin {
+ inner: Rc::new(RefCell::new(url.origin())),
+ }
+ }
+
+ pub fn set(&self, origin: UrlOrigin) {
+ *self.inner.borrow_mut() = origin;
+ }
+
+ /// Does this origin represent a host/scheme/port tuple?
+ pub fn is_scheme_host_port_tuple(&self) -> bool {
+ match *self.inner.borrow() {
+ UrlOrigin::Tuple(..) => true,
+ UrlOrigin::UID(..) => false,
+ }
+ }
+
+ /// Return the host associated with this origin.
+ pub fn host(&self) -> Option<Host> {
+ match *self.inner.borrow() {
+ UrlOrigin::Tuple(_, ref host, _) => Some(host.clone()),
+ UrlOrigin::UID(..) => None,
+ }
+ }
+
+ /// https://html.spec.whatwg.org/multipage/#same-origin
+ pub fn same_origin(&self, other: &Origin) -> bool {
+ *self.inner.borrow() == *other.inner.borrow()
+ }
+
+ pub fn copy(&self) -> Origin {
+ Origin {
+ inner: Rc::new(RefCell::new(self.inner.borrow().clone())),
+ }
+ }
+
+ pub fn alias(&self) -> Origin {
+ Origin {
+ inner: self.inner.clone(),
+ }
+ }
+}
diff --git a/components/servo/Cargo.lock b/components/servo/Cargo.lock
index 07c6aa3a0cb..73bf74a008c 100644
--- a/components/servo/Cargo.lock
+++ b/components/servo/Cargo.lock
@@ -18,8 +18,8 @@ dependencies = [
"gfx_tests 0.0.1",
"gleam 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
"glutin_app 0.0.1",
- "image 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "ipc-channel 0.2.1 (git+https://github.com/servo/ipc-channel)",
+ "image 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "ipc-channel 0.2.2 (git+https://github.com/servo/ipc-channel)",
"layers 0.2.4 (git+https://github.com/servo/rust-layers)",
"layout 0.0.1",
"layout_tests 0.0.1",
@@ -49,15 +49,6 @@ dependencies = [
]
[[package]]
-name = "advapi32-sys"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "winapi 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
name = "aho-corasick"
version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -92,6 +83,15 @@ dependencies = [
]
[[package]]
+name = "arrayvec"
+version = "0.3.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "nodrop 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "odds 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
name = "aster"
version = "0.14.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -119,10 +119,10 @@ dependencies = [
[[package]]
name = "bincode"
-version = "0.5.0"
+version = "0.5.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "byteorder 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "byteorder 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
"num 0.1.31 (registry+https://github.com/rust-lang/crates.io-index)",
"rustc-serialize 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)",
"serde 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -155,11 +155,6 @@ source = "git+https://github.com/browserhtml/browserhtml?branch=gh-pages#0ca5084
[[package]]
name = "byteorder"
-version = "0.4.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-
-[[package]]
-name = "byteorder"
version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -172,7 +167,7 @@ dependencies = [
"euclid 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)",
"gfx_traits 0.0.1",
"gleam 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
- "ipc-channel 0.2.1 (git+https://github.com/servo/ipc-channel)",
+ "ipc-channel 0.2.2 (git+https://github.com/servo/ipc-channel)",
"layers 0.2.4 (git+https://github.com/servo/rust-layers)",
"log 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
"num 0.1.31 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -192,7 +187,7 @@ dependencies = [
"gfx_traits 0.0.1",
"heapsize 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize_plugin 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
- "ipc-channel 0.2.1 (git+https://github.com/servo/ipc-channel)",
+ "ipc-channel 0.2.2 (git+https://github.com/servo/ipc-channel)",
"offscreen_gl_context 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
"plugins 0.0.1",
"serde 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -251,7 +246,7 @@ name = "cmake"
version = "0.1.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "gcc 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gcc 0.3.26 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -302,8 +297,8 @@ dependencies = [
"gfx 0.0.1",
"gfx_traits 0.0.1",
"gleam 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
- "image 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "ipc-channel 0.2.1 (git+https://github.com/servo/ipc-channel)",
+ "image 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "ipc-channel 0.2.2 (git+https://github.com/servo/ipc-channel)",
"layers 0.2.4 (git+https://github.com/servo/rust-layers)",
"layout_traits 0.0.1",
"log 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -413,7 +408,7 @@ version = "0.0.1"
dependencies = [
"devtools_traits 0.0.1",
"hyper 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "ipc-channel 0.2.1 (git+https://github.com/servo/ipc-channel)",
+ "ipc-channel 0.2.2 (git+https://github.com/servo/ipc-channel)",
"log 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
"msg 0.0.1",
"plugins 0.0.1",
@@ -432,7 +427,7 @@ dependencies = [
"heapsize 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize_plugin 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
"hyper 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "ipc-channel 0.2.1 (git+https://github.com/servo/ipc-channel)",
+ "ipc-channel 0.2.2 (git+https://github.com/servo/ipc-channel)",
"msg 0.0.1",
"plugins 0.0.1",
"serde 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -658,12 +653,8 @@ dependencies = [
[[package]]
name = "gcc"
-version = "0.3.17"
+version = "0.3.26"
source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "advapi32-sys 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "winapi 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
-]
[[package]]
name = "gdi32-sys"
@@ -695,7 +686,7 @@ dependencies = [
"harfbuzz-sys 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize_plugin 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
- "ipc-channel 0.2.1 (git+https://github.com/servo/ipc-channel)",
+ "ipc-channel 0.2.2 (git+https://github.com/servo/ipc-channel)",
"layers 0.2.4 (git+https://github.com/servo/rust-layers)",
"lazy_static 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -729,7 +720,7 @@ name = "gfx_tests"
version = "0.0.1"
dependencies = [
"gfx 0.0.1",
- "ipc-channel 0.2.1 (git+https://github.com/servo/ipc-channel)",
+ "ipc-channel 0.2.2 (git+https://github.com/servo/ipc-channel)",
"style 0.0.1",
]
@@ -751,11 +742,11 @@ dependencies = [
[[package]]
name = "gif"
-version = "0.7.0"
+version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"color_quant 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "lzw 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "lzw 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -918,30 +909,31 @@ dependencies = [
"time 0.1.34 (registry+https://github.com/rust-lang/crates.io-index)",
"traitobject 0.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
"typeable 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "unicase 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "unicase 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
"url 0.5.8 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "image"
-version = "0.7.0"
+version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "byteorder 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "byteorder 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
"enum_primitive 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "gif 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gif 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
"glob 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)",
- "jpeg-decoder 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "jpeg-decoder 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
"num 0.1.31 (registry+https://github.com/rust-lang/crates.io-index)",
"png 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "immeta"
-version = "0.3.1"
+version = "0.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "byteorder 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "arrayvec 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)",
+ "byteorder 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
"num 0.1.31 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -965,11 +957,11 @@ dependencies = [
[[package]]
name = "ipc-channel"
-version = "0.2.1"
-source = "git+https://github.com/servo/ipc-channel#f85a07bdb2615e439bee7308d37266ac3dd23708"
+version = "0.2.2"
+source = "git+https://github.com/servo/ipc-channel#e43fb22c431740a9bc54ce96caebd0e67d1a0586"
dependencies = [
- "bincode 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "byteorder 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "bincode 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
+ "byteorder 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
"lazy_static 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
"rand 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -980,10 +972,10 @@ dependencies = [
[[package]]
name = "jpeg-decoder"
-version = "0.1.2"
+version = "0.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "byteorder 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "byteorder 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)",
"num 0.1.31 (registry+https://github.com/rust-lang/crates.io-index)",
"rayon 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1058,7 +1050,7 @@ dependencies = [
"gfx_traits 0.0.1",
"heapsize 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize_plugin 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
- "ipc-channel 0.2.1 (git+https://github.com/servo/ipc-channel)",
+ "ipc-channel 0.2.2 (git+https://github.com/servo/ipc-channel)",
"layout_traits 0.0.1",
"libc 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1098,7 +1090,7 @@ name = "layout_traits"
version = "0.0.1"
dependencies = [
"gfx 0.0.1",
- "ipc-channel 0.2.1 (git+https://github.com/servo/ipc-channel)",
+ "ipc-channel 0.2.2 (git+https://github.com/servo/ipc-channel)",
"msg 0.0.1",
"net_traits 0.0.1",
"profile_traits 0.0.1",
@@ -1156,7 +1148,7 @@ name = "libz-sys"
version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "gcc 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gcc 0.3.26 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
"pkg-config 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -1171,7 +1163,7 @@ dependencies = [
[[package]]
name = "lzw"
-version = "0.9.0"
+version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
@@ -1240,7 +1232,7 @@ name = "miniz-sys"
version = "0.1.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "gcc 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gcc 0.3.26 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -1263,7 +1255,7 @@ dependencies = [
"heapsize 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize_plugin 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
"hyper 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "ipc-channel 0.2.1 (git+https://github.com/servo/ipc-channel)",
+ "ipc-channel 0.2.2 (git+https://github.com/servo/ipc-channel)",
"layers 0.2.4 (git+https://github.com/servo/rust-layers)",
"plugins 0.0.1",
"rustc-serialize 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1283,8 +1275,8 @@ dependencies = [
"devtools_traits 0.0.1",
"flate2 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
"hyper 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "immeta 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "ipc-channel 0.2.1 (git+https://github.com/servo/ipc-channel)",
+ "immeta 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "ipc-channel 0.2.2 (git+https://github.com/servo/ipc-channel)",
"log 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
"mime 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
"mime_guess 1.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1295,11 +1287,12 @@ dependencies = [
"rustc-serialize 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)",
"threadpool 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
"time 0.1.34 (registry+https://github.com/rust-lang/crates.io-index)",
+ "unicase 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
"url 0.5.8 (registry+https://github.com/rust-lang/crates.io-index)",
"util 0.0.1",
"uuid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
"webrender_traits 0.1.0 (git+https://github.com/servo/webrender_traits)",
- "websocket 0.16.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "websocket 0.16.2 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -1322,13 +1315,13 @@ dependencies = [
"devtools_traits 0.0.1",
"flate2 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
"hyper 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "ipc-channel 0.2.1 (git+https://github.com/servo/ipc-channel)",
+ "ipc-channel 0.2.2 (git+https://github.com/servo/ipc-channel)",
"msg 0.0.1",
"net 0.0.1",
"net_traits 0.0.1",
"plugins 0.0.1",
"time 0.1.34 (registry+https://github.com/rust-lang/crates.io-index)",
- "unicase 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "unicase 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
"url 0.5.8 (registry+https://github.com/rust-lang/crates.io-index)",
"util 0.0.1",
]
@@ -1340,8 +1333,8 @@ dependencies = [
"heapsize 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize_plugin 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
"hyper 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "image 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "ipc-channel 0.2.1 (git+https://github.com/servo/ipc-channel)",
+ "image 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "ipc-channel 0.2.2 (git+https://github.com/servo/ipc-channel)",
"lazy_static 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
"msg 0.0.1",
@@ -1350,7 +1343,7 @@ dependencies = [
"serde_macros 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"url 0.5.8 (registry+https://github.com/rust-lang/crates.io-index)",
"util 0.0.1",
- "websocket 0.16.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "websocket 0.16.2 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -1361,6 +1354,14 @@ dependencies = [
]
[[package]]
+name = "nodrop"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "odds 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
name = "num"
version = "0.1.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1406,6 +1407,11 @@ dependencies = [
]
[[package]]
+name = "odds"
+version = "0.2.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+
+[[package]]
name = "offscreen_gl_context"
version = "0.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1428,7 +1434,7 @@ version = "0.7.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"bitflags 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "gcc 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gcc 0.3.26 (registry+https://github.com/rust-lang/crates.io-index)",
"lazy_static 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
"openssl-sys 0.7.8 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1452,7 +1458,7 @@ name = "openssl-sys-extras"
version = "0.7.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "gcc 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gcc 0.3.26 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
"openssl-sys 0.7.8 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -1561,7 +1567,7 @@ name = "profile"
version = "0.0.1"
dependencies = [
"hbs-pow 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "ipc-channel 0.2.1 (git+https://github.com/servo/ipc-channel)",
+ "ipc-channel 0.2.2 (git+https://github.com/servo/ipc-channel)",
"libc 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
"plugins 0.0.1",
@@ -1578,7 +1584,7 @@ version = "0.0.1"
dependencies = [
"energy-monitor 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
"energymon 0.2.0 (git+https://github.com/energymon/energymon-rust.git)",
- "ipc-channel 0.2.1 (git+https://github.com/servo/ipc-channel)",
+ "ipc-channel 0.2.2 (git+https://github.com/servo/ipc-channel)",
"plugins 0.0.1",
"serde 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"serde_macros 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1712,8 +1718,8 @@ dependencies = [
"heapsize_plugin 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
"html5ever 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
"hyper 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "image 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "ipc-channel 0.2.1 (git+https://github.com/servo/ipc-channel)",
+ "image 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "ipc-channel 0.2.2 (git+https://github.com/servo/ipc-channel)",
"js 0.1.2 (git+https://github.com/servo/rust-mozjs)",
"libc 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1738,12 +1744,12 @@ dependencies = [
"string_cache 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)",
"style 0.0.1",
"time 0.1.34 (registry+https://github.com/rust-lang/crates.io-index)",
- "unicase 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "unicase 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
"url 0.5.8 (registry+https://github.com/rust-lang/crates.io-index)",
"util 0.0.1",
"uuid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
"webrender_traits 0.1.0 (git+https://github.com/servo/webrender_traits)",
- "websocket 0.16.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "websocket 0.16.2 (registry+https://github.com/rust-lang/crates.io-index)",
"xml5ever 0.1.1 (git+https://github.com/Ygg01/xml5ever)",
]
@@ -1752,7 +1758,9 @@ name = "script_tests"
version = "0.0.1"
dependencies = [
"msg 0.0.1",
+ "plugins 0.0.1",
"script 0.0.1",
+ "url 0.5.8 (registry+https://github.com/rust-lang/crates.io-index)",
"util 0.0.1",
]
@@ -1767,7 +1775,7 @@ dependencies = [
"gfx_traits 0.0.1",
"heapsize 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize_plugin 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
- "ipc-channel 0.2.1 (git+https://github.com/servo/ipc-channel)",
+ "ipc-channel 0.2.2 (git+https://github.com/servo/ipc-channel)",
"libc 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
"msg 0.0.1",
"net_traits 0.0.1",
@@ -1893,7 +1901,7 @@ dependencies = [
"user32-sys 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"wayland-client 0.5.9 (registry+https://github.com/rust-lang/crates.io-index)",
"wayland-kbd 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
- "wayland-window 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "wayland-window 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
"winapi 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
"x11-dl 2.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -2038,7 +2046,7 @@ dependencies = [
name = "task_info"
version = "0.0.1"
dependencies = [
- "gcc 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gcc 0.3.26 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -2051,12 +2059,13 @@ dependencies = [
[[package]]
name = "tempfile"
-version = "1.1.3"
+version = "2.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"kernel32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
"rand 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)",
+ "rustc_version 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
"winapi 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -2103,8 +2112,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
name = "unicase"
-version = "1.0.1"
+version = "1.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "rustc_version 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
+]
[[package]]
name = "unicode-bidi"
@@ -2184,7 +2196,7 @@ dependencies = [
"getopts 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize_plugin 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
- "ipc-channel 0.2.1 (git+https://github.com/servo/ipc-channel)",
+ "ipc-channel 0.2.2 (git+https://github.com/servo/ipc-channel)",
"js 0.1.2 (git+https://github.com/servo/rust-mozjs)",
"kernel32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
"lazy_static 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -2268,11 +2280,11 @@ dependencies = [
[[package]]
name = "wayland-window"
-version = "0.2.2"
+version = "0.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "byteorder 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "tempfile 1.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
+ "byteorder 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "tempfile 2.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"wayland-client 0.5.9 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -2293,8 +2305,8 @@ version = "0.0.1"
dependencies = [
"compositing 0.0.1",
"hyper 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "image 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "ipc-channel 0.2.1 (git+https://github.com/servo/ipc-channel)",
+ "image 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "ipc-channel 0.2.2 (git+https://github.com/servo/ipc-channel)",
"log 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
"msg 0.0.1",
"plugins 0.0.1",
@@ -2319,7 +2331,7 @@ dependencies = [
"fnv 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
"freetype 0.1.0 (git+https://github.com/servo/rust-freetype)",
"gleam 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
- "ipc-channel 0.2.1 (git+https://github.com/servo/ipc-channel)",
+ "ipc-channel 0.2.2 (git+https://github.com/servo/ipc-channel)",
"lazy_static 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
"num 0.1.31 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -2339,7 +2351,7 @@ dependencies = [
"core-graphics 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)",
"gleam 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
- "ipc-channel 0.2.1 (git+https://github.com/servo/ipc-channel)",
+ "ipc-channel 0.2.2 (git+https://github.com/servo/ipc-channel)",
"offscreen_gl_context 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
"serde 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"serde_macros 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -2347,17 +2359,17 @@ dependencies = [
[[package]]
name = "websocket"
-version = "0.16.1"
+version = "0.16.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"bitflags 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
- "byteorder 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "byteorder 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
"hyper 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
"net2 0.2.19 (registry+https://github.com/rust-lang/crates.io-index)",
"openssl 0.7.8 (registry+https://github.com/rust-lang/crates.io-index)",
"rand 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)",
"rustc-serialize 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)",
- "unicase 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "unicase 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
"url 0.5.8 (registry+https://github.com/rust-lang/crates.io-index)",
]
diff --git a/components/servo/Cargo.toml b/components/servo/Cargo.toml
index f412b16af0a..a06e3093031 100644
--- a/components/servo/Cargo.toml
+++ b/components/servo/Cargo.toml
@@ -19,7 +19,7 @@ doc = false
bench = false
[dev-dependencies]
-image = "0.7"
+image = "0.9"
[dev-dependencies.gfx_tests]
path = "../../tests/unit/gfx"
diff --git a/components/style/properties.mako.rs b/components/style/properties.mako.rs
index 6a8ab086be0..ecbfe5af015 100644
--- a/components/style/properties.mako.rs
+++ b/components/style/properties.mako.rs
@@ -145,6 +145,9 @@ def new_style_struct(name, is_inherited, gecko_name=None, additional_methods=Non
THIS_STYLE_STRUCT = style_struct
return ""
+def active_style_structs():
+ return filter(lambda s: s.additional_methods or s.longhands, STYLE_STRUCTS)
+
def switch_to_style_struct(name):
global THIS_STYLE_STRUCT
@@ -909,7 +912,11 @@ pub mod longhands {
// CSS 2.1, Section 11 - Visual effects
// Non-standard, see https://developer.mozilla.org/en-US/docs/Web/CSS/overflow-clip-box#Specifications
- ${single_keyword("-servo-overflow-clip-box", "padding-box content-box", internal=True)}
+ ${single_keyword("-servo-overflow-clip-box", "padding-box content-box", products="servo",
+ internal=True)}
+
+ ${single_keyword("overflow-clip-box", "padding-box content-box", products="gecko",
+ internal=True)}
// FIXME(pcwalton, #2742): Implement scrolling for `scroll` and `auto`.
${single_keyword("overflow-x", "visible hidden scroll auto")}
@@ -952,6 +959,16 @@ pub mod longhands {
}
</%self:longhand>
+ // CSSOM View Module
+ // https://www.w3.org/TR/cssom-view-1/
+ ${single_keyword("scroll-behavior", "auto smooth", products="gecko")}
+
+ // Non-standard: https://developer.mozilla.org/en-US/docs/Web/CSS/scroll-snap-type-x
+ ${single_keyword("scroll-snap-type-x", "none mandatory proximity", products="gecko")}
+
+ // Non-standard: https://developer.mozilla.org/en-US/docs/Web/CSS/scroll-snap-type-y
+ ${single_keyword("scroll-snap-type-y", "none mandatory proximity", products="gecko")}
+
${switch_to_style_struct("InheritedBox")}
// TODO: collapse. Well, do tables first.
@@ -1354,6 +1371,12 @@ pub mod longhands {
// CSS 2.1, Section 13 - Paged media
+ ${switch_to_style_struct("Box")}
+
+ ${single_keyword("page-break-after", "auto always avoid left right", products="gecko")}
+ ${single_keyword("page-break-before", "auto always avoid left right", products="gecko")}
+ ${single_keyword("page-break-inside", "auto avoid", products="gecko")}
+
// CSS 2.1, Section 14 - Colors and Backgrounds
${new_style_struct("Background", is_inherited=False, gecko_name="nsStyleBackground")}
@@ -2027,6 +2050,8 @@ pub mod longhands {
"normal ultra-condensed extra-condensed condensed semi-condensed semi-expanded \
expanded extra-expanded ultra-expanded")}
+ ${single_keyword("font-kerning", "auto none normal", products="gecko")}
+
// CSS 2.1, Section 16 - Text
${switch_to_style_struct("InheritedText")}
@@ -2314,6 +2339,9 @@ pub mod longhands {
}
</%self:longhand>
+ ${single_keyword("text-decoration-style", "-moz-none solid double dotted dashed wavy",
+ products="gecko")}
+
${switch_to_style_struct("InheritedText")}
<%self:longhand name="-servo-text-decorations-in-effect"
@@ -2439,6 +2467,16 @@ pub mod longhands {
${single_keyword("text-rendering", "auto optimizespeed optimizelegibility geometricprecision")}
+ // CSS Text Module Level 3
+ // https://www.w3.org/TR/css-text-3/
+ ${single_keyword("hyphens", "none manual auto", products="gecko")}
+
+ // CSS Ruby Layout Module Level 1
+ // https://www.w3.org/TR/css-ruby-1/
+ ${single_keyword("ruby-align", "start center space-between space-around", products="gecko")}
+
+ ${single_keyword("ruby-position", "over under", products="gecko")}
+
// CSS 2.1, Section 17 - Tables
${new_style_struct("Table", is_inherited=False, gecko_name="nsStyleTable")}
@@ -2541,8 +2579,11 @@ pub mod longhands {
}
</%self:longhand>
- // CSS 2.1, Section 18 - User interface
+ // CSS Fragmentation Module Level 3
+ // https://www.w3.org/TR/css-break-3/
+ ${switch_to_style_struct("Border")}
+ ${single_keyword("box-decoration-break", "slice clone", products="gecko")}
// CSS Writing Modes Level 3
// http://dev.w3.org/csswg/css-writing-modes/
@@ -2554,8 +2595,16 @@ pub mod longhands {
// FIXME(SimonSapin): initial (first) value should be 'mixed', when that's implemented
${single_keyword("text-orientation", "sideways sideways-left sideways-right", experimental=True)}
+ // CSS Color Module Level 4
+ // https://drafts.csswg.org/css-color/
+ ${single_keyword("color-adjust", "economy exact", products="gecko")}
+
// CSS Basic User Interface Module Level 3
// http://dev.w3.org/csswg/css-ui/
+ ${switch_to_style_struct("Box")}
+
+ ${single_keyword("resize", "none both horizontal vertical", products="gecko")}
+
${switch_to_style_struct("Position")}
${single_keyword("box-sizing", "content-box border-box")}
@@ -4162,6 +4211,8 @@ pub mod longhands {
${single_keyword("backface-visibility", "visible hidden")}
+ ${single_keyword("transform-box", "border-box fill-box view-box", products="gecko")}
+
${single_keyword("transform-style", "auto flat preserve-3d")}
<%self:longhand name="transform-origin">
@@ -4316,11 +4367,26 @@ pub mod longhands {
}
</%self:longhand>
+ // Compositing and Blending Level 1
+ // http://www.w3.org/TR/compositing-1/
+ ${single_keyword("isolation", "auto isolate", products="gecko")}
+
${single_keyword("mix-blend-mode",
"""normal multiply screen overlay darken lighten color-dodge
color-burn hard-light soft-light difference exclusion hue
saturation color luminosity""")}
+ // CSS Masking Module Level 1
+ // https://www.w3.org/TR/css-masking-1/
+ ${single_keyword("mask-type", "luminance alpha", products="gecko")}
+
+ // CSS Image Values and Replaced Content Module Level 3
+ // https://drafts.csswg.org/css-images-3/
+
+ ${switch_to_style_struct("Position")}
+
+ ${single_keyword("object-fit", "fill contain cover none scale-down", products="gecko")}
+
${switch_to_style_struct("InheritedBox")}
<%self:longhand name="image-rendering">
@@ -4930,6 +4996,43 @@ pub mod longhands {
specified::parse_integer(input)
}
</%self:longhand>
+
+ ${single_keyword("flex-wrap", "nowrap wrap wrap-reverse", products="gecko")}
+
+ // SVG 1.1 (Second Edition)
+ // https://www.w3.org/TR/SVG/
+ ${new_style_struct("SVG", is_inherited=True)}
+
+ // Section 10 - Text
+ ${single_keyword("dominant-baseline",
+ """auto use-script no-change reset-size ideographic alphabetic hanging
+ mathematical central middle text-after-edge text-before-edge""",
+ products="gecko")}
+
+ ${single_keyword("text-anchor", "start middle end", products="gecko")}
+
+ // Section 11 - Painting: Filling, Stroking and Marker Symbols
+ ${single_keyword("color-interpolation", "auto sRGB linearRGB", products="gecko")}
+
+ ${single_keyword("color-interpolation-filters", "auto sRGB linearRGB", products="gecko")}
+
+ ${single_keyword("fill-rule", "nonzero evenodd", products="gecko")}
+
+ ${single_keyword("shape-rendering", "auto optimizeSpeed crispEdges geometricPrecision",
+ products="gecko")}
+
+ ${single_keyword("stroke-linecap", "butt round square", products="gecko")}
+
+ ${single_keyword("stroke-linejoin", "miter round bevel", products="gecko")}
+
+ ${switch_to_style_struct("Effects")}
+
+ ${single_keyword("vector-effect", "none non-scaling-stroke", products="gecko")}
+
+ ${switch_to_style_struct("SVG")}
+
+ // Section 14 - Clipping, Masking and Compositing
+ ${single_keyword("clip-rule", "nonzero evenodd", products="gecko")}
}
@@ -6190,7 +6293,7 @@ impl PropertyDeclaration {
pub mod style_struct_traits {
use super::longhands;
- % for style_struct in STYLE_STRUCTS:
+ % for style_struct in active_style_structs():
pub trait ${style_struct.trait_name}: Clone {
% for longhand in style_struct.longhands:
#[allow(non_snake_case)]
@@ -6211,7 +6314,7 @@ pub mod style_structs {
use super::longhands;
use std::hash::{Hash, Hasher};
- % for style_struct in STYLE_STRUCTS:
+ % for style_struct in active_style_structs():
% if style_struct.trait_name == "Font":
#[derive(Clone, HeapSizeOf, Debug)]
% else:
@@ -6327,7 +6430,7 @@ pub mod style_structs {
}
pub trait ComputedValues : Clone + Send + Sync + 'static {
- % for style_struct in STYLE_STRUCTS:
+ % for style_struct in active_style_structs():
type Concrete${style_struct.trait_name}: style_struct_traits::${style_struct.trait_name};
% endfor
@@ -6342,7 +6445,7 @@ pub trait ComputedValues : Clone + Send + Sync + 'static {
shareable: bool,
writing_mode: WritingMode,
root_font_size: Au,
- % for style_struct in STYLE_STRUCTS:
+ % for style_struct in active_style_structs():
${style_struct.ident}: Arc<Self::Concrete${style_struct.trait_name}>,
% endfor
) -> Self;
@@ -6351,7 +6454,7 @@ pub trait ComputedValues : Clone + Send + Sync + 'static {
fn do_cascade_property<F: FnOnce(&Vec<Option<CascadePropertyFn<Self>>>)>(f: F);
- % for style_struct in STYLE_STRUCTS:
+ % for style_struct in active_style_structs():
fn clone_${style_struct.trait_name_lower}(&self) ->
Arc<Self::Concrete${style_struct.trait_name}>;
fn get_${style_struct.trait_name_lower}<'a>(&'a self) ->
@@ -6369,7 +6472,7 @@ pub trait ComputedValues : Clone + Send + Sync + 'static {
#[derive(Clone, HeapSizeOf)]
pub struct ServoComputedValues {
- % for style_struct in STYLE_STRUCTS:
+ % for style_struct in active_style_structs():
${style_struct.ident}: Arc<style_structs::${style_struct.servo_struct_name}>,
% endfor
custom_properties: Option<Arc<::custom_properties::ComputedValuesMap>>,
@@ -6379,7 +6482,7 @@ pub struct ServoComputedValues {
}
impl ComputedValues for ServoComputedValues {
- % for style_struct in STYLE_STRUCTS:
+ % for style_struct in active_style_structs():
type Concrete${style_struct.trait_name} = style_structs::${style_struct.servo_struct_name};
% endfor
@@ -6390,7 +6493,7 @@ impl ComputedValues for ServoComputedValues {
shareable: bool,
writing_mode: WritingMode,
root_font_size: Au,
- % for style_struct in STYLE_STRUCTS:
+ % for style_struct in active_style_structs():
${style_struct.ident}: Arc<style_structs::${style_struct.servo_struct_name}>,
% endfor
) -> Self {
@@ -6399,7 +6502,7 @@ impl ComputedValues for ServoComputedValues {
shareable: shareable,
writing_mode: writing_mode,
root_font_size: root_font_size,
- % for style_struct in STYLE_STRUCTS:
+ % for style_struct in active_style_structs():
${style_struct.ident}: ${style_struct.ident},
% endfor
}
@@ -6411,7 +6514,7 @@ impl ComputedValues for ServoComputedValues {
CASCADE_PROPERTY.with(|x| f(x));
}
- % for style_struct in STYLE_STRUCTS:
+ % for style_struct in active_style_structs():
#[inline]
fn clone_${style_struct.trait_name_lower}(&self) ->
Arc<Self::Concrete${style_struct.trait_name}> {
@@ -6613,7 +6716,7 @@ impl ServoComputedValues {
pub fn computed_value_to_string(&self, name: &str) -> Result<String, ()> {
match name {
- % for style_struct in STYLE_STRUCTS:
+ % for style_struct in active_style_structs():
% for longhand in style_struct.longhands:
"${longhand.name}" => Ok(self.${style_struct.ident}.${longhand.ident}.to_css_string()),
% endfor
@@ -6667,7 +6770,7 @@ pub fn get_writing_mode<S: style_struct_traits::InheritedBox>(inheritedbox_style
/// The initial values for all style structs as defined by the specification.
lazy_static! {
pub static ref INITIAL_SERVO_VALUES: ServoComputedValues = ServoComputedValues {
- % for style_struct in STYLE_STRUCTS:
+ % for style_struct in active_style_structs():
${style_struct.ident}: Arc::new(style_structs::${style_struct.servo_struct_name} {
% for longhand in style_struct.longhands:
${longhand.ident}: longhands::${longhand.ident}::get_initial_value(),
@@ -6705,7 +6808,7 @@ fn cascade_with_cached_declarations<C: ComputedValues>(
shareable,
WritingMode::empty(),
parent_style.root_font_size(),
- % for style_struct in STYLE_STRUCTS:
+ % for style_struct in active_style_structs():
% if style_struct.inherited:
parent_style
% else:
@@ -6722,7 +6825,7 @@ fn cascade_with_cached_declarations<C: ComputedValues>(
// Declarations are already stored in reverse order.
for declaration in sub_list.declarations.iter() {
match *declaration {
- % for style_struct in STYLE_STRUCTS:
+ % for style_struct in active_style_structs():
% for property in style_struct.longhands:
% if property.derived_from is None:
PropertyDeclaration::${property.camel_case}(ref
@@ -6803,7 +6906,7 @@ pub type CascadePropertyFn<C /*: ComputedValues */> =
pub fn make_cascade_vec<C: ComputedValues>() -> Vec<Option<CascadePropertyFn<C>>> {
let mut result: Vec<Option<CascadePropertyFn<C>>> = Vec::new();
- % for style_struct in STYLE_STRUCTS:
+ % for style_struct in active_style_structs():
% for property in style_struct.longhands:
let discriminant;
unsafe {
@@ -6898,7 +7001,7 @@ pub fn cascade<C: ComputedValues>(
shareable,
WritingMode::empty(),
inherited_style.root_font_size(),
- % for style_struct in STYLE_STRUCTS:
+ % for style_struct in active_style_structs():
% if style_struct.inherited:
inherited_style
% else:
diff --git a/components/webdriver_server/Cargo.toml b/components/webdriver_server/Cargo.toml
index 547ae03fc8e..02b90a58fe3 100644
--- a/components/webdriver_server/Cargo.toml
+++ b/components/webdriver_server/Cargo.toml
@@ -24,7 +24,7 @@ path = "../util"
git = "https://github.com/servo/ipc-channel"
[dependencies]
-image = "0.7"
+image = "0.9"
log = "0.3.5"
hyper = "0.8"
rustc-serialize = "0.3.4"
diff --git a/ports/cef/Cargo.lock b/ports/cef/Cargo.lock
index 83b77434b68..c15817549a0 100644
--- a/ports/cef/Cargo.lock
+++ b/ports/cef/Cargo.lock
@@ -33,15 +33,6 @@ dependencies = [
]
[[package]]
-name = "advapi32-sys"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "winapi 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
name = "aho-corasick"
version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -76,6 +67,15 @@ dependencies = [
]
[[package]]
+name = "arrayvec"
+version = "0.3.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "nodrop 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "odds 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
name = "aster"
version = "0.14.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -103,10 +103,10 @@ dependencies = [
[[package]]
name = "bincode"
-version = "0.5.0"
+version = "0.5.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "byteorder 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "byteorder 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
"num 0.1.31 (registry+https://github.com/rust-lang/crates.io-index)",
"rustc-serialize 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)",
"serde 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -139,11 +139,6 @@ source = "git+https://github.com/browserhtml/browserhtml?branch=gh-pages#0ca5084
[[package]]
name = "byteorder"
-version = "0.4.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-
-[[package]]
-name = "byteorder"
version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -156,7 +151,7 @@ dependencies = [
"euclid 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)",
"gfx_traits 0.0.1",
"gleam 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
- "ipc-channel 0.2.1 (git+https://github.com/servo/ipc-channel)",
+ "ipc-channel 0.2.2 (git+https://github.com/servo/ipc-channel)",
"layers 0.2.4 (git+https://github.com/servo/rust-layers)",
"log 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
"num 0.1.31 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -176,7 +171,7 @@ dependencies = [
"gfx_traits 0.0.1",
"heapsize 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize_plugin 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
- "ipc-channel 0.2.1 (git+https://github.com/servo/ipc-channel)",
+ "ipc-channel 0.2.2 (git+https://github.com/servo/ipc-channel)",
"offscreen_gl_context 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
"plugins 0.0.1",
"serde 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -235,7 +230,7 @@ name = "cmake"
version = "0.1.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "gcc 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gcc 0.3.26 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -271,8 +266,8 @@ dependencies = [
"gfx 0.0.1",
"gfx_traits 0.0.1",
"gleam 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
- "image 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "ipc-channel 0.2.1 (git+https://github.com/servo/ipc-channel)",
+ "image 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "ipc-channel 0.2.2 (git+https://github.com/servo/ipc-channel)",
"layers 0.2.4 (git+https://github.com/servo/rust-layers)",
"layout_traits 0.0.1",
"log 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -382,7 +377,7 @@ version = "0.0.1"
dependencies = [
"devtools_traits 0.0.1",
"hyper 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "ipc-channel 0.2.1 (git+https://github.com/servo/ipc-channel)",
+ "ipc-channel 0.2.2 (git+https://github.com/servo/ipc-channel)",
"log 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
"msg 0.0.1",
"plugins 0.0.1",
@@ -401,7 +396,7 @@ dependencies = [
"heapsize 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize_plugin 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
"hyper 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "ipc-channel 0.2.1 (git+https://github.com/servo/ipc-channel)",
+ "ipc-channel 0.2.2 (git+https://github.com/servo/ipc-channel)",
"msg 0.0.1",
"plugins 0.0.1",
"serde 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -586,12 +581,8 @@ dependencies = [
[[package]]
name = "gcc"
-version = "0.3.17"
+version = "0.3.26"
source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "advapi32-sys 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "winapi 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
-]
[[package]]
name = "gdi32-sys"
@@ -623,7 +614,7 @@ dependencies = [
"harfbuzz-sys 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize_plugin 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
- "ipc-channel 0.2.1 (git+https://github.com/servo/ipc-channel)",
+ "ipc-channel 0.2.2 (git+https://github.com/servo/ipc-channel)",
"layers 0.2.4 (git+https://github.com/servo/rust-layers)",
"lazy_static 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -670,11 +661,11 @@ dependencies = [
[[package]]
name = "gif"
-version = "0.7.0"
+version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"color_quant 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "lzw 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "lzw 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -837,30 +828,31 @@ dependencies = [
"time 0.1.34 (registry+https://github.com/rust-lang/crates.io-index)",
"traitobject 0.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
"typeable 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "unicase 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "unicase 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
"url 0.5.8 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "image"
-version = "0.7.0"
+version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "byteorder 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "byteorder 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
"enum_primitive 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "gif 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gif 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
"glob 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)",
- "jpeg-decoder 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "jpeg-decoder 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
"num 0.1.31 (registry+https://github.com/rust-lang/crates.io-index)",
"png 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "immeta"
-version = "0.3.1"
+version = "0.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "byteorder 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "arrayvec 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)",
+ "byteorder 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
"num 0.1.31 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -884,11 +876,11 @@ dependencies = [
[[package]]
name = "ipc-channel"
-version = "0.2.1"
-source = "git+https://github.com/servo/ipc-channel#f85a07bdb2615e439bee7308d37266ac3dd23708"
+version = "0.2.2"
+source = "git+https://github.com/servo/ipc-channel#e43fb22c431740a9bc54ce96caebd0e67d1a0586"
dependencies = [
- "bincode 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "byteorder 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "bincode 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
+ "byteorder 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
"lazy_static 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
"rand 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -899,10 +891,10 @@ dependencies = [
[[package]]
name = "jpeg-decoder"
-version = "0.1.2"
+version = "0.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "byteorder 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "byteorder 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)",
"num 0.1.31 (registry+https://github.com/rust-lang/crates.io-index)",
"rayon 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -977,7 +969,7 @@ dependencies = [
"gfx_traits 0.0.1",
"heapsize 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize_plugin 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
- "ipc-channel 0.2.1 (git+https://github.com/servo/ipc-channel)",
+ "ipc-channel 0.2.2 (git+https://github.com/servo/ipc-channel)",
"layout_traits 0.0.1",
"libc 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1010,7 +1002,7 @@ name = "layout_traits"
version = "0.0.1"
dependencies = [
"gfx 0.0.1",
- "ipc-channel 0.2.1 (git+https://github.com/servo/ipc-channel)",
+ "ipc-channel 0.2.2 (git+https://github.com/servo/ipc-channel)",
"msg 0.0.1",
"net_traits 0.0.1",
"profile_traits 0.0.1",
@@ -1068,7 +1060,7 @@ name = "libz-sys"
version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "gcc 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gcc 0.3.26 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
"pkg-config 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -1083,7 +1075,7 @@ dependencies = [
[[package]]
name = "lzw"
-version = "0.9.0"
+version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
@@ -1152,7 +1144,7 @@ name = "miniz-sys"
version = "0.1.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "gcc 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gcc 0.3.26 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -1175,7 +1167,7 @@ dependencies = [
"heapsize 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize_plugin 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
"hyper 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "ipc-channel 0.2.1 (git+https://github.com/servo/ipc-channel)",
+ "ipc-channel 0.2.2 (git+https://github.com/servo/ipc-channel)",
"layers 0.2.4 (git+https://github.com/servo/rust-layers)",
"plugins 0.0.1",
"rustc-serialize 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1195,8 +1187,8 @@ dependencies = [
"devtools_traits 0.0.1",
"flate2 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
"hyper 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "immeta 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "ipc-channel 0.2.1 (git+https://github.com/servo/ipc-channel)",
+ "immeta 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "ipc-channel 0.2.2 (git+https://github.com/servo/ipc-channel)",
"log 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
"mime 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
"mime_guess 1.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1207,11 +1199,12 @@ dependencies = [
"rustc-serialize 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)",
"threadpool 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
"time 0.1.34 (registry+https://github.com/rust-lang/crates.io-index)",
+ "unicase 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
"url 0.5.8 (registry+https://github.com/rust-lang/crates.io-index)",
"util 0.0.1",
"uuid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
"webrender_traits 0.1.0 (git+https://github.com/servo/webrender_traits)",
- "websocket 0.16.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "websocket 0.16.2 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -1233,8 +1226,8 @@ dependencies = [
"heapsize 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize_plugin 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
"hyper 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "image 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "ipc-channel 0.2.1 (git+https://github.com/servo/ipc-channel)",
+ "image 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "ipc-channel 0.2.2 (git+https://github.com/servo/ipc-channel)",
"lazy_static 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
"msg 0.0.1",
@@ -1243,7 +1236,15 @@ dependencies = [
"serde_macros 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"url 0.5.8 (registry+https://github.com/rust-lang/crates.io-index)",
"util 0.0.1",
- "websocket 0.16.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "websocket 0.16.2 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "nodrop"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "odds 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -1292,6 +1293,11 @@ dependencies = [
]
[[package]]
+name = "odds"
+version = "0.2.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+
+[[package]]
name = "offscreen_gl_context"
version = "0.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1314,7 +1320,7 @@ version = "0.7.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"bitflags 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "gcc 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gcc 0.3.26 (registry+https://github.com/rust-lang/crates.io-index)",
"lazy_static 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
"openssl-sys 0.7.8 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1338,7 +1344,7 @@ name = "openssl-sys-extras"
version = "0.7.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "gcc 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gcc 0.3.26 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
"openssl-sys 0.7.8 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -1430,7 +1436,7 @@ name = "profile"
version = "0.0.1"
dependencies = [
"hbs-pow 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "ipc-channel 0.2.1 (git+https://github.com/servo/ipc-channel)",
+ "ipc-channel 0.2.2 (git+https://github.com/servo/ipc-channel)",
"libc 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
"plugins 0.0.1",
@@ -1445,7 +1451,7 @@ dependencies = [
name = "profile_traits"
version = "0.0.1"
dependencies = [
- "ipc-channel 0.2.1 (git+https://github.com/servo/ipc-channel)",
+ "ipc-channel 0.2.2 (git+https://github.com/servo/ipc-channel)",
"plugins 0.0.1",
"serde 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"serde_macros 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1579,8 +1585,8 @@ dependencies = [
"heapsize_plugin 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
"html5ever 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
"hyper 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "image 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "ipc-channel 0.2.1 (git+https://github.com/servo/ipc-channel)",
+ "image 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "ipc-channel 0.2.2 (git+https://github.com/servo/ipc-channel)",
"js 0.1.2 (git+https://github.com/servo/rust-mozjs)",
"libc 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1605,12 +1611,12 @@ dependencies = [
"string_cache 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)",
"style 0.0.1",
"time 0.1.34 (registry+https://github.com/rust-lang/crates.io-index)",
- "unicase 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "unicase 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
"url 0.5.8 (registry+https://github.com/rust-lang/crates.io-index)",
"util 0.0.1",
"uuid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
"webrender_traits 0.1.0 (git+https://github.com/servo/webrender_traits)",
- "websocket 0.16.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "websocket 0.16.2 (registry+https://github.com/rust-lang/crates.io-index)",
"xml5ever 0.1.1 (git+https://github.com/Ygg01/xml5ever)",
]
@@ -1625,7 +1631,7 @@ dependencies = [
"gfx_traits 0.0.1",
"heapsize 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize_plugin 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
- "ipc-channel 0.2.1 (git+https://github.com/servo/ipc-channel)",
+ "ipc-channel 0.2.2 (git+https://github.com/servo/ipc-channel)",
"libc 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
"msg 0.0.1",
"net_traits 0.0.1",
@@ -1710,7 +1716,7 @@ dependencies = [
"gfx 0.0.1",
"gleam 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
"glutin_app 0.0.1",
- "ipc-channel 0.2.1 (git+https://github.com/servo/ipc-channel)",
+ "ipc-channel 0.2.2 (git+https://github.com/servo/ipc-channel)",
"layers 0.2.4 (git+https://github.com/servo/rust-layers)",
"layout 0.0.1",
"libc 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1789,7 +1795,7 @@ dependencies = [
"user32-sys 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"wayland-client 0.5.9 (registry+https://github.com/rust-lang/crates.io-index)",
"wayland-kbd 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
- "wayland-window 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "wayland-window 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
"winapi 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
"x11-dl 2.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -1917,7 +1923,7 @@ dependencies = [
name = "task_info"
version = "0.0.1"
dependencies = [
- "gcc 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gcc 0.3.26 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -1930,12 +1936,13 @@ dependencies = [
[[package]]
name = "tempfile"
-version = "1.1.3"
+version = "2.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"kernel32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
"rand 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)",
+ "rustc_version 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
"winapi 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -1982,8 +1989,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
name = "unicase"
-version = "1.0.1"
+version = "1.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "rustc_version 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
+]
[[package]]
name = "unicode-bidi"
@@ -2063,7 +2073,7 @@ dependencies = [
"getopts 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize_plugin 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
- "ipc-channel 0.2.1 (git+https://github.com/servo/ipc-channel)",
+ "ipc-channel 0.2.2 (git+https://github.com/servo/ipc-channel)",
"js 0.1.2 (git+https://github.com/servo/rust-mozjs)",
"kernel32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
"lazy_static 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -2136,11 +2146,11 @@ dependencies = [
[[package]]
name = "wayland-window"
-version = "0.2.2"
+version = "0.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "byteorder 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "tempfile 1.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
+ "byteorder 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "tempfile 2.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"wayland-client 0.5.9 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -2161,8 +2171,8 @@ version = "0.0.1"
dependencies = [
"compositing 0.0.1",
"hyper 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "image 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "ipc-channel 0.2.1 (git+https://github.com/servo/ipc-channel)",
+ "image 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "ipc-channel 0.2.2 (git+https://github.com/servo/ipc-channel)",
"log 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
"msg 0.0.1",
"plugins 0.0.1",
@@ -2187,7 +2197,7 @@ dependencies = [
"fnv 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
"freetype 0.1.0 (git+https://github.com/servo/rust-freetype)",
"gleam 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
- "ipc-channel 0.2.1 (git+https://github.com/servo/ipc-channel)",
+ "ipc-channel 0.2.2 (git+https://github.com/servo/ipc-channel)",
"lazy_static 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
"num 0.1.31 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -2207,7 +2217,7 @@ dependencies = [
"core-graphics 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)",
"gleam 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
- "ipc-channel 0.2.1 (git+https://github.com/servo/ipc-channel)",
+ "ipc-channel 0.2.2 (git+https://github.com/servo/ipc-channel)",
"offscreen_gl_context 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
"serde 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"serde_macros 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -2215,17 +2225,17 @@ dependencies = [
[[package]]
name = "websocket"
-version = "0.16.1"
+version = "0.16.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"bitflags 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
- "byteorder 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "byteorder 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
"hyper 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
"net2 0.2.19 (registry+https://github.com/rust-lang/crates.io-index)",
"openssl 0.7.8 (registry+https://github.com/rust-lang/crates.io-index)",
"rand 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)",
"rustc-serialize 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)",
- "unicase 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "unicase 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
"url 0.5.8 (registry+https://github.com/rust-lang/crates.io-index)",
]
diff --git a/ports/geckolib/Cargo.lock b/ports/geckolib/Cargo.lock
index 9ee7610ef02..8516abbe295 100644
--- a/ports/geckolib/Cargo.lock
+++ b/ports/geckolib/Cargo.lock
@@ -41,10 +41,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
name = "bincode"
-version = "0.5.0"
+version = "0.5.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "byteorder 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "byteorder 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
"num 0.1.31 (registry+https://github.com/rust-lang/crates.io-index)",
"rustc-serialize 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)",
"serde 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -62,7 +62,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
name = "byteorder"
-version = "0.4.2"
+version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
@@ -190,11 +190,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
name = "ipc-channel"
-version = "0.2.1"
-source = "git+https://github.com/servo/ipc-channel#f85a07bdb2615e439bee7308d37266ac3dd23708"
+version = "0.2.2"
+source = "git+https://github.com/servo/ipc-channel#e43fb22c431740a9bc54ce96caebd0e67d1a0586"
dependencies = [
- "bincode 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "byteorder 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "bincode 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
+ "byteorder 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
"lazy_static 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
"rand 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -489,7 +489,7 @@ dependencies = [
"getopts 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize_plugin 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
- "ipc-channel 0.2.1 (git+https://github.com/servo/ipc-channel)",
+ "ipc-channel 0.2.2 (git+https://github.com/servo/ipc-channel)",
"kernel32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
"lazy_static 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
diff --git a/ports/gonk/Cargo.lock b/ports/gonk/Cargo.lock
index 53fc6727072..5aaedff2fa4 100644
--- a/ports/gonk/Cargo.lock
+++ b/ports/gonk/Cargo.lock
@@ -26,15 +26,6 @@ dependencies = [
]
[[package]]
-name = "advapi32-sys"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "winapi 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
name = "aho-corasick"
version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -69,6 +60,15 @@ dependencies = [
]
[[package]]
+name = "arrayvec"
+version = "0.3.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "nodrop 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "odds 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
name = "aster"
version = "0.14.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -96,10 +96,10 @@ dependencies = [
[[package]]
name = "bincode"
-version = "0.5.0"
+version = "0.5.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "byteorder 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "byteorder 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
"num 0.1.31 (registry+https://github.com/rust-lang/crates.io-index)",
"rustc-serialize 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)",
"serde 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -132,11 +132,6 @@ source = "git+https://github.com/browserhtml/browserhtml?branch=gh-pages#0ca5084
[[package]]
name = "byteorder"
-version = "0.4.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-
-[[package]]
-name = "byteorder"
version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -149,7 +144,7 @@ dependencies = [
"euclid 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)",
"gfx_traits 0.0.1",
"gleam 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
- "ipc-channel 0.2.1 (git+https://github.com/servo/ipc-channel)",
+ "ipc-channel 0.2.2 (git+https://github.com/servo/ipc-channel)",
"layers 0.2.4 (git+https://github.com/servo/rust-layers)",
"log 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
"num 0.1.31 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -169,7 +164,7 @@ dependencies = [
"gfx_traits 0.0.1",
"heapsize 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize_plugin 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
- "ipc-channel 0.2.1 (git+https://github.com/servo/ipc-channel)",
+ "ipc-channel 0.2.2 (git+https://github.com/servo/ipc-channel)",
"offscreen_gl_context 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
"plugins 0.0.1",
"serde 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -228,7 +223,7 @@ name = "cmake"
version = "0.1.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "gcc 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gcc 0.3.26 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -264,8 +259,8 @@ dependencies = [
"gfx 0.0.1",
"gfx_traits 0.0.1",
"gleam 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
- "image 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "ipc-channel 0.2.1 (git+https://github.com/servo/ipc-channel)",
+ "image 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "ipc-channel 0.2.2 (git+https://github.com/servo/ipc-channel)",
"layers 0.2.4 (git+https://github.com/servo/rust-layers)",
"layout_traits 0.0.1",
"log 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -375,7 +370,7 @@ version = "0.0.1"
dependencies = [
"devtools_traits 0.0.1",
"hyper 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "ipc-channel 0.2.1 (git+https://github.com/servo/ipc-channel)",
+ "ipc-channel 0.2.2 (git+https://github.com/servo/ipc-channel)",
"log 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
"msg 0.0.1",
"plugins 0.0.1",
@@ -394,7 +389,7 @@ dependencies = [
"heapsize 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize_plugin 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
"hyper 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "ipc-channel 0.2.1 (git+https://github.com/servo/ipc-channel)",
+ "ipc-channel 0.2.2 (git+https://github.com/servo/ipc-channel)",
"msg 0.0.1",
"plugins 0.0.1",
"serde 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -589,12 +584,8 @@ dependencies = [
[[package]]
name = "gcc"
-version = "0.3.17"
+version = "0.3.26"
source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "advapi32-sys 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "winapi 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
-]
[[package]]
name = "gdi32-sys"
@@ -626,7 +617,7 @@ dependencies = [
"harfbuzz-sys 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize_plugin 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
- "ipc-channel 0.2.1 (git+https://github.com/servo/ipc-channel)",
+ "ipc-channel 0.2.2 (git+https://github.com/servo/ipc-channel)",
"layers 0.2.4 (git+https://github.com/servo/rust-layers)",
"lazy_static 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -673,11 +664,11 @@ dependencies = [
[[package]]
name = "gif"
-version = "0.7.0"
+version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"color_quant 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "lzw 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "lzw 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -819,30 +810,31 @@ dependencies = [
"time 0.1.34 (registry+https://github.com/rust-lang/crates.io-index)",
"traitobject 0.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
"typeable 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "unicase 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "unicase 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
"url 0.5.8 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "image"
-version = "0.7.0"
+version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "byteorder 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "byteorder 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
"enum_primitive 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "gif 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gif 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
"glob 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)",
- "jpeg-decoder 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "jpeg-decoder 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
"num 0.1.31 (registry+https://github.com/rust-lang/crates.io-index)",
"png 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "immeta"
-version = "0.3.1"
+version = "0.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "byteorder 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "arrayvec 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)",
+ "byteorder 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
"num 0.1.31 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -866,11 +858,11 @@ dependencies = [
[[package]]
name = "ipc-channel"
-version = "0.2.1"
-source = "git+https://github.com/servo/ipc-channel#f85a07bdb2615e439bee7308d37266ac3dd23708"
+version = "0.2.2"
+source = "git+https://github.com/servo/ipc-channel#e43fb22c431740a9bc54ce96caebd0e67d1a0586"
dependencies = [
- "bincode 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "byteorder 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "bincode 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
+ "byteorder 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
"lazy_static 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
"rand 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -881,10 +873,10 @@ dependencies = [
[[package]]
name = "jpeg-decoder"
-version = "0.1.2"
+version = "0.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "byteorder 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "byteorder 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)",
"num 0.1.31 (registry+https://github.com/rust-lang/crates.io-index)",
"rayon 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -959,7 +951,7 @@ dependencies = [
"gfx_traits 0.0.1",
"heapsize 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize_plugin 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
- "ipc-channel 0.2.1 (git+https://github.com/servo/ipc-channel)",
+ "ipc-channel 0.2.2 (git+https://github.com/servo/ipc-channel)",
"layout_traits 0.0.1",
"libc 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -992,7 +984,7 @@ name = "layout_traits"
version = "0.0.1"
dependencies = [
"gfx 0.0.1",
- "ipc-channel 0.2.1 (git+https://github.com/servo/ipc-channel)",
+ "ipc-channel 0.2.2 (git+https://github.com/servo/ipc-channel)",
"msg 0.0.1",
"net_traits 0.0.1",
"profile_traits 0.0.1",
@@ -1050,7 +1042,7 @@ name = "libz-sys"
version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "gcc 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gcc 0.3.26 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
"pkg-config 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -1065,7 +1057,7 @@ dependencies = [
[[package]]
name = "lzw"
-version = "0.9.0"
+version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
@@ -1134,7 +1126,7 @@ name = "miniz-sys"
version = "0.1.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "gcc 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gcc 0.3.26 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -1157,7 +1149,7 @@ dependencies = [
"heapsize 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize_plugin 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
"hyper 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "ipc-channel 0.2.1 (git+https://github.com/servo/ipc-channel)",
+ "ipc-channel 0.2.2 (git+https://github.com/servo/ipc-channel)",
"layers 0.2.4 (git+https://github.com/servo/rust-layers)",
"plugins 0.0.1",
"rustc-serialize 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1177,8 +1169,8 @@ dependencies = [
"devtools_traits 0.0.1",
"flate2 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
"hyper 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "immeta 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "ipc-channel 0.2.1 (git+https://github.com/servo/ipc-channel)",
+ "immeta 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "ipc-channel 0.2.2 (git+https://github.com/servo/ipc-channel)",
"log 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
"mime 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
"mime_guess 1.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1189,11 +1181,12 @@ dependencies = [
"rustc-serialize 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)",
"threadpool 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
"time 0.1.34 (registry+https://github.com/rust-lang/crates.io-index)",
+ "unicase 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
"url 0.5.8 (registry+https://github.com/rust-lang/crates.io-index)",
"util 0.0.1",
"uuid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
"webrender_traits 0.1.0 (git+https://github.com/servo/webrender_traits)",
- "websocket 0.16.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "websocket 0.16.2 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -1215,8 +1208,8 @@ dependencies = [
"heapsize 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize_plugin 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
"hyper 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "image 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "ipc-channel 0.2.1 (git+https://github.com/servo/ipc-channel)",
+ "image 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "ipc-channel 0.2.2 (git+https://github.com/servo/ipc-channel)",
"lazy_static 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
"msg 0.0.1",
@@ -1225,7 +1218,15 @@ dependencies = [
"serde_macros 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"url 0.5.8 (registry+https://github.com/rust-lang/crates.io-index)",
"util 0.0.1",
- "websocket 0.16.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "websocket 0.16.2 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "nodrop"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "odds 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -1274,6 +1275,11 @@ dependencies = [
]
[[package]]
+name = "odds"
+version = "0.2.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+
+[[package]]
name = "offscreen_gl_context"
version = "0.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1296,7 +1302,7 @@ version = "0.7.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"bitflags 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "gcc 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gcc 0.3.26 (registry+https://github.com/rust-lang/crates.io-index)",
"lazy_static 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
"openssl-sys 0.7.8 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1320,7 +1326,7 @@ name = "openssl-sys-extras"
version = "0.7.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "gcc 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gcc 0.3.26 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
"openssl-sys 0.7.8 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -1412,7 +1418,7 @@ name = "profile"
version = "0.0.1"
dependencies = [
"hbs-pow 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "ipc-channel 0.2.1 (git+https://github.com/servo/ipc-channel)",
+ "ipc-channel 0.2.2 (git+https://github.com/servo/ipc-channel)",
"libc 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
"plugins 0.0.1",
@@ -1427,7 +1433,7 @@ dependencies = [
name = "profile_traits"
version = "0.0.1"
dependencies = [
- "ipc-channel 0.2.1 (git+https://github.com/servo/ipc-channel)",
+ "ipc-channel 0.2.2 (git+https://github.com/servo/ipc-channel)",
"plugins 0.0.1",
"serde 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"serde_macros 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1561,8 +1567,8 @@ dependencies = [
"heapsize_plugin 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
"html5ever 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
"hyper 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "image 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "ipc-channel 0.2.1 (git+https://github.com/servo/ipc-channel)",
+ "image 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "ipc-channel 0.2.2 (git+https://github.com/servo/ipc-channel)",
"js 0.1.2 (git+https://github.com/servo/rust-mozjs)",
"libc 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1587,12 +1593,12 @@ dependencies = [
"string_cache 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)",
"style 0.0.1",
"time 0.1.34 (registry+https://github.com/rust-lang/crates.io-index)",
- "unicase 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "unicase 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
"url 0.5.8 (registry+https://github.com/rust-lang/crates.io-index)",
"util 0.0.1",
"uuid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
"webrender_traits 0.1.0 (git+https://github.com/servo/webrender_traits)",
- "websocket 0.16.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "websocket 0.16.2 (registry+https://github.com/rust-lang/crates.io-index)",
"xml5ever 0.1.1 (git+https://github.com/Ygg01/xml5ever)",
]
@@ -1607,7 +1613,7 @@ dependencies = [
"gfx_traits 0.0.1",
"heapsize 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize_plugin 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
- "ipc-channel 0.2.1 (git+https://github.com/servo/ipc-channel)",
+ "ipc-channel 0.2.2 (git+https://github.com/servo/ipc-channel)",
"libc 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
"msg 0.0.1",
"net_traits 0.0.1",
@@ -1691,7 +1697,7 @@ dependencies = [
"gaol 0.0.1 (git+https://github.com/servo/gaol)",
"gfx 0.0.1",
"gleam 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
- "ipc-channel 0.2.1 (git+https://github.com/servo/ipc-channel)",
+ "ipc-channel 0.2.2 (git+https://github.com/servo/ipc-channel)",
"layers 0.2.4 (git+https://github.com/servo/rust-layers)",
"layout 0.0.1",
"libc 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1769,7 +1775,7 @@ dependencies = [
"user32-sys 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"wayland-client 0.5.9 (registry+https://github.com/rust-lang/crates.io-index)",
"wayland-kbd 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
- "wayland-window 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "wayland-window 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
"winapi 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
"x11-dl 2.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -1897,7 +1903,7 @@ dependencies = [
name = "task_info"
version = "0.0.1"
dependencies = [
- "gcc 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gcc 0.3.26 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -1910,12 +1916,13 @@ dependencies = [
[[package]]
name = "tempfile"
-version = "1.1.3"
+version = "2.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"kernel32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
"rand 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)",
+ "rustc_version 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
"winapi 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -1962,8 +1969,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
name = "unicase"
-version = "1.0.1"
+version = "1.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "rustc_version 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
+]
[[package]]
name = "unicode-bidi"
@@ -2043,7 +2053,7 @@ dependencies = [
"getopts 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize_plugin 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
- "ipc-channel 0.2.1 (git+https://github.com/servo/ipc-channel)",
+ "ipc-channel 0.2.2 (git+https://github.com/servo/ipc-channel)",
"js 0.1.2 (git+https://github.com/servo/rust-mozjs)",
"kernel32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
"lazy_static 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -2116,11 +2126,11 @@ dependencies = [
[[package]]
name = "wayland-window"
-version = "0.2.2"
+version = "0.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "byteorder 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "tempfile 1.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
+ "byteorder 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "tempfile 2.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"wayland-client 0.5.9 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -2137,7 +2147,7 @@ dependencies = [
"fnv 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
"freetype 0.1.0 (git+https://github.com/servo/rust-freetype)",
"gleam 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
- "ipc-channel 0.2.1 (git+https://github.com/servo/ipc-channel)",
+ "ipc-channel 0.2.2 (git+https://github.com/servo/ipc-channel)",
"lazy_static 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
"num 0.1.31 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -2157,7 +2167,7 @@ dependencies = [
"core-graphics 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)",
"gleam 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
- "ipc-channel 0.2.1 (git+https://github.com/servo/ipc-channel)",
+ "ipc-channel 0.2.2 (git+https://github.com/servo/ipc-channel)",
"offscreen_gl_context 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
"serde 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"serde_macros 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -2165,17 +2175,17 @@ dependencies = [
[[package]]
name = "websocket"
-version = "0.16.1"
+version = "0.16.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"bitflags 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
- "byteorder 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "byteorder 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
"hyper 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
"net2 0.2.19 (registry+https://github.com/rust-lang/crates.io-index)",
"openssl 0.7.8 (registry+https://github.com/rust-lang/crates.io-index)",
"rand 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)",
"rustc-serialize 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)",
- "unicase 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "unicase 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
"url 0.5.8 (registry+https://github.com/rust-lang/crates.io-index)",
]
diff --git a/python/tidy.py b/python/tidy.py
index 6110a9ea4eb..e12eeb33e49 100644
--- a/python/tidy.py
+++ b/python/tidy.py
@@ -69,6 +69,8 @@ ignored_dirs = [
os.path.join(".", "."),
]
+spec_base_path = "components/script/dom/"
+
def is_iter_empty(iterator):
try:
@@ -221,7 +223,7 @@ def check_lock(file_name, contents):
raise StopIteration
# package names to be neglected (as named by cargo)
- exceptions = ["bitflags", "xml-rs", "byteorder"]
+ exceptions = ["bitflags", "xml-rs"]
import toml
content = toml.loads(contents)
@@ -525,10 +527,9 @@ def check_json(filename, contents):
def check_spec(file_name, lines):
- base_path = "components/script/dom/"
- if base_path not in file_name:
+ if spec_base_path not in file_name:
raise StopIteration
- file_name = os.path.relpath(os.path.splitext(file_name)[0], base_path)
+ file_name = os.path.relpath(os.path.splitext(file_name)[0], spec_base_path)
patt = re.compile("^\s*\/\/.+")
# Pattern representing a line with a macro
diff --git a/python/tidy_self_test/speclink.rs b/python/tidy_self_test/speclink.rs
new file mode 100644
index 00000000000..6c27a70a7d0
--- /dev/null
+++ b/python/tidy_self_test/speclink.rs
@@ -0,0 +1,9 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * 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/. */
+
+impl SpecLinkMethods for SpecLink {
+ fn Test(&self) -> f32 {
+ 0
+ }
+}
diff --git a/python/tidy_self_test/tidy_self_test.py b/python/tidy_self_test/tidy_self_test.py
index d7666b58b73..e2a49f71a65 100644
--- a/python/tidy_self_test/tidy_self_test.py
+++ b/python/tidy_self_test/tidy_self_test.py
@@ -59,6 +59,11 @@ class CheckTidiness(unittest.TestCase):
self.assertEqual('use &[T] instead of &Vec<T>', errors.next()[2])
self.assertEqual('use &str instead of &String', errors.next()[2])
+ def test_spec_link(self):
+ tidy.spec_base_path = "python/tidy_self_test/"
+ errors = tidy.collect_errors_for_files(iterFile('speclink.rs'), [], [tidy.check_spec])
+ self.assertEqual('method declared in webidl is missing a comment with a specification link', errors.next()[2])
+
def test_webidl(self):
errors = tidy.collect_errors_for_files(iterFile('spec.webidl'), [tidy.check_webidl_spec], [])
self.assertEqual('No specification link found.', errors.next()[2])
diff --git a/tests/unit/net/fetch.rs b/tests/unit/net/fetch.rs
index 4b6eff5da69..b2353d33113 100644
--- a/tests/unit/net/fetch.rs
+++ b/tests/unit/net/fetch.rs
@@ -2,7 +2,8 @@
* 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 hyper::header::{AccessControlAllowHeaders, AccessControlAllowOrigin};
+use hyper::header::{AccessControlAllowCredentials, AccessControlAllowHeaders, AccessControlAllowOrigin};
+use hyper::header::{AccessControlAllowMethods, AccessControlRequestHeaders, AccessControlRequestMethod};
use hyper::header::{CacheControl, ContentLanguage, ContentType, Expires, LastModified};
use hyper::header::{Headers, HttpDate, Location, SetCookie, Pragma};
use hyper::method::Method;
@@ -16,6 +17,7 @@ use net_traits::AsyncFetchListener;
use net_traits::request::{Origin, RedirectMode, Referer, Request, RequestMode};
use net_traits::response::{CacheState, Response, ResponseBody, ResponseType};
use std::rc::Rc;
+use std::sync::atomic::{AtomicUsize, Ordering};
use std::sync::mpsc::{Sender, channel};
use std::sync::{Arc, Mutex};
use time::{self, Duration};
@@ -137,6 +139,74 @@ fn test_fetch_data() {
}
#[test]
+fn test_cors_preflight_fetch() {
+ static ACK: &'static [u8] = b"ACK";
+ let state = Arc::new(AtomicUsize::new(0));
+ let handler = move |request: HyperRequest, mut response: HyperResponse| {
+ if request.method == Method::Options && state.clone().fetch_add(1, Ordering::SeqCst) == 0 {
+ assert!(request.headers.has::<AccessControlRequestMethod>());
+ assert!(request.headers.has::<AccessControlRequestHeaders>());
+ response.headers_mut().set(AccessControlAllowOrigin::Any);
+ response.headers_mut().set(AccessControlAllowCredentials);
+ response.headers_mut().set(AccessControlAllowMethods(vec![Method::Get]));
+ } else {
+ response.headers_mut().set(AccessControlAllowOrigin::Any);
+ response.send(ACK).unwrap();
+ }
+ };
+ let (mut server, url) = make_server(handler);
+
+ let origin = Origin::Origin(UrlOrigin::UID(OpaqueOrigin::new()));
+ let mut request = Request::new(url, Some(origin), false);
+ request.referer = Referer::NoReferer;
+ request.use_cors_preflight = true;
+ request.mode = RequestMode::CORSMode;
+ let wrapped_request = Rc::new(request);
+
+ let fetch_response = fetch(wrapped_request);
+ let _ = server.close();
+
+ assert!(!fetch_response.is_network_error());
+
+ match *fetch_response.body.lock().unwrap() {
+ ResponseBody::Done(ref body) => assert_eq!(&**body, ACK),
+ _ => panic!()
+ };
+}
+
+#[test]
+fn test_cors_preflight_fetch_network_error() {
+ static ACK: &'static [u8] = b"ACK";
+ let state = Arc::new(AtomicUsize::new(0));
+ let handler = move |request: HyperRequest, mut response: HyperResponse| {
+ if request.method == Method::Options && state.clone().fetch_add(1, Ordering::SeqCst) == 0 {
+ assert!(request.headers.has::<AccessControlRequestMethod>());
+ assert!(request.headers.has::<AccessControlRequestHeaders>());
+ response.headers_mut().set(AccessControlAllowOrigin::Any);
+ response.headers_mut().set(AccessControlAllowCredentials);
+ response.headers_mut().set(AccessControlAllowMethods(vec![Method::Get]));
+ } else {
+ response.headers_mut().set(AccessControlAllowOrigin::Any);
+ response.send(ACK).unwrap();
+ }
+ };
+ let (mut server, url) = make_server(handler);
+
+ let origin = Origin::Origin(UrlOrigin::UID(OpaqueOrigin::new()));
+ let mut request = Request::new(url, Some(origin), false);
+ *request.method.borrow_mut() = Method::Extension("CHICKEN".to_owned());
+ request.referer = Referer::NoReferer;
+ request.use_cors_preflight = true;
+ request.mode = RequestMode::CORSMode;
+ let wrapped_request = Rc::new(request);
+
+ let fetch_response = fetch(wrapped_request);
+ let _ = server.close();
+
+ assert!(fetch_response.is_network_error());
+}
+
+#[test]
fn test_fetch_response_is_basic_filtered() {
static MESSAGE: &'static [u8] = b"";
@@ -342,7 +412,7 @@ fn test_fetch_with_local_urls_only() {
assert!(server_response.is_network_error());
}
-fn test_fetch_redirect_count(message: &'static [u8], redirect_cap: u32) -> Response {
+fn setup_server_and_fetch(message: &'static [u8], redirect_cap: u32) -> Response {
let handler = move |request: HyperRequest, mut response: HyperResponse| {
@@ -382,7 +452,7 @@ fn test_fetch_redirect_count_ceiling() {
// how many redirects to cause
let redirect_cap = 20;
- let fetch_response = test_fetch_redirect_count(MESSAGE, redirect_cap);
+ let fetch_response = setup_server_and_fetch(MESSAGE, redirect_cap);
assert!(!fetch_response.is_network_error());
assert_eq!(fetch_response.response_type, ResponseType::Basic);
@@ -402,7 +472,7 @@ fn test_fetch_redirect_count_failure() {
// how many redirects to cause
let redirect_cap = 21;
- let fetch_response = test_fetch_redirect_count(MESSAGE, redirect_cap);
+ let fetch_response = setup_server_and_fetch(MESSAGE, redirect_cap);
assert!(fetch_response.is_network_error());
diff --git a/tests/unit/script/Cargo.toml b/tests/unit/script/Cargo.toml
index 8aa177e966b..b34cfb238f6 100644
--- a/tests/unit/script/Cargo.toml
+++ b/tests/unit/script/Cargo.toml
@@ -11,8 +11,14 @@ doctest = false
[dependencies.msg]
path = "../../../components/msg"
+[dependencies.plugins]
+path = "../../../components/plugins"
+
[dependencies.script]
path = "../../../components/script"
[dependencies.util]
path = "../../../components/util"
+
+[dependencies]
+url = {version = "0.5.8", features = ["heap_size"]}
diff --git a/tests/unit/script/lib.rs b/tests/unit/script/lib.rs
index 8270d8542d7..2dbbd16ea7a 100644
--- a/tests/unit/script/lib.rs
+++ b/tests/unit/script/lib.rs
@@ -2,10 +2,15 @@
* 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/. */
+#![feature(plugin)]
+#![plugin(plugins)]
+
extern crate msg;
extern crate script;
+extern crate url;
extern crate util;
+#[cfg(test)] mod origin;
#[cfg(all(test, target_pointer_width = "64"))] mod size_of;
#[cfg(test)] mod textinput;
#[cfg(test)] mod dom {
diff --git a/tests/unit/script/origin.rs b/tests/unit/script/origin.rs
new file mode 100644
index 00000000000..81e5d538686
--- /dev/null
+++ b/tests/unit/script/origin.rs
@@ -0,0 +1,105 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * 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::origin::Origin;
+
+#[test]
+fn same_origin() {
+ let a = Origin::new(&url!("http://example.com/a.html"));
+ let b = Origin::new(&url!("http://example.com/b.html"));
+ assert!(a.same_origin(&b));
+ assert_eq!(a.is_scheme_host_port_tuple(), true);
+}
+
+#[test]
+fn identical_origin() {
+ let a = Origin::new(&url!("http://example.com/a.html"));
+ assert!(a.same_origin(&a));
+}
+
+#[test]
+fn cross_origin() {
+ let a = Origin::new(&url!("http://example.com/a.html"));
+ let b = Origin::new(&url!("http://example.org/b.html"));
+ assert!(!a.same_origin(&b));
+}
+
+#[test]
+fn alias_same_origin() {
+ let a = Origin::new(&url!("http://example.com/a.html"));
+ let b = Origin::new(&url!("http://example.com/b.html"));
+ let c = b.alias();
+ assert!(a.same_origin(&c));
+ assert!(b.same_origin(&b));
+ assert!(c.same_origin(&b));
+ assert_eq!(c.is_scheme_host_port_tuple(), true);
+}
+
+#[test]
+fn alias_cross_origin() {
+ let a = Origin::new(&url!("http://example.com/a.html"));
+ let b = Origin::new(&url!("http://example.org/b.html"));
+ let c = b.alias();
+ assert!(!a.same_origin(&c));
+ assert!(b.same_origin(&c));
+ assert!(c.same_origin(&c));
+}
+
+#[test]
+fn alias_update_same_origin() {
+ let a = Origin::new(&url!("http://example.com/a.html"));
+ let b = Origin::new(&url!("http://example.org/b.html"));
+ let c = b.alias();
+ b.set(url!("http://example.com/c.html").origin());
+ assert!(a.same_origin(&c));
+ assert!(b.same_origin(&c));
+ assert!(c.same_origin(&c));
+}
+
+#[test]
+fn alias_update_cross_origin() {
+ let a = Origin::new(&url!("http://example.com/a.html"));
+ let b = Origin::new(&url!("http://example.com/b.html"));
+ let c = b.alias();
+ b.set(url!("http://example.org/c.html").origin());
+ assert!(!a.same_origin(&c));
+ assert!(b.same_origin(&c));
+ assert!(c.same_origin(&c));
+}
+
+#[test]
+fn alias_chain() {
+ let a = Origin::new(&url!("http://example.com/a.html"));
+ let b = Origin::new(&url!("http://example.com/b.html"));
+ let c = b.copy();
+ let d = c.alias();
+ let e = d.alias();
+ assert!(a.same_origin(&e));
+ assert!(b.same_origin(&e));
+ assert!(c.same_origin(&e));
+ assert!(d.same_origin(&e));
+ assert!(e.same_origin(&e));
+ c.set(url!("http://example.org/c.html").origin());
+ assert!(a.same_origin(&b));
+ assert!(!b.same_origin(&c));
+ assert!(c.same_origin(&d));
+ assert!(d.same_origin(&e));
+ assert!(!e.same_origin(&a));
+}
+
+#[test]
+fn opaque() {
+ let a = Origin::opaque_identifier();
+ let b = Origin::opaque_identifier();
+ assert!(!a.same_origin(&b));
+ assert_eq!(a.is_scheme_host_port_tuple(), false);
+}
+
+#[test]
+fn opaque_clone() {
+ let a = Origin::opaque_identifier();
+ let b = a.alias();
+ assert!(a.same_origin(&b));
+ assert_eq!(a.is_scheme_host_port_tuple(), false);
+}
diff --git a/tests/wpt/metadata-css/css21_dev/html4/max-width-110.htm.ini b/tests/wpt/metadata-css/css21_dev/html4/max-width-110.htm.ini
deleted file mode 100644
index bbc6b87885f..00000000000
--- a/tests/wpt/metadata-css/css21_dev/html4/max-width-110.htm.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[max-width-110.htm]
- type: reftest
- expected: FAIL
diff --git a/tests/wpt/metadata/XMLHttpRequest/open-url-base-inserted.htm.ini b/tests/wpt/metadata/XMLHttpRequest/open-url-base-inserted.htm.ini
deleted file mode 100644
index 9e24c9d78d0..00000000000
--- a/tests/wpt/metadata/XMLHttpRequest/open-url-base-inserted.htm.ini
+++ /dev/null
@@ -1,5 +0,0 @@
-[open-url-base-inserted.htm]
- type: testharness
- [XMLHttpRequest: open() resolving URLs - insert ]
- expected: FAIL
-
diff --git a/tests/wpt/metadata/html/browsers/origin/relaxing-the-same-origin-restriction/document_domain.html.ini b/tests/wpt/metadata/html/browsers/origin/relaxing-the-same-origin-restriction/document_domain.html.ini
deleted file mode 100644
index 4adc32981f0..00000000000
--- a/tests/wpt/metadata/html/browsers/origin/relaxing-the-same-origin-restriction/document_domain.html.ini
+++ /dev/null
@@ -1,5 +0,0 @@
-[document_domain.html]
- type: testharness
- [new document]
- expected: FAIL
-
diff --git a/tests/wpt/metadata/html/dom/interfaces.html.ini b/tests/wpt/metadata/html/dom/interfaces.html.ini
index 45ee46c1a54..5af57f14c88 100644
--- a/tests/wpt/metadata/html/dom/interfaces.html.ini
+++ b/tests/wpt/metadata/html/dom/interfaces.html.ini
@@ -1977,16 +1977,13 @@
[HTMLHtmlElement interface: document.createElement("html") must inherit property "version" with the proper type (0)]
expected: FAIL
- [HTMLBaseElement interface: attribute href]
- expected: FAIL
-
[HTMLBaseElement interface: attribute target]
expected: FAIL
- [HTMLBaseElement interface: document.createElement("base") must inherit property "href" with the proper type (0)]
+ [HTMLBaseElement interface: document.createElement("base") must inherit property "target" with the proper type (1)]
expected: FAIL
- [HTMLBaseElement interface: document.createElement("base") must inherit property "target" with the proper type (1)]
+ [HTMLLinkElement interface: attribute crossOrigin]
expected: FAIL
[HTMLLinkElement interface: attribute sizes]
@@ -4311,9 +4308,6 @@
[HTMLTableSectionElement interface: document.createElement("tfoot") must inherit property "vAlign" with the proper type (6)]
expected: FAIL
- [HTMLTableRowElement interface: attribute sectionRowIndex]
- expected: FAIL
-
[HTMLTableRowElement interface: attribute align]
expected: FAIL
@@ -4326,9 +4320,6 @@
[HTMLTableRowElement interface: attribute vAlign]
expected: FAIL
- [HTMLTableRowElement interface: document.createElement("tr") must inherit property "sectionRowIndex" with the proper type (1)]
- expected: FAIL
-
[HTMLTableRowElement interface: document.createElement("tr") must inherit property "align" with the proper type (5)]
expected: FAIL
@@ -8898,6 +8889,3 @@
[Document interface: new Document() must inherit property "onwaiting" with the proper type (156)]
expected: FAIL
- [HTMLLinkElement interface: attribute crossOrigin]
- expected: FAIL
-
diff --git a/tests/wpt/metadata/html/semantics/document-metadata/the-base-element/base_href_empty.html.ini b/tests/wpt/metadata/html/semantics/document-metadata/the-base-element/base_href_empty.html.ini
deleted file mode 100644
index 68bff358e19..00000000000
--- a/tests/wpt/metadata/html/semantics/document-metadata/the-base-element/base_href_empty.html.ini
+++ /dev/null
@@ -1,8 +0,0 @@
-[base_href_empty.html]
- type: testharness
- [The value of the href attribute must be the document's address if it is empty]
- expected: FAIL
-
- [The src attribute of the img element must relative to document's address]
- expected: FAIL
-
diff --git a/tests/wpt/metadata/html/semantics/document-metadata/the-base-element/base_href_specified.sub.html.ini b/tests/wpt/metadata/html/semantics/document-metadata/the-base-element/base_href_specified.sub.html.ini
deleted file mode 100644
index 4bf60923372..00000000000
--- a/tests/wpt/metadata/html/semantics/document-metadata/the-base-element/base_href_specified.sub.html.ini
+++ /dev/null
@@ -1,5 +0,0 @@
-[base_href_specified.sub.html]
- type: testharness
- [The href attribute of the base element is specified]
- expected: FAIL
-
diff --git a/tests/wpt/metadata/html/semantics/document-metadata/the-base-element/base_href_unspecified.html.ini b/tests/wpt/metadata/html/semantics/document-metadata/the-base-element/base_href_unspecified.html.ini
deleted file mode 100644
index b782c6c77c4..00000000000
--- a/tests/wpt/metadata/html/semantics/document-metadata/the-base-element/base_href_unspecified.html.ini
+++ /dev/null
@@ -1,8 +0,0 @@
-[base_href_unspecified.html]
- type: testharness
- [The value of the href attribute must be the document's address if it is unspecified]
- expected: FAIL
-
- [The src attribute of the img element must relative to document's address]
- expected: FAIL
-
diff --git a/tests/wpt/metadata/html/semantics/tabular-data/the-tr-element/sectionRowIndex.html.ini b/tests/wpt/metadata/html/semantics/tabular-data/the-tr-element/sectionRowIndex.html.ini
deleted file mode 100644
index 11bf47c819b..00000000000
--- a/tests/wpt/metadata/html/semantics/tabular-data/the-tr-element/sectionRowIndex.html.ini
+++ /dev/null
@@ -1,59 +0,0 @@
-[sectionRowIndex.html]
- type: testharness
- [Row in thead in HTML]
- expected: FAIL
-
- [Row in implicit tbody in HTML]
- expected: FAIL
-
- [Other row in implicit tbody in HTML]
- expected: FAIL
-
- [Row in explicit tbody in HTML]
- expected: FAIL
-
- [Row in tfoot in HTML]
- expected: FAIL
-
- [Row in thead in nested table in HTML]
- expected: FAIL
-
- [Row in implicit tbody in nested table in HTML]
- expected: FAIL
-
- [Row in explicit tbody in nested table in HTML]
- expected: FAIL
-
- [Row in script-created table]
- expected: FAIL
-
- [Row in script-created div in table]
- expected: FAIL
-
- [Row in script-created thead in table]
- expected: FAIL
-
- [Row in script-created tbody in table]
- expected: FAIL
-
- [Row in script-created tfoot in table]
- expected: FAIL
-
- [Row in script-created tr in tbody in table]
- expected: FAIL
-
- [Row in script-created td in tr in tbody in table]
- expected: FAIL
-
- [Row in script-created nested table]
- expected: FAIL
-
- [Row in script-created thead in nested table]
- expected: FAIL
-
- [Row in script-created tbody in nested table]
- expected: FAIL
-
- [Row in script-created tfoot in nested table]
- expected: FAIL
-
diff --git a/tests/wpt/mozilla/meta/MANIFEST.json b/tests/wpt/mozilla/meta/MANIFEST.json
index 25c5cd18688..df6a6e7ad41 100644
--- a/tests/wpt/mozilla/meta/MANIFEST.json
+++ b/tests/wpt/mozilla/meta/MANIFEST.json
@@ -3179,6 +3179,54 @@
"url": "/_mozilla/css/marker_block_direction_placement_a.html"
}
],
+ "css/max_inline_block_size.html": [
+ {
+ "path": "css/max_inline_block_size.html",
+ "references": [
+ [
+ "/_mozilla/css/max_inline_block_size_ref.html",
+ "=="
+ ]
+ ],
+ "url": "/_mozilla/css/max_inline_block_size.html"
+ }
+ ],
+ "css/max_inline_block_size_canvas.html": [
+ {
+ "path": "css/max_inline_block_size_canvas.html",
+ "references": [
+ [
+ "/_mozilla/css/max_inline_block_size_ref.html",
+ "=="
+ ]
+ ],
+ "url": "/_mozilla/css/max_inline_block_size_canvas.html"
+ }
+ ],
+ "css/max_inline_block_size_image.html": [
+ {
+ "path": "css/max_inline_block_size_image.html",
+ "references": [
+ [
+ "/_mozilla/css/max_inline_block_size_ref.html",
+ "=="
+ ]
+ ],
+ "url": "/_mozilla/css/max_inline_block_size_image.html"
+ }
+ ],
+ "css/max_inline_block_size_ref.html": [
+ {
+ "path": "css/max_inline_block_size_ref.html",
+ "references": [
+ [
+ "/_mozilla/css/max_inline_block_size_ref.html",
+ "=="
+ ]
+ ],
+ "url": "/_mozilla/css/max_inline_block_size_ref.html"
+ }
+ ],
"css/max_width_float_simple_a.html": [
{
"path": "css/max_width_float_simple_a.html",
@@ -9709,6 +9757,54 @@
"url": "/_mozilla/css/marker_block_direction_placement_a.html"
}
],
+ "css/max_inline_block_size.html": [
+ {
+ "path": "css/max_inline_block_size.html",
+ "references": [
+ [
+ "/_mozilla/css/max_inline_block_size_ref.html",
+ "=="
+ ]
+ ],
+ "url": "/_mozilla/css/max_inline_block_size.html"
+ }
+ ],
+ "css/max_inline_block_size_canvas.html": [
+ {
+ "path": "css/max_inline_block_size_canvas.html",
+ "references": [
+ [
+ "/_mozilla/css/max_inline_block_size_ref.html",
+ "=="
+ ]
+ ],
+ "url": "/_mozilla/css/max_inline_block_size_canvas.html"
+ }
+ ],
+ "css/max_inline_block_size_image.html": [
+ {
+ "path": "css/max_inline_block_size_image.html",
+ "references": [
+ [
+ "/_mozilla/css/max_inline_block_size_ref.html",
+ "=="
+ ]
+ ],
+ "url": "/_mozilla/css/max_inline_block_size_image.html"
+ }
+ ],
+ "css/max_inline_block_size_ref.html": [
+ {
+ "path": "css/max_inline_block_size_ref.html",
+ "references": [
+ [
+ "/_mozilla/css/max_inline_block_size_ref.html",
+ "=="
+ ]
+ ],
+ "url": "/_mozilla/css/max_inline_block_size_ref.html"
+ }
+ ],
"css/max_width_float_simple_a.html": [
{
"path": "css/max_width_float_simple_a.html",
diff --git a/tests/wpt/mozilla/tests/css/250x250_green.png b/tests/wpt/mozilla/tests/css/250x250_green.png
new file mode 100644
index 00000000000..586ef3d69d6
--- /dev/null
+++ b/tests/wpt/mozilla/tests/css/250x250_green.png
Binary files differ
diff --git a/tests/wpt/mozilla/tests/css/max_inline_block_size.html b/tests/wpt/mozilla/tests/css/max_inline_block_size.html
new file mode 100644
index 00000000000..f0f23893143
--- /dev/null
+++ b/tests/wpt/mozilla/tests/css/max_inline_block_size.html
@@ -0,0 +1,21 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>Max inline-block size inside another inline-block element</title>
+<link rel="match" href="max_inline_block_size_ref.html">
+<style>
+html, body { margin: 0; padding: 0; }
+
+div { display: inline-block; }
+
+#a {
+ background: red;
+}
+
+#b {
+ background: rgb(0, 255, 0);
+ width: 500px;
+ max-width: 250px;
+ height: 250px;
+}
+</style>
+<div id="a"><div id="b"></div></div>
diff --git a/tests/wpt/mozilla/tests/css/max_inline_block_size_canvas.html b/tests/wpt/mozilla/tests/css/max_inline_block_size_canvas.html
new file mode 100644
index 00000000000..48cd896a2b7
--- /dev/null
+++ b/tests/wpt/mozilla/tests/css/max_inline_block_size_canvas.html
@@ -0,0 +1,24 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>Max inline-block size inside another inline-block element</title>
+<link rel="match" href="max_inline_block_size_ref.html">
+<style>
+html, body { margin: 0; padding: 0; }
+
+div, canvas { display: inline-block; }
+
+#a {
+ background: red;
+}
+
+#c {
+ max-width: 250px;
+ height: 250px;
+}
+</style>
+<div id="a"><canvas width="500" height="250" id="c"></canvas></div>
+<script>
+ var c = document.getElementById("c").getContext("2d");
+ c.fillStyle = "rgb(0, 255, 0)";
+ c.fillRect(0, 0, c.canvas.width, c.canvas.height);
+</script>
diff --git a/tests/wpt/mozilla/tests/css/max_inline_block_size_image.html b/tests/wpt/mozilla/tests/css/max_inline_block_size_image.html
new file mode 100644
index 00000000000..283bbd43256
--- /dev/null
+++ b/tests/wpt/mozilla/tests/css/max_inline_block_size_image.html
@@ -0,0 +1,18 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>Max inline-block size inside another inline-block element</title>
+<link rel="match" href="max_inline_block_size_ref.html">
+<style>
+html, body { margin: 0; padding: 0; }
+
+div, img { display: inline-block; }
+
+#a {
+ background: red;
+}
+
+#b {
+ max-width: 250px;
+}
+</style>
+<div id="a"><img id="b" width="500" height="250" src="250x250_green.png"></div>
diff --git a/tests/wpt/mozilla/tests/css/max_inline_block_size_ref.html b/tests/wpt/mozilla/tests/css/max_inline_block_size_ref.html
new file mode 100644
index 00000000000..7fa1370faf7
--- /dev/null
+++ b/tests/wpt/mozilla/tests/css/max_inline_block_size_ref.html
@@ -0,0 +1,20 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>Max inline-block size inside another inline-block element</title>
+<link rel="match" href="max_inline_block_size_ref.html">
+<style>
+html, body { margin: 0; padding: 0; }
+
+div { display: inline-block; }
+
+#a {
+ background: red;
+}
+
+#b {
+ background: rgb(0, 255, 0);
+ width: 250px;
+ height: 250px;
+}
+</style>
+<div id="a"><div id="b"></div></div>