Commit graph

204 commits

Author SHA1 Message Date
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
jmr0
cf21ea5641 altering pipeline visibility change logic 2016-09-17 09:10:43 -04: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
UK992
93a103ba73 Reorder use statements 2016-09-09 04:55:19 +02:00
TyanNN
7c013e45c9
Do not define Pipeline::setup_common on Windows 2016-08-22 13:20:46 +03:00
Michael Howell
0809809c23 Add test for #11818 2016-08-13 16:48:54 -07:00
Martin Robinson
6259df5e2d Update to euclid 0.8 2016-08-12 03:12:06 +02: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
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
Dirkjan Ochtman
e182d29441 Hoist retrieval of layout_threads from opts into Constellation 2016-07-24 21:45:31 +02:00
Alan Jeffrey
c889900cff Removed panic channel, replaced by integrated logging and issue reporting. 2016-07-20 21:56:43 -05:00
bors-servo
b6c0ed9a44 Auto merge of #12426 - asajeffrey:mozbrowser-event-targets, r=SimonSapin
Allow window elements as well as iframes to the the target of mozbrowser events

<!-- Please describe your changes on the following line: -->
Allow mozbrowser events, in particular mozbrowsererror events, to target a window. Needed for https://github.com/browserhtml/browserhtml/issues/1182

---
<!-- 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 #12420
- [X] These changes do not require tests because we're not testing our issue reporting system, which this is intended for.

<!-- 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/12426)
<!-- Reviewable:end -->
2016-07-20 04:41:34 -05:00
Alan Jeffrey
72aa4f2f62 Allow window elements as well as iframes to the the target of mozbrowser events. 2016-07-18 11:23:03 -05:00
Rahul Sharma
eff3e01df0 make resource_thread talk to sw-manager 2016-07-18 19:06:48 +05:30
Rahul Sharma
1e6293ea1d Integrate service worker manager thread 2016-07-16 23:29:44 +05:30
Alan Jeffrey
44422744ff Sent log messages to the constellation. 2016-07-15 13:44:44 -05:00
Ms2ger
cbfe77cee1 Move some unit type definitions to style_traits. 2016-07-11 12:14:27 +02:00
Ms2ger
b8fe9e9637 Move WindowSizeData to script_traits. 2016-07-05 09:02:43 +02:00
Corey Farwell
22928f50ac Refactor util::prefs operations to be methods on static struct. 2016-07-02 16:43:39 -04:00
Ms2ger
7d1421bd83 Move ChromeToPaintMsg to gfx_traits.
This allows compositing not to depend on gfx.
2016-06-24 14:57:10 +02:00
Connor Brewster
b8059558e3
Remove pipeline_to_frame_map 2016-06-21 07:18:11 -06:00
Sagar Muchhal
7e2b4d163b Propagate privacy information of iframes to corresponding pipelines. Make iframes of differing privacy values be considered cross-origin.
Make the constellation hand out separate private and public channels for the pipeline content to communicate with the resource thread as necessary.
2016-06-20 14:55:01 -04:00
jmr0
2bff131535 Implement non-visible pipeline and iframe visibility methods 2016-06-15 23:28:07 -04:00
Alan Jeffrey
0769982ec3 Window::Parent and Window::Top now return the right result inisde a mozbrowser iframe. 2016-06-07 08:51:41 -05:00
Ms2ger
32842d5c42 Remove the paint shutdown channel.
Nobody is listening.
2016-06-04 13:24:44 +02:00
Ms2ger
021b9e3239 Remove the layout shutdown channel.
Nobody is listening.
2016-06-04 13:24:32 +02:00
Alan Jeffrey
2416072dc2 Avoid deadlock when shutting down. 2016-06-03 20:05:37 -05:00
Ms2ger
ec03c367ab Remove LayoutControlChan. 2016-05-28 11:43:19 +02:00
bors-servo
c9534dffc8 Auto merge of #11437 - Ms2ger:pipeline-creation, r=asajeffrey
Simplify and improve Pipeline creation.

- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes do not require tests because refactoring

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/11437)
<!-- Reviewable:end -->
2016-05-27 11:14:19 -05:00
Ms2ger
5d0bbe87a7 Remove unused UnprivilegedPipelineContent::paint_shutdown_chan. 2016-05-27 13:41:02 +02:00
Ms2ger
43bf035f6c Avoid some clones in UnprivilegedPipelineContent::start_all. 2016-05-27 13:38:56 +02:00
bors-servo
073c5e3b6b Auto merge of #11308 - nox:guarded, r=jdm
Implement [Func]

First part of #11292, this just includes support of `[Func]`.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/11308)
<!-- Reviewable:end -->
2016-05-27 04:45:06 -05:00
Ms2ger
948b69f503 Move the Pipeline creation to the end of Pipeline::spawn(). 2016-05-27 09:26:57 +02:00
Ms2ger
f6ae542c15 Avoid some unnecessary runtime checks. 2016-05-27 09:26:57 +02:00
Ms2ger
c943c745a9 Improve code flow in Pipeline::spawn(). 2016-05-27 09:26:56 +02:00
Ms2ger
e6546a54e8 Avoid some unnecessary work if we're not spawning content. 2016-05-27 09:26:19 +02:00
Ms2ger
9e0aa09984 Remove PrivilegedPipelineContent. 2016-05-27 09:23:19 +02:00
Ms2ger
88a36e6947 Inline Pipeline::create() into Pipeline::spawn(). 2016-05-27 09:23:18 +02:00
Ms2ger
739e091e8b Introduce Pipeline::spawn(). 2016-05-27 09:23:17 +02:00
Ms2ger
82832f134b Move spawn_multiprocess into UnprivilegedPipelineContent. 2016-05-27 09:23:17 +02:00
Ms2ger
cc83cb8b09 Privatize Pipeline::new(). 2016-05-27 09:23:14 +02:00
Anthony Ramine
34dfc28e98 Move mozbrowser_enabled to util::prefs 2016-05-27 00:55:04 +02:00
bors-servo
64cca225e5 Auto merge of #11430 - asajeffrey:constellation-record-mozbrowser-parent-info, r=ConnorGBrewster
Record the frame type (IFrame or MozBrowserIFrame) in the pipeline.

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 do not require tests because this is a refactoring

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

This is a first step towards supporting the notion of multiple top-level browsing contexts in Servo, by making the constellation aware of which content is loaded in a mozbrowser iframe.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/11430)
<!-- Reviewable:end -->
2016-05-26 14:53:09 -05:00
Alan Jeffrey
d92dfe1b8c Record the frame type (IFrame or MozBrowserIFrame) in the pipeline. 2016-05-26 12:55:55 -05:00
Ms2ger
4f893ee96e Remove ScriptThread::layout_to_constellation_chan.
Instead, pass it along in NewLayoutInfo when needed.
2016-05-25 15:41:01 +02:00
Ms2ger
e7f75ca298 Merge PrivilegedPipelineContent::{start_all, start_paint_thread}.
They now do the same thing.
2016-05-25 12:50:25 +02:00
Ms2ger
4113eb6f72 Remove the script listener thread (fixes #11345).
We needed a separate thread in the chrome process because communication to the
compositor is done through a trait object, and cross-process virtual calls are
forbidden.

Also, the fact that these messages are ultimately handled by the compositor is
an implementation detail; conceptually, the relevant constellation is supposed
to handle these messages.

So instead, the script thread will now send the messages to the constellation,
which will ask the compositor to handle them.
2016-05-25 12:50:22 +02:00