Commit graph

822 commits

Author SHA1 Message Date
Ulf Nilsson
8c07a1a3af Use piston_image instead of stb_image for decoding JPEGs
Bump image to 0.7
2016-03-02 09:13:49 +01:00
Glenn Watson
78b284cefe With WebRender, only send resize events when window size is valid.
Fixes WR 116.
2016-03-01 09:29:16 +10:00
Corey Farwell
f5697b1c39 Cleanup Vec initialization from Option. 2016-02-27 22:31:39 -05:00
Corey Farwell
0112c359f5 Utilize Constellation::pipeline utility. 2016-02-27 22:03:01 -05:00
Corey Farwell
b13b8035ae Utilize Constellation::frame utility. 2016-02-27 21:56:17 -05:00
Patrick Walton
9b4cc41695 compositing: Stop compositing unnecessarily after each animation frame.
Instead, schedule a delayed composite after each frame of an animation.

The previous code would cause jank, because the following sequence
frequently occurred:

1. The page uses `requestAnimationFrame()` to request a frame.

2. The compositor receives the message, schedules a composite,
dispatches the rAF message to the script thread, composites, and goes to
sleep waiting for vblank (frame 1).

3. The script makes a change and sends it through the pipeline.
Eventually it gets painted and is sent to the compositor, but the
compositor is sleeping.

4. The compositor wakes up, sees the new painted content, page flips,
and goes to sleep (frame 2). Repeat from step 1.

The problem is that we have two composition frames, not just one. This
halves Web apps' framerate!

This commit fixes the problem by scheduling the composite in step 2 to
12 ms in the future. We already have this delayed-composition
functionality in the form of the scrolling timer, which I repurposed and
renamed to the "delayed composition timer" for this task. This change
gives the page 12 ms to prepare the frame, which seems to usually be
enough, especially with WebRender.

Note that simply removing the scheduled composite after rAF is not the
correct solution. If this is done, then pages that call rAF and don't
modify the page won't receive future rAFs, since the compositor will be
sleeping and won't be notified of vblank.

Fixes a bunch of jank in browser.html. The remaining jank seems to be a
problem with browser.html itself.
2016-02-24 14:06:46 -08:00
Corey Farwell
83b22fd97f Update webrender crate refs to reflect ownership change.
Also updated the 'webrender' ref to point to the latest commit.
2016-02-23 19:49:50 -05:00
Paul Rouget
7ddb160f9c do not send mouseevent twice 2016-02-20 05:03:10 +01:00
Glenn Watson
c0531c312f Add WebRender integration to Servo.
WebRender is an experimental GPU accelerated rendering backend for Servo.

The WebRender backend can be specified by running Servo with the -w option (otherwise the default rendering backend will be used).

WebRender has many bugs, and missing features - but it is usable to browse most websites - please report any WebRender specific rendering bugs you encounter!
2016-02-18 10:35:29 +10:00
Anthony Ramine
290694b27e Move util::cursor to style_traits 2016-02-16 00:50:01 +01:00
Anthony Ramine
680c817d53 Bump url to 0.5.5 2016-02-13 00:08:12 +01:00
Anthony Ramine
874fa5595f Bump euclid to 0.6.2 2016-02-13 00:08:08 +01:00
Anthony Ramine
2d6ac4da97 Bump app_units to 0.2.1 2016-02-13 00:08:05 +01:00
Anthony Ramine
c6262c368f Reorder dependencies in some Cargo.toml files 2016-02-13 00:08:04 +01:00
Josh Matthews
e9b98ad5fa Make iframes block the enclosing document's load event. Fixes #6663. 2016-02-10 09:20:00 -05:00
bors-servo
2a6707ce58 Auto merge of #9532 - nox:dedup-heapsize, r=Manishearth
Say farewell to in-tree HeapSizeOf

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.svg" height="40" alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/9532)
<!-- Reviewable:end -->
2016-02-05 03:40:36 +05:30
Anthony Ramine
cb5cd8d881 Say farewell to in-tree HeapSizeOf 2016-02-04 22:03:32 +01:00
bors-servo
647637193d Auto merge of #9512 - timvandermeij:feature-cleanup, r=frewsxcv
Remove old features 'clone_from_slice' and 'convert'

Fixes #9495.

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.svg" height="40" alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/9512)
<!-- Reviewable:end -->
2016-02-04 18:11:52 +05:30
Ms2ger
2ea9f2d028 Update Euclid. 2016-02-04 11:02:09 +01:00
Keith Yeung
9b23839394 Update rust-url 2016-02-02 20:04:01 -05:00
Tim van der Meij
a9472ede64 Remove old features 'clone_from_slice' and 'convert' 2016-02-03 00:55:13 +01:00
Ms2ger
add80b13f3 Move over to gaol from the servo repository. 2016-02-01 12:34:36 +01:00
Mátyás Mustoha
9e69ca660c Fix AArch64 target triplets 2016-01-28 11:17:37 +01:00
bors-servo
bc44ae679f Auto merge of #9401 - glennw:raf-timing, r=jdm
Fixes additional calls to rAF.

Often, a rAF callback will request another rAF from the callback itself.

