Commit graph

810 commits

Author SHA1 Message Date
bors-servo
a409699a0b Auto merge of #6796 - glennw:transform-translate-fix, r=pcwalton
Change transforms to use LengthOrPercentage.

This simplifies an upcoming PR to support serializing transform values for css style declarations.

Related to issue #6643.

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/6796)
<!-- Reviewable:end -->
2015-07-28 20:40:57 -06:00
bors-servo
0b447651e4 Auto merge of #6794 - Ms2ger:StyledNode, r=pcwalton
Remove StyledNode.



<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/6794)
<!-- Reviewable:end -->
2015-07-28 17:26:42 -06:00
bors-servo
e0bd80f807 Auto merge of #6662 - tschneidereit:client-geometry, r=glennw,pcwatson
Implement Element.client{Top,Left,Width,Height}

This isn't done, but contains a working implementation of at least `clientTop`. Feedback would be much appreciated: it's probably far from ideal.

Implementing `clientLeft` is straight-forward, I think, but `clientWidth` and `clientHeight` require accessing the `border_box` - and I don't know how that works, yet.

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/6662)
<!-- Reviewable:end -->
2015-07-27 20:45:05 -06:00
Glenn Watson
c27388cb81 Change transforms to use LengthOrPercentage.
This simplifies an upcoming PR to support serializing transform values for css style declarations.

Related to issue #6643.
2015-07-28 09:42:05 +10:00
Ms2ger
cf793a8813 Inline ThreadSafeLayoutNode::get_style. 2015-07-27 19:57:38 +02:00
Ms2ger
3984e39011 Replace the StyledNode trait with inherent methods. 2015-07-27 19:57:33 +02:00
Ms2ger
760f5c70c5 Remove unused StyledNode::has_style method. 2015-07-27 15:57:26 +02:00
Patrick Walton
82b53d83ff script: Make the ImageCacheTask use IPC.
This necessitated getting rid of the boxed trait object that was being
be passed between the script task and the image cache task.
2015-07-26 23:07:44 -07:00
Patrick Walton
bb99b2f3c8 script: Make most of 2D canvas and WebGL run over IPC.
To actually make the multiprocess communication work, we'll need to
reroute the task creation to the pipeline or the compositor. But this
works as a first step.
2015-07-25 00:50:12 -07:00
bors-servo
886c08c393 Auto merge of #6712 - Ms2ger:traversal, r=pcwalton
Cleanup ParallelPostorderFlowTraversal.



<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/6712)
<!-- Reviewable:end -->
2015-07-24 20:50:55 -06:00
Patrick Walton
f10c076180 profile: Make the time and memory profilers run over IPC.
Uses the `Router` abstraction inside `ipc-channel` to avoid spawning new
threads.
2015-07-24 17:02:17 -07:00
Patrick Walton
626974994a canvas: Move to shared memory for images and canvas backing stores.
The idea here is to land this before making images and canvas IPC-safe,
because this will shake out bugs relating to the shared memory. There
are currently test timeouts that are preventing multiprocess images and
canvas from landing, and I believe those are due to the inefficiency of
sending large amounts of data in the unoptimized builds we test with. By
moving to shared memory, this should drastically reduce the number of
copies and `serde` serialization.

Under the hood, this uses Mach OOL messages on Mac and temporary
memory-mapped files on Linux.
2015-07-24 16:14:24 -07:00
Matt Brubeck
dfac8ce4a1 Basic support for bidirectional text 2015-07-23 20:05:55 -07:00
bors-servo
f44d75e5b2 Auto merge of #6715 - Ms2ger:layoutelement, r=jdm
Implement more methods on LayoutJS.



<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/6715)
<!-- Reviewable:end -->
2015-07-23 12:40:52 -06:00
Ms2ger
487eef88e3 Move the state getters to LayoutElementHelpers. 2015-07-23 20:30:59 +02:00
Ms2ger
849eb7837a Move the flag getters to LayoutNodeHelpers. 2015-07-23 20:13:06 +02:00
Ms2ger
14fbfa6aea Remove unused implementation of ParallelPostorderFlowTraversal for BubbleISizes. 2015-07-23 19:30:43 +02:00
Ms2ger
a18dea6578 Pass the SharedLayoutContext to FlowTraversalFunctions directly. 2015-07-23 19:30:26 +02:00
Ms2ger
17a9f8507e Remove the unused proxy argument to ParallelPostorderFlowTraversal::run_parallel. 2015-07-23 19:29:58 +02:00
Simon Sapin
055a1c5cee Update rust-selectors
Update for https://github.com/servo/rust-selectors/pull/37
2015-07-23 18:53:57 +02:00
bors-servo
37a1e22515 Auto merge of #6698 - Ms2ger:layoutelement, r=jdm
Implement some methods on LayoutJS<Element>.

