Commit graph

286 commits

Author SHA1 Message Date
Alan Jeffrey
6806ca1900 Tidying up constellation. 2016-10-31 09:11:58 -05:00
Takanori Ishibashi
f23fe485c3 Fix typo recieve -> receive 2016-10-31 22:52:36 +09:00
Ms2ger
1a96733417 Move WindowSizeType to script_traits. 2016-10-22 13:33:38 +02:00
Ms2ger
e97f06800e Move LoadData to script_traits. 2016-10-21 12:49:16 +02:00
Martin Robinson
ccb7ab926a Remove concept of Layers from Servo
Layers were a feature of the legacy drawing path. If we re-add them at
some point, it probably makes more sense to make them a product of
display list inspection.

This change also remove a bunch of dead painting code.
2016-10-21 08:38:34 +02:00
Glenn Watson
acfdfd2fa9 Remove old rendering backend.
This removes paint threads, rust-layers dependency, and changes
optional webrender types to be required.

The use_webrender option has been removed, however I've left
the "-w" command line option in place so that wpt
runner can continue to pass that. Once it's removed from there
we can also remove the -w option.

Once this stage is complete, it should be fine to change the
display list building code to generate webrender display
lists directly and avoid the conversion step.
2016-10-18 10:21:27 +10:00
Alan Jeffrey
eef02ddab8 Made pipeline always store the frame_id. 2016-10-10 13:59:04 -05:00
Anthony Ramine
1854566683 Update to Rust 1.14.0-nightly (19ac57926 2016-10-08)
A cargo bump and a switch to serde_derive is needed to do this rustup.
2016-10-09 18:53:47 +02:00
bors-servo
9d3fc76463 Auto merge of #13633 - glennw:forward-touch-events, r=mbrubeck
Send touch events to root pipeline, and allow forwarding to iframes.

Instead of letting the compositor try to find the correct scroll
layer for a touch event, switch touch events to work the same way
that mouse events do.

Touch events are now dispatched to the root pipeline, and then
forwarded to child iframes as required.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/13633)
<!-- Reviewable:end -->
2016-10-07 19:07:24 -05:00
Glenn Watson
291af9d115 Send touch events to root pipeline, and allow forwarding to iframes.
Instead of letting the compositor try to find the correct scroll
layer for a touch event, switch touch events to work the same way
that mouse events do.

Touch events are now dispatched to the root pipeline, and then
forwarded to child iframes as required.
2016-10-08 06:00:00 +10:00
Alan Jeffrey
f53408df80 IFrame elements now manage FrameIds rather than the constellation. 2016-10-07 14:11:32 -05:00
Shubheksha Jalan
86173d7a58 Removed duplicate #![feature(plugin)] 2016-10-05 00:15:27 +05:30
Ms2ger
61402b8ca7 Inline push_pending_frame into its callers.
The recently added replace argument makes it less readable, especially with
the second boolean argument I am adding in #11893.
2016-09-20 14:01:56 +02:00
Connor Brewster
e9b2f1b916 Replace current session entry for reloads 2016-09-19 14:23:03 -05:00
Emilio Cobos Álvarez
e2db4fe466
constellation: Minor refactoring to aid legibility.
Two things changed, on one hand, avoid a dumb if chain that could be more
idiomatically written with a match expression, and also avoiding use map() to
change state.

In general I'm pretty surprised for our lack of error reporting in this
critical code, but that's not the purpose of this PR.
2016-09-19 14:25:29 +02:00
jmr0
cf21ea5641 altering pipeline visibility change logic 2016-09-17 09:10:43 -04:00
bors-servo
0ec4ea4ee1 Auto merge of #12910 - creativcoder:swsender, r=jdm
Implement postMessage for ServiceWorkers

<!-- Please describe your changes on the following line: -->

Fixes #12773
r? @jdm

Changes:
* Implements `postMessage` on `ServiceWorker` object.
* Removes unused channels from sw and their scopes.
* Fixes a crash when calling `scope.script_chan()` in sw-scopes event handling.

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix #12773

