mirror of
https://github.com/servo/servo.git
synced 2025-07-22 23:03:42 +01:00
Merge layout and layout_tests
This commit is contained in:
parent
c2ed7c9632
commit
a311e0f569
8 changed files with 42 additions and 54 deletions
9
Cargo.lock
generated
9
Cargo.lock
generated
|
@ -1483,6 +1483,7 @@ dependencies = [
|
||||||
"servo_config 0.0.1",
|
"servo_config 0.0.1",
|
||||||
"servo_geometry 0.0.1",
|
"servo_geometry 0.0.1",
|
||||||
"servo_url 0.0.1",
|
"servo_url 0.0.1",
|
||||||
|
"size_of_test 0.0.1",
|
||||||
"smallvec 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"smallvec 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"style 0.0.1",
|
"style 0.0.1",
|
||||||
"style_traits 0.0.1",
|
"style_traits 0.0.1",
|
||||||
|
@ -1491,14 +1492,6 @@ dependencies = [
|
||||||
"webrender_api 0.56.1 (git+https://github.com/servo/webrender)",
|
"webrender_api 0.56.1 (git+https://github.com/servo/webrender)",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "layout_tests"
|
|
||||||
version = "0.0.1"
|
|
||||||
dependencies = [
|
|
||||||
"layout 0.0.1",
|
|
||||||
"size_of_test 0.0.1",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "layout_thread"
|
name = "layout_thread"
|
||||||
version = "0.0.1"
|
version = "0.0.1"
|
||||||
|
|
|
@ -8,6 +8,8 @@ publish = false
|
||||||
[lib]
|
[lib]
|
||||||
name = "layout"
|
name = "layout"
|
||||||
path = "lib.rs"
|
path = "lib.rs"
|
||||||
|
test = false
|
||||||
|
doctest = false
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
app_units = "0.6.1"
|
app_units = "0.6.1"
|
||||||
|
@ -46,3 +48,6 @@ style_traits = {path = "../style_traits"}
|
||||||
unicode-bidi = {version = "0.3", features = ["with_serde"]}
|
unicode-bidi = {version = "0.3", features = ["with_serde"]}
|
||||||
unicode-script = {version = "0.1", features = ["harfbuzz"]}
|
unicode-script = {version = "0.1", features = ["harfbuzz"]}
|
||||||
webrender_api = {git = "https://github.com/servo/webrender", features = ["ipc"]}
|
webrender_api = {git = "https://github.com/servo/webrender", features = ["ipc"]}
|
||||||
|
|
||||||
|
[dev-dependencies]
|
||||||
|
size_of_test = {path = "../size_of_test"}
|
||||||
|
|
|
@ -140,22 +140,22 @@ pub struct InlineFragmentsConstructionResult {
|
||||||
///
|
///
|
||||||
/// The resulting `ConstructionItem` for the outer `span` will be:
|
/// The resulting `ConstructionItem` for the outer `span` will be:
|
||||||
///
|
///
|
||||||
/// ```ignore
|
/// ```rust,ignore
|
||||||
/// ConstructionItem::InlineFragments(
|
/// ConstructionItem::InlineFragments(
|
||||||
/// InlineFragmentsConstructionResult{
|
/// InlineFragmentsConstructionResult {
|
||||||
/// splits: linked_list![
|
/// splits: linked_list![
|
||||||
/// InlineBlockSplit{
|
/// InlineBlockSplit {
|
||||||
/// predecessors: IntermediateInlineFragments{
|
/// predecessors: IntermediateInlineFragments {
|
||||||
/// fragments: linked_list![A],
|
/// fragments: linked_list![A],
|
||||||
/// absolute_descendents: AbsoluteDescendents{
|
/// absolute_descendents: AbsoluteDescendents {
|
||||||
/// descendant_links: vec![]
|
/// descendant_links: vec![]
|
||||||
/// }
|
/// },
|
||||||
/// },
|
/// },
|
||||||
/// flow: B
|
/// flow: B,
|
||||||
/// }
|
/// }
|
||||||
/// ],
|
/// ],
|
||||||
/// fragments: linked_list![C],
|
/// fragments: linked_list![C],
|
||||||
/// }
|
/// },
|
||||||
/// )
|
/// )
|
||||||
/// ```
|
/// ```
|
||||||
#[derive(Clone)]
|
#[derive(Clone)]
|
||||||
|
|
|
@ -552,11 +552,13 @@ pub trait MutableOwnedFlowUtils {
|
||||||
/// Sets the flow as the containing block for all absolute descendants that have been marked
|
/// Sets the flow as the containing block for all absolute descendants that have been marked
|
||||||
/// as having reached their containing block. This is needed in order to handle cases like:
|
/// as having reached their containing block. This is needed in order to handle cases like:
|
||||||
///
|
///
|
||||||
/// <div>
|
/// ```html
|
||||||
/// <span style="position: relative">
|
/// <div>
|
||||||
/// <span style="position: absolute; ..."></span>
|
/// <span style="position: relative">
|
||||||
/// </span>
|
/// <span style="position: absolute; ..."></span>
|
||||||
/// </div>
|
/// </span>
|
||||||
|
/// </div>
|
||||||
|
/// ```
|
||||||
fn take_applicable_absolute_descendants(&mut self,
|
fn take_applicable_absolute_descendants(&mut self,
|
||||||
absolute_descendants: &mut AbsoluteDescendants);
|
absolute_descendants: &mut AbsoluteDescendants);
|
||||||
}
|
}
|
||||||
|
@ -742,12 +744,14 @@ pub struct AbsoluteDescendantInfo {
|
||||||
/// Whether the absolute descendant has reached its containing block. This exists so that we
|
/// Whether the absolute descendant has reached its containing block. This exists so that we
|
||||||
/// can handle cases like the following:
|
/// can handle cases like the following:
|
||||||
///
|
///
|
||||||
/// <div>
|
/// ```html
|
||||||
/// <span id=a style="position: absolute; ...">foo</span>
|
/// <div>
|
||||||
/// <span style="position: relative">
|
/// <span id=a style="position: absolute; ...">foo</span>
|
||||||
/// <span id=b style="position: absolute; ...">bar</span>
|
/// <span style="position: relative">
|
||||||
/// </span>
|
/// <span id=b style="position: absolute; ...">bar</span>
|
||||||
/// </div>
|
/// </span>
|
||||||
|
/// </div>
|
||||||
|
/// ```
|
||||||
///
|
///
|
||||||
/// When we go to create the `InlineFlow` for the outer `div`, our absolute descendants will
|
/// When we go to create the `InlineFlow` for the outer `div`, our absolute descendants will
|
||||||
/// be `a` and `b`. At this point, we need a way to distinguish between the two, because the
|
/// be `a` and `b`. At this point, we need a way to distinguish between the two, because the
|
||||||
|
@ -1343,11 +1347,13 @@ impl MutableOwnedFlowUtils for FlowRef {
|
||||||
/// Sets the flow as the containing block for all absolute descendants that have been marked
|
/// Sets the flow as the containing block for all absolute descendants that have been marked
|
||||||
/// as having reached their containing block. This is needed in order to handle cases like:
|
/// as having reached their containing block. This is needed in order to handle cases like:
|
||||||
///
|
///
|
||||||
/// <div>
|
/// ```html
|
||||||
/// <span style="position: relative">
|
/// <div>
|
||||||
/// <span style="position: absolute; ..."></span>
|
/// <span style="position: relative">
|
||||||
/// </span>
|
/// <span style="position: absolute; ..."></span>
|
||||||
/// </div>
|
/// </span>
|
||||||
|
/// </div>
|
||||||
|
/// ```
|
||||||
fn take_applicable_absolute_descendants(&mut self,
|
fn take_applicable_absolute_descendants(&mut self,
|
||||||
absolute_descendants: &mut AbsoluteDescendants) {
|
absolute_descendants: &mut AbsoluteDescendants) {
|
||||||
let mut applicable_absolute_descendants = AbsoluteDescendants::new();
|
let mut applicable_absolute_descendants = AbsoluteDescendants::new();
|
||||||
|
|
|
@ -2,6 +2,11 @@
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* 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/. */
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||||
|
|
||||||
|
#![cfg(target_pointer_width = "64")]
|
||||||
|
|
||||||
|
extern crate layout;
|
||||||
|
#[macro_use] extern crate size_of_test;
|
||||||
|
|
||||||
use layout::Fragment;
|
use layout::Fragment;
|
||||||
use layout::SpecificFragmentInfo;
|
use layout::SpecificFragmentInfo;
|
||||||
|
|
|
@ -231,7 +231,7 @@ class MachCommands(CommandBase):
|
||||||
else:
|
else:
|
||||||
test_patterns.append(test)
|
test_patterns.append(test)
|
||||||
|
|
||||||
self_contained_tests = ["gfx", "msg", "selectors"]
|
self_contained_tests = ["gfx", "layout", "msg", "selectors"]
|
||||||
if not packages:
|
if not packages:
|
||||||
packages = set(os.listdir(path.join(self.context.topdir, "tests", "unit"))) - set(['.DS_Store'])
|
packages = set(os.listdir(path.join(self.context.topdir, "tests", "unit"))) - set(['.DS_Store'])
|
||||||
packages |= set(self_contained_tests)
|
packages |= set(self_contained_tests)
|
||||||
|
|
|
@ -1,14 +0,0 @@
|
||||||
[package]
|
|
||||||
name = "layout_tests"
|
|
||||||
version = "0.0.1"
|
|
||||||
authors = ["The Servo Project Developers"]
|
|
||||||
license = "MPL-2.0"
|
|
||||||
|
|
||||||
[lib]
|
|
||||||
name = "layout_tests"
|
|
||||||
path = "lib.rs"
|
|
||||||
doctest = false
|
|
||||||
|
|
||||||
[dependencies]
|
|
||||||
layout = {path = "../../../components/layout"}
|
|
||||||
size_of_test = {path = "../../../components/size_of_test"}
|
|
|
@ -1,7 +0,0 @@
|
||||||
/* 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/. */
|
|
||||||
|
|
||||||
#[cfg(all(test, target_pointer_width = "64"))] extern crate layout;
|
|
||||||
#[cfg(all(test, target_pointer_width = "64"))] #[macro_use] extern crate size_of_test;
|
|
||||||
#[cfg(all(test, target_pointer_width = "64"))] mod size_of;
|
|
Loading…
Add table
Add a link
Reference in a new issue