Part of my long-term plan to stop exposing `unsafe_get()` outside the script crate.

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/6698)
<!-- Reviewable:end -->
2015-07-22 21:10:04 -06:00
Ms2ger
751a367eb9 Don't call type_id_for_layout directly in LayoutElement::is_link. 2015-07-22 18:29:38 +02:00
Ms2ger
9cc1e017ee Move local_name and namespace to LayoutJS<Element>. 2015-07-22 18:28:17 +02:00
Ms2ger
23c679d55a Implement style_attribute() on LayoutJS<Element>. 2015-07-22 17:27:23 +02:00
Bogdan Cuza
681b11c08b Fix #6680 2015-07-22 16:45:43 +03:00
Corey Farwell
b1b03a32db Upgrade rust-selectors, pass ':empty' tests
https://github.com/servo/rust-selectors/pull/36
2015-07-22 18:27:33 +07:00
Ms2ger
94e1d4d34c Don't call mutate_layout_data in get_{before,after}_pseudo.
We don't mutate anything.
2015-07-21 22:58:16 +02:00
Till Schneidereit
126938a963 Address review comments 2015-07-21 22:56:26 +02:00
Ms2ger
093204a224 Replace get_{before,after}_display by get_{before,after}_pseudo. 2015-07-21 22:27:40 +02:00
Ms2ger
2e6a723970 Merge has_{before,after}_pseudo into get_{before,after}_display. 2015-07-21 22:27:38 +02:00
Ms2ger
cc356e58ae Remove unused ThreadSafeLayoutNode::get_normal_display. 2015-07-21 22:27:36 +02:00
Ms2ger
930e111713 Scope ThreadSafeLayoutNode::first_child to ThreadSafeLayoutNodeChildrenIterator::new.
It is only used there.
2015-07-21 19:53:34 +02:00
Ms2ger
b3892b74f7 Simplify ThreadSafeLayoutNodeChildrenIterator::next(). 2015-07-21 19:53:23 +02:00
Nicholas Nethercote
f6525b8009 Register/unregister memory reporters in a better place.
By doing this on either side of the call to the relevant tasks' start()
method, we don't need to store the mem::ProfilerChan or the reporter
name in the task itself.
2015-07-20 16:19:51 -07:00
bors-servo
5ac80bff8e Auto merge of #6666 - glennw:exit-flag, r=larsbergstrom
Restore exit after load command line flag.

Also updates glutin with a crash fix that was exposed by this patch.

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/6666)
<!-- Reviewable:end -->
2015-07-20 15:37:33 -06:00
Bogdan Cuza
0baa6b477c Replace astersisks with appropriate versions in deps 2015-07-20 20:08:08 +03:00
Glenn Watson
4f28c93f40 Restore exit after load command line flag.
Also updates glutin with a crash fix that was exposed by this patch.
2015-07-20 11:19:13 +10:00
Till Schneidereit
162ecd0aac Implement client{Top, Left, Height, Width} element properties 2015-07-19 15:04:50 +02:00
Patrick Walton
b6485a9eaf compositing: Make the constellation messages serializable. 2015-07-18 12:43:08 -07:00
Ms2ger
5d36fbca29 Reduce the amount of code in the unsafe block in ParallelPostorderFlowTraversal::run_parallel. 2015-07-17 14:52:00 +02:00
Ms2ger
46b36242a3 Use Ref::map to make ThreadSafeLayoutNode::style safe. 2015-07-17 14:51:58 +02:00
Ms2ger
bb444df679 Remove unused ThreadSafeLayoutNode::traverse_postorder_mut. 2015-07-17 13:26:23 +02:00
Ms2ger
c018863201 Stop using Option in ThreadSafeLayoutNodeChildrenIterator::parent_node. 2015-07-17 11:41:57 +02:00
Ms2ger
4b08cea663 Scope the allowed unsafe code in traversal.rs. 2015-07-17 11:41:06 +02:00
Ms2ger
3e2c44114c Move the traversal traits into the traversal module. 2015-07-17 11:40:40 +02:00
Patrick Walton
6eacb0c995 gfx: Make display lists serializable using serde.
This commit introduces the `serde` dependency, which we will use to
serialize messages going between processes in multiprocess Servo.

This also adds a new debugging flag, `-Z print-display-list-json`,
allowing the output of display list serialization to be visualized.
This will be useful for our experiments with alternate rasterizers.
2015-07-15 19:04:17 -07:00
Patrick Walton
e5b1ec4078 script: Split Pipeline::create into chrome process and content
process parts.

This will make it easier to adapt to IPC.

The trickiest part here was to make script tasks spawn new layout tasks
directly instead of having the pipeline do it for them. The latter
approach will not work in multiprocess mode, because layout and script
must run in the same address space and the pipeline cannot inject tasks
into another process.
2015-07-14 15:09:16 -07:00
Patrick Walton
9ce65c08a5 layout: Make the LayoutControlChan use IPC. 2015-07-14 13:45:52 -07:00
Ms2ger
ce4d442941 Move away from the repeat().take().collect() pattern.
This was the preferred pattern between the deprecation of Vec::from_elem and
the addition of the count argument to the vec![] macro.
2015-07-14 16:19:30 +02:00
bors-servo
c70d53c9fe Auto merge of #6588 - Ms2ger:has_children, r=pcwalton
Remove unused has_children method.



<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/6588)
<!-- Reviewable:end -->
2015-07-13 23:01:54 -06:00