Commit graph

136 commits

Author SHA1 Message Date
Niko Pen
0b8deed28a Move RenderNotifier from compositing to servo 2019-02-28 19:53:54 +05:30
Josh Matthews
231a37be24 Initial window sizes are mandatory. 2018-12-14 13:12:46 -05:00
Anthony Ramine
faee0b2b0c Rename gleam feature to gl in compositing 2018-11-20 10:14:51 +01:00
Jan Andre Ikenmeyer
1d6fe65401
Update MPL license to https (part 4) 2018-11-19 14:47:27 +01:00
Simon Sapin
2012be4a8b cargo fix --edition-idioms 2018-11-08 09:28:00 +01:00
Pyfisch
9e92eb205a Reorder imports 2018-11-06 22:35:07 +01:00
Simon Sapin
45f7199eee cargo fix --edition 2018-11-06 15:26:02 +01:00
Pyfisch
0ccaa7e1a9 Use keyboard-types crate
Have embedders send DOM keys to servo and use a strongly typed KeyboardEvent
from the W3C UI Events spec. All keyboard handling now uses the new types.

Introduce a ShortcutMatcher to recognize key bindings. Shortcuts are now
recognized in a uniform way.

Updated the winit port.
Updated webdriver integration.

part of #20331
2018-10-07 22:39:00 +02:00
Simon Sapin
2a996fbc8f Replace mpsc with crossbeam/servo channel, update ipc-channel
Co-authored-by: Gregory Terzian <gterzian@users.noreply.github.com>
2018-09-12 13:33:32 +08:00
Simon Sapin
e39f741321 Remove components/nonzero, use std::num::NonZero instead 2018-06-16 00:14:41 +02:00
Gregory Terzian
d438240772 move msg to embedder_traits, use in script, handle send error in embedder 2018-05-23 21:45:57 +08:00
Dzmitry Malyshau
7fa295d8e6 Make gleam optional for compositor, switch various names from glutin to winit 2018-04-18 22:40:47 -04:00
Josh Matthews
99b5eac393 Update webrender for latest RenderNotifier changes. 2017-10-23 11:03:57 +10:00
Martin Robinson
b5d51dd263 Switch to using WebRender hit testing
This trades quite a bit of complicated code in Servo for few more
messages and a significant performance improvement. In particular,
WebRender can search the entire display list at once instead of
ping-ponging down the pipeline tree. This allows us to send mouse
events to the correct pipeline immediately.
2017-10-17 23:33:13 +02:00
Simon Sapin
4594b40238 Use wrappers in the nonzero crate so users don’t need unstable features 2017-10-13 11:11:05 +02:00
Simon Sapin
57709dc0bf Use the new nonzero crate in the msg crate 2017-10-13 11:10:16 +02:00
Simon Sapin
aa5761a5fb Remove usage of unstable box syntax, except in the script crate
… because there’s a lot of it,
and script still uses any other unstable features anyway.
2017-10-12 12:10:56 +02:00
Alan Jeffrey
6754b2834f Made PipelineId non-zero, so optional ids take no more space. 2017-09-18 15:49:38 -05:00
Gregory Terzian
01c24e017d move embedder related messages, and window event handling, out of compositor 2017-08-28 18:39:10 +08:00
Martin Robinson
e58e8ab42e Upgrade to the latest version of WebRender 2017-07-13 07:44:08 +10:00
Glenn Watson
c8255922a9 Improve decisions in compositor over when to draw a frame.
This patch fixes a couple of issues in the compositor:

1) Remove the delayed composition code. Previously, this would schedule
   a composite for 12ms in the future. This doesn't really make any sense
   with WR. There's no point in doing a composite unless WR has provided
   a new frame to be drawn. This fixes issues in several benchmarks where
   we were doing multiple composite / renders per rAF, which is a waste
   of CPU time. This *does* make the framerate slower in some cases (such
   as a slow rAF callback) but it's more correct - otherwise we were just
   compositing the same frame multiple times for no real benefit.