Previously, the constellation would quickly receive two messages saying
that there were no animations, and then there are animations again in the
situation above. This would make the compositor tick the new animation straight
away, causing strange fluctuations and timings in rAF callbacks.

Instead, only send the NoAnimationCallbacks message if the animation
callback queue is still empty after invoking the callbacks.

This fixes rAF timing, which now runs at the correct (vsync) framerate.

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/9401)
<!-- Reviewable:end -->
2016-01-28 11:18:24 +05:30
Glenn Watson
6a85102a5a Ensure that when outputting screenshots, animations are ticked as required.
Fixes timeout in transition_calc.html.
2016-01-28 11:49:47 +10:00
Josh Matthews
c79231f9c6 Ignore navigation requests from pages that are not active. 2016-01-27 18:17:03 -05:00
Patrick Walton
e5a1af5b7a compositing: Fix a couple of bugs that prevented iframes from painting
after navigation.

The first bug was that iframes were not reflowed in their parent DOM
when the child page navigated. This is fixed by simply having the
constellation notify the appropriate script thread when navigation
occurs.

The second bug was that the compositor was unable to adjust the pipeline
for existing iframe layers, only new ones. This patch adds logic to do
that.

Closes #8081.
2016-01-26 16:37:23 -05:00
Patrick Walton
e4db0715e1 Dispatch scroll events to layers above others.
Closes #9416.
2016-01-25 16:42:37 -08:00
Lars Bergstrom
721693c43e Remove usage of Gaol in the Windows configuration, since sandboxing is not supported there yet. 2016-01-22 19:28:38 -06:00
Jason Williams
13d98f153a adding check for windows then using Scripts instead of bin 2016-01-22 19:27:29 -06:00
Matthew Kuo
58174448de changed compositor private types to public 2016-01-17 04:11:58 -08:00
Darin Minamoto
374bd5be27 Moving MouseButton from msg to script_traits 2016-01-13 19:23:45 -08:00
Joshua Holmer
83e66d6959 Move AnimationState to script_traits
Resolves #9223
2016-01-13 18:14:12 -05:00
bors-servo
3c6e16c9ad Auto merge of #9289 - mskrzypkows:move_FrameTreeId, r=KiChjang
Move FrameTreeId type to gfx_traits #9221

Fixes #9221.

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/9289)
<!-- Reviewable:end -->
2016-01-14 02:06:47 +05:30
bors-servo
897007f134 Auto merge of #9271 - apopiak:moveMozBrowserEvent_9225, r=KiChjang
Move `MozBrowserEvent` to `script_traits`

close #9225

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/9271)
<!-- Reviewable:end -->
2016-01-14 00:10:48 +05:30
apopiak
4b773cefe9 move MozBrowserEvent to script_traits (+ documentation) 2016-01-13 17:48:50 +01:00
bors-servo
0b5dda3e9c Auto merge of #9275 - Ms2ger:extern-crate, r=larsbergstrom
Remove some unused extern crates.

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/9275)
<!-- Reviewable:end -->
2016-01-13 21:16:35 +05:30
Maciej Skrzypkowski
e52c53a7f2 Move FrameTreeId type to gfx_traits #9221 2016-01-13 13:36:28 +01:00
Ms2ger
86d3c576f2 Remove some unused extern crates. 2016-01-13 09:37:28 +01:00
Brandon Fairchild
d1186eda7a Move DocumentState to script_traits
Fixes #9224.
2016-01-12 13:30:33 -05:00
Matt McCoy
a2bf5b6b51 Moving MouseEventType from msg to script_traits 2016-01-11 19:54:51 -05:00
bors-servo
fed41a42da Auto merge of #9257 - fmmartins:refactor-scripttraits, r=jdm
Move IFrameLoadInfo and IFrameSandboxState to script_traits

Hi, this should fix #8841!
Any change that might be needed please tell me

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/9257)
<!-- Reviewable:end -->
2016-01-12 01:44:27 +05:30
Fernando Martins
0ef003c20a moved IFrameLoadInfo and IFrameSandboxState to script_traits 2016-01-11 18:24:08 +00:00
John DeSilva
f32995543d Move Epoch to gfx_traits
Resolves #9222. Moved Epoch from components/msg/compositor_msg to
components/gfx_traits/lib. Updated use statements to reflect the move.
2016-01-10 17:36:52 -05:00
rohan.prinja
1f02c4ebbb task -> thread 2016-01-10 17:58:13 +09:00
Paul Rouget
268e285439 update pipeline url after redirections 2016-01-06 06:49:49 +01:00
Johannes Linke
6b215f38ee Fix a bunch of clippy lints 2016-01-02 23:27:15 +01:00
Simon Sapin
46bb3e5778 Make a debugging println!() conditional on is_running_problem_test
… like other print messages introduced in 19a1e57c90
2015-12-30 17:21:15 +00:00
Joe Kachmar
655268d111 Separate script and layout messages, issue #8843 2015-12-26 12:24:51 -05:00
bors-servo
da8952b702 Auto merge of #9044 - ecoal95:offscreen-gl-up, r=jdm
Update offscreen_gl_context

cc: https://github.com/ecoal95/rust-offscreen-rendering-context/pull/46

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/9044)
<!-- Reviewable:end -->
2015-12-23 20:35:37 +05:30