<!-- Either: -->
- [X] There are tests for these changes at `tests/html/service-worker`

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/12910)
<!-- Reviewable:end -->
2016-09-15 08:34:22 -05:00
Aneesh Agrawal
56fbfd46a4 Excise SubpageId and use only PipelineIds
SubpageId was originally introduced in 2013 to help iframes keep track of
their associated (children) pipelines. However, since each pipeline
already has a PipelineId, and those are unique, those are sufficient
to keep track of children.
2016-09-13 15:37:38 -04:00
Aneesh Agrawal
b9b25b6f82 Consistently use parent_pipeline_id
Instead of containing_pipeline_id, use parent_pipeline_id because it is
more clear that it refers to the immediate parent.
2016-09-13 15:24:13 -04:00
bors-servo
10777a8a8e Auto merge of #13215 - servo:pointless-clones, r=Manishearth
Use extend() rather than extend_from_slice() in constellation.

<!-- Reviewable:start -->
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/13215)
<!-- Reviewable:end -->
2016-09-09 22:25:59 -05:00
Ms2ger
8ffa577df4 Use extend() rather than extend_from_slice() in constellation. 2016-09-09 11:43:57 +02:00
Ms2ger
3147005547 Remove unused derivations from FrameState. 2016-09-09 10:09:29 +02:00
UK992
93a103ba73 Reorder use statements 2016-09-09 04:55:19 +02:00
Rahul Sharma
9dcb7348a2 store senders instead of buffering messages 2016-09-07 12:07:36 +05:30
Rahul Sharma
0996b38ade Make service workers talk to their serviceworkerglobalscopes 2016-09-07 12:07:36 +05:30
TyanNN
7c013e45c9
Do not define Pipeline::setup_common on Windows 2016-08-22 13:20:46 +03:00
Anthony Ramine
51768844ed Update euclid to 0.10.1 2016-08-21 03:03:45 +02:00
Anthony Ramine
03a0170c91 Update to webrender 0.4.0 2016-08-18 19:33:12 +02:00
Connor Brewster
f8a1bfa750 Add FrameState 2016-08-14 21:54:36 -06:00
bors-servo
700bb911fc Auto merge of #12839 - notriddle:11818_sequential_layout_bug, r=emilio
Fix a cached style cascade bug that only manifested in sequential mode

When copying cached styles, keep the `writing_mode` up to date.

---

- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix #11818 (github issue number if applicable).
- [X] There are tests for these changes

EDIT: The test is now working. I ran it with the first commit (the actual fix) reverted and it failed.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/12839)
<!-- Reviewable:end -->
2016-08-14 02:27:19 -05:00
Michael Howell
0809809c23 Add test for #11818 2016-08-13 16:48:54 -07:00
Anthony Ramine
7ad51dcd7a Update serde to 0.8 (fixes #12659) 2016-08-12 18:37:27 +02:00
Martin Robinson
6259df5e2d Update to euclid 0.8 2016-08-12 03:12:06 +02:00
Alan Jeffrey
341b9de43b Print backtraces for panics, even if the constellation has closed. 2016-08-10 17:39:29 -07:00
Connor Brewster
611de2ac06 Implement history.length
Add full frame tree iter to reduce code duplication
Add FrameId field to the Frame struct.
2016-08-03 11:42:31 -06:00
Glenn Watson
db8c3ef727 Update cargo.lock for wr2, pin ipc-channel. 2016-08-03 10:44:10 +02:00
Zhen Zhang
17ae38a318 Add cancellability to file manager load and related refactoring 2016-08-02 23:51:51 +02:00
Ms2ger
d4e75e6165 Simplify add_or_replace_pipeline_in_frame_tree. 2016-08-02 17:27:55 +02:00
bors-servo
fdb1e511bd Auto merge of #12637 - asajeffrey:constellation-use-reentrant-logging-mutex, r=emilio
Replaced mutex in constellation logging by a reentrant mutex.

<!-- Please describe your changes on the following line: -->

The double-panic in #12553 may be caused by using a non-reentrant lock, which panics on reetry. This PR adds a reentrant lock type (slightly annoyingly, the implementation in std isn't exported) and uses it for logging. cc @jdm

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix #12619.
- [X] These changes do not require tests because they are designed to remove a class of intermittents.

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/12637)
<!-- Reviewable:end -->
2016-07-29 12:49:08 -05:00
Alan Jeffrey
e3030d053a Replaced mutex in constellation logging by a reentrant mutex. 2016-07-29 09:44:45 -05:00
bors-servo
94e6f59174 Auto merge of #12635 - nc4rrillo:refactor-spawn-multiprocess, r=Manishearth
Extracted common parts of the starting content process

