aboutsummaryrefslogtreecommitdiffstats
path: root/components/constellation/pipeline.rs
Commit message (Collapse)AuthorAgeFilesLines
...
* Remove WebVRAlan Jeffrey2020-04-081-7/+0
|
* Extract user_agent from global optsUtsav Oza2020-04-061-1/+7
|
* allow for a service worker manager per originGregory Terzian2020-04-051-146/+4
|
* Make Background Hang Monitor OptionalKunal Mohan2020-02-231-19/+32
| | | | | | This is done by wrapping all channels of communication and related objects inside Option which are configured using flag inside servo_config.
* Update ipc-channel and crossbeam-channel.Josh Matthews2020-02-201-1/+1
|
* Only start WebGPU thread if an adapter is requestedZakor Gyula2020-01-131-7/+0
|
* Do not wake up embedder on each animation tickPaul Rouget2019-12-161-3/+5
|
* Use non-IPC webrender API over explicit IPC channels.Josh Matthews2019-11-271-3/+8
|
* Initial implementation of WebGPU APIZakor Gyula2019-11-211-0/+7
|
* Centralize definitions of window sizes and DPI in compositor/constellation ↵Josh Matthews2019-11-061-22/+4
| | | | during startup.
* Extract device_pixels_per_px from global optsglowe2019-10-261-1/+7
| | | | | This is also an embedder specific option, so removing it from the global options makes sense.
* introduce a pipeline namespace installerGregory Terzian2019-08-211-4/+16
|
* restructure content process shutdown ack with threaded sender, without layoutGregory Terzian2019-08-171-20/+7
|
* Remove extra webgl message pumping thread.Josh Matthews2019-07-251-1/+11
|
* Update euclid.Emilio Cobos Álvarez2019-07-231-3/+3
| | | | | | | | There are a few canvas2d-related dependencies that haven't updated, but they only use euclid internally so that's not blocking landing the rest of the changes. Given the size of this patch, I think it's useful to get this landed as-is.
* Auto merge of #23368 - gterzian:clean_up_navigation, r=asajeffreybors-servo2019-07-181-5/+1
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Clean-up navigation <!-- Please describe your changes on the following line: --> 1. Navigation as a result of following a hyperlink should be done in a task: https://html.spec.whatwg.org/multipage/links.html#following-hyperlinks:dom-manipulation-task-source 2. The javascript url navigation should also be done in a task: https://html.spec.whatwg.org/multipage/browsing-the-web.html#navigating-across-documents:dom-manipulation-task-source 3. In `window.load_url`, it seems there is no need to send a message to the script-thread(the entirety of `load_url` should instead be done in a task when appropriate), so we can just do that last part "sync" by calling a method on the script, which will send a message to the constellation(for the parallel navigation steps), or queue task(for the JS navigation), as appropriate. 4. Separate the "normal" navigation flow from the handling of "navigate an iframe" message from constellation, since doing everything in one method as was previously done with `handle_navigate`, is confusing. --- <!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `___` with appropriate data: --> - [ ] `./mach build -d` does not report any errors - [ ] `./mach test-tidy` does not report any errors - [ ] These changes fix #___ (GitHub issue number if applicable) <!-- Either: --> - [ ] There are tests for these changes OR - [ ] These changes do not require tests because ___ <!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.--> <!-- 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/23368) <!-- Reviewable:end -->
| * clean-up navigationGregory Terzian2019-07-181-5/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | security: check target and source origin before executing JS url implement replacement-enabled flag as a HistoryEntryReplacement enum add source origin string on loaddata add LoadOrigin iframe: remove optional load-data auxiliaries: add load-data into info constellation: remove url from Pipeline::new check load origin: link to whatwg issue switch loadorigin toplevel to constellation
* | Final tweaks: use expect and remove unnecessary crate attributesFernando Jiménez Moreno2019-07-041-1/+1
| |
* | Media crateFernando Jiménez Moreno2019-07-041-1/+1
| |
* | Add media (WindowGLContext) module in canvas_traitVíctor Manuel Jáquez Leal2019-07-041-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This module adds a structure (WindowGLContext) which holds the OpenGL parameters that are going to be used by servo-media player to render video frames using OpenGL. In order to fill this structure, three new methods were added to WindowMethods trait. In this patch only the Glutin-based implementation provides a simple boilerplate. The WindowGLContext is created in the entry point of libservo, when the application window is created, and later passed to the constellation, the pipeline and to the window element in dom, thus htmlmediaelement has a mean to obtain these parameters via its window.
* | Use webxr IPC to get a WebXR device registry to each script threadAlan Jeffrey2019-07-031-0/+6
| |
* | Script: removed a few opts::get()oneturkmen2019-06-261-0/+11
| |
* | Fix some new warningsSimon Sapin2019-06-221-3/+5
| |
* | No multiprocess on win arm64.Josh Matthews2019-06-111-1/+5
|/
* Layout_thread: removed all possible opts::get()oneturkmen2019-06-041-0/+11
|
* Constellation: removed almost all opts::getoneturkmen2019-06-031-1/+1
|
* Measure layout queries blocked by ongoing layoutPhilipp Albrecht2019-04-131-0/+4
|
* Auto merge of #23080 - jdm:sampling-profiler, r=gterzianbors-servo2019-03-261-14/+35
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add a sampling profiler This uses the code already built for the background hang monitor and adds the ability to repeatedly sample all monitored threads. This sampling allows us to generate profiles that we can translate into the format used by https://perf-html.io/, allowing us to benefit from modern Gecko performance tooling. You can run Servo with `PROFILE_OUTPUT=foo.json` and `SAMPLING_RATE=50` (for example), otherwise these values will default to `samples.json` and 10ms, respectively. To activate the profiler, press cmd+p, and to stop profiling, press cmd+p again. This will the captured samples to be symbolicated, which will take a very long time, and eventually there will be a new JSON profile in the output location. To create a profile for use by Gecko's tools, run `python etc/profilicate.py path/to/profile.json >gecko_profile.json`, and load `gecko_profile.json` in the https://perf-html.io/ to see something like [this](https://profiler.firefox.com/public/8137e2b11fbb92afb80090bc534fd83015c87ee6/calltree/?globalTrackOrder=0-1&thread=1&v=3); --- - [x] `./mach build -d` does not report any errors - [x] `./mach test-tidy` does not report any errors - [x] These changes fix #13103 - [x] These changes do not require tests because way too many pieces to automate <!-- 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/23080) <!-- Reviewable:end -->
| * Support multiprocess in sampling profiler.Josh Matthews2019-03-261-12/+33
| |
| * Add a sampling profiler and a script to generate profiles for use with Gecko ↵Josh Matthews2019-03-261-4/+4
| | | | | | | | tooling.
* | #8539 Config preferences backend restructurePeter Hall2019-03-201-4/+4
|/
* Make nested browsing context navigations check the loaded status of the ↵Josh Matthews2019-03-071-0/+4
| | | | active document of the nested browsing context.
* Rustfmt has changed its default style :/Simon Sapin2018-12-281-7/+3
|
* style: Make Servo use a single thread-pool for layout-related tasks per-process.Emilio Cobos Álvarez2018-12-231-7/+0
| | | | | | Instead of per-document. This also allows to reuse this thread-pool if needed for other stuff, like parallel CSS parsing (#22478), and to share more code with Gecko, which is always nice.
* Disable gaol on aarch64Bastien Orivel2018-12-221-2/+12
|
* Disable gaol on arm targetsBastien Orivel2018-12-201-2/+2
|
* Disable gaol on androidBastien Orivel2018-12-201-1/+23
|
* Initial window sizes are mandatory.Josh Matthews2018-12-141-7/+6
|
* Remove redundant `.clone()`sShotaro Yamada2018-12-111-4/+2
|
* introduce a background-hang-monitor:Gregory Terzian2018-11-261-3/+28
| | | | | Mac-Os implementation of a thread sampler, Linux and Windows skeleton implementations.
* Update MPL license to https (part 4)Jan Andre Ikenmeyer2018-11-191-1/+1
|
* Update crossbeam-channel to 0.3Bastien Orivel2018-11-181-1/+1
|
* Remove useless `use crate_name;` imports.Simon Sapin2018-11-081-1/+0
| | | | A `crate_name::foo` path always works in 2018
* Reorder importsPyfisch2018-11-061-6/+6
|
* Format remaining filesPyfisch2018-11-061-6/+7
|
* Sort `use` statementsSimon Sapin2018-11-061-2/+2
|
* `cargo fix --edition`Simon Sapin2018-11-061-2/+2
|
* Provide webrender_api::RenderApiSender to ScriptThread and DOM WindowVíctor Manuel Jáquez Leal2018-10-081-0/+1
| | | | | | | | | | | This will allow the HTMLMediaElement later to get a handle to the RenderApi for rendering video frames. At a later time, all media handling should be moved to its own thread/process that is communicated with via IPC. At that point this can be removed again. Original-patch-by: Sebastian Dröge <sebastian@centricular.com>
* Auto merge of #21559 - mandreyel:pipeline-fields-to-browsingcontext, r=cbrewsterbors-servo2018-09-131-45/+17
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Frame should store some of the data that is currently in Pipeline #14692 <!-- Please describe your changes on the following line: --> Apologies, meant to land it sooner but deadline at work got hectic. So I moved the `Pipeline::{visible, is_private, parent_info}` fields (`size` was moved earlier) to `BrowsingContext`, and renamed them where appropriate (and did some minor refactoring on the side, hope that's alright). This introduced some complications, because when a pipeline is spawned for a browsing context that does not yet exist, the browsing context won't be constructed until after pipeline has made its document active. Thus, values for the fields that used to be in `Pipeline` and are now in `BrowsingContext` could not be easily retrieved when constructing the `BrowsingContext` (since in most cases they were only available when spawning a pipeline). For this reason, I've put these fields in `SessionHistoryChange` since one is always created and added to `Constellation::pending_changes` when a new pipeline is created, so it provides an easy way to forward the necessary values to new `BrowsingContext`s. Though frankly I'm not sure I like expanding `SessionHistoryChange`'s purpose to serve as a crutch to construct browsing contexts, so a way to uncouple purposes would be to separately store the values for a to-be-created `BrowsingContext` in a collection of structs in `Constellation` and consume them when a new `BrowsingContext` is created. Here's a PoC: https://github.com/mandreyel/servo/commit/6fa2160bcc14db7ab020a65eba1473d7c36bc44d. I didn't include this by default because it introduces a little overhead. Perhaps `PendingBrowsingContextInfo` could be stored as an `Option<>` next to a `SessionHistoryChange` in `Constellation::pending_changes`? That'd uncouple the two structs but not incur any overhead. I don't think it's finished, so I've marked some areas where I need input on small matters with `TODO(mandreyel)`, but the general idea is done. I'll be sure to squash commits when no further changes need be done! --- <!-- 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 #14692. <!-- Either: --> - [x] These changes do not require tests because no new features or behaviour were introduced. <!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.--> <!-- 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/21559) <!-- Reviewable:end -->
| * Move Pipeline::{parent_info,visible,is_private} to BrowsingContextmandreyel2018-09-121-45/+17
| |