2) Inform the window of the current animation state of the compositor.
   Specifically, if an animation (or rAF) is currently active, the
   window system switches to use event polling, and does not block on
   the OS-level event loop. In the case of active animation, we just
   assume that we want to be running as the vsync interval and not
   blocking. This means the compositor thread only sleeps on vsync
   during animation, which reduces OS scheduling and results in much
   smoother animation.
2017-06-20 08:47:14 +10:00
Nicolas Silva
8617320500 Bump euclid to 0.14. 2017-06-14 16:00:59 +02:00
Alan Jeffrey
79743b5358 Webdriver uses browsing context ids rather than pipeline ids. 2017-05-25 17:14:28 -05:00
Glenn Watson
30ff2f8f0d Introduce CSSPixel as a replacement for ViewportPx and PagePx. 2017-02-24 06:58:10 +10:00
Anthony Ramine
63c4490e73 Kill the plugins crate and its clippy support
Sometimes clippy gets outdated by months, and its current support setup
means that each Servo component need to opt into it by depending on
the plugins crate manually, and not all components do that.
2017-02-21 11:50:36 +01:00
Ms2ger
14fe337866 Update rustc to 1.16.0-nightly (7821a9b99 2017-01-23). 2017-01-24 11:02:51 +01:00
Simon Sapin
67aea3bba4 Upgrade to rustc 1.16.0-nightly (6f1ae663e 2017-01-06) 2017-01-06 17:43:31 +01:00
Alan Jeffrey
9be4fd56ce Removed util. 2016-12-14 18:04:37 -06:00
Emilio Cobos Álvarez
913c874cb5
Urlmageddon: Use refcounted urls more often. 2016-11-17 18:34:23 +01:00
Anthony Ramine
c4f27e42b7 Remove #![feature(custom_derive)] 2016-11-03 10:14:21 +01: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
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
Shubheksha Jalan
86173d7a58 Removed duplicate #![feature(plugin)] 2016-10-05 00:15:27 +05:30
Martin Robinson
6259df5e2d Update to euclid 0.8 2016-08-12 03:12:06 +02:00
Ms2ger
cbfe77cee1 Move some unit type definitions to style_traits. 2016-07-11 12:14:27 +02:00
Ms2ger
7d1421bd83 Move ChromeToPaintMsg to gfx_traits.
This allows compositing not to depend on gfx.
2016-06-24 14:57:10 +02:00
Andrew Shu
9c8d5d58d8 compositing: Remove CompositorThread struct 2016-06-02 22:36:45 -07:00
Kyle Headley
2bb109b14f Removed CompositorEventListener trait 2016-05-31 15:29:19 -06:00
Ms2ger
f0ca775c80 Remove the ConvertPipelineIdToWebRender trait. 2016-05-28 14:10:32 +02:00
Ms2ger
ec03c367ab Remove LayoutControlChan. 2016-05-28 11:43:19 +02:00
Cullen Rhodes
40acd24e8f Report use statements that use {} with only one entry 2016-05-27 10:18:44 +01:00
Ms2ger
f9a8c322af Use CompositorMsg from script_traits. 2016-05-24 12:29:22 +02:00
Ms2ger
47933479da Move CompositorMsg to script_traits. 2016-05-24 12:28:10 +02:00
Ms2ger
38d96c9564 Move sandboxing into the constellation crate. 2016-05-22 14:49:28 +02:00
Ms2ger
76fae9fa28 Move pipeline into the constellation crate. 2016-05-21 16:33:57 +02:00
Ms2ger
383cdd450f Move CompositionPipeline out of the pipeline module. 2016-05-21 16:33:26 +02:00
Ms2ger
c057ace251 Move constellation into its own crate. 2016-05-18 11:09:28 +02:00
Per Lundberg
2f7ed1d73e Removed unused imports
This fixes #11185.
2016-05-15 22:24:26 +03:00
Alan Jeffrey
00a8efe9fd When webdriver is getting a pipeline id, it should wait for the pipeline document to be ready. 2016-05-11 15:27:25 -05:00
Josh Matthews
97637d8949 Remove unused crates on macos. 2016-04-23 10:44:55 -04:00