<!-- Please describe your changes on the following line: -->

---
I implemented a trait for both `process::Command` and `sandbox::Command` in order to constrain my generic `setup_common` method.

<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix #12622 (github issue number if applicable).

<!-- Either: -->
- [X] These changes do not require tests because we are extracting common functionality across two code branches into a method

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/12635)
<!-- Reviewable:end -->
2016-07-29 06:43:19 -05:00
Alan Jeffrey
3646ddd7f2 Send logging messages even if the channel lock is poisoned. 2016-07-28 16:32:35 -05:00
nc4rrillo
609884cc5e Extracted common parts of the starting content process 2016-07-28 15:27:43 -04:00
bors-servo
944d371b8f Auto merge of #12563 - emilio:stylo, r=bholley,jdm,pcwalton
stylo: Improve restyling performance

This commit adds hooks to the Servo style traversal to avoid traversing all the
DOM for every restyle. Additionally it changes the behavior of the dirty flag to
be propagated top down, to prevent extra overhead when an element is dirtied.

This commit doesn't aim to change the behavior on Servo just yet, since Servo does extra job when dirtying the node related with DOM revision counters that might be necessary.

CC @asajeffrey for the DOM revision counters stuff. When a node is dirty, do all its descendants really need to increment the revision counter, or is this an unintended effect? My intuition is that this is hurting performance quite a lot for servo.

r? @bholley

<!-- Please describe your changes on the following line: -->

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors

<!-- Either: -->
- [x] These changes do not require tests because no geckolib tests yet.

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/12563)
<!-- Reviewable:end -->
2016-07-27 17:56:26 -05:00
Emilio Cobos Álvarez
36376461f4
script: Unify LoadComplete and DOMLoad messages.
See the PR in which this commit landed and also
https://github.com/servo/servo/pull/6415#issuecomment-122294169
2016-07-27 11:14:47 -07:00
Emilio Cobos Álvarez
354dc66029
Some debugging improvements and code style nits across gfx and constellation.
* Propagate the RUST_LOG env var to the child process
 * Add debug information when a recv() fails in paint thread's select!.
2016-07-27 11:14:44 -07:00
Eduard Burtescu
3d8eab424c Update Rust to 1.12.0-nightly (9316ae515 2016-07-24) 2016-07-26 19:35:51 +02:00
Emilio Cobos Álvarez
e6958d3947
script: Fix a few load related bugs.
This is what was making me hit the new test failures. So turns out that when the
DOMContentLoaded event is fired we fired no messages to the constellation, but
we fired the DOMLoad message from the DocumentProgressHandler, effectively after
having dispatched the Load message from script thread.

This also fixes the possibility of a subframe navigation not blocking the load
event of the parent document, for example.
2016-07-25 10:51:52 -07:00
Dirkjan Ochtman
e182d29441 Hoist retrieval of layout_threads from opts into Constellation 2016-07-24 21:45:31 +02:00
Connor Brewster
f131818763 Implement beginnings of joint session history
Fix backward navigation

make use of history iterator

Add frame iterator
add different back logic

cleanup navigation_info

Add extra explanation for iter logic

Remove forward history on full frame tree

Rename navigation to traversal where appropriate

check full tree for can go back/forward

simplify frame iter logic

remove FrameIterator

cleanup history iter

reduce amount of vec allocations

removed extra parenthesis

Remove history iterator

cleanup after rebasing

avoid recursive vec allocation
remove full_frame_tree
remove_forward_history_in_frame_tree -> clear_joint_session_future
2016-07-21 20:51:38 -06:00