gecko-dev/servo/components
Yati Sagade cda0c94d8c servo: Merge #19256 - Paint worklets: Implement timeout for worklet painter threads (from yati-sagade:master); r=asajeffrey
When a paint worklet thread takes too long, we would like to move on,
since we have a ~16ms budget for rendering at 60fps. At the moment, there
is no provision in the paintworklet spec to signal such timeouts to the
developer. ajeffrey opened an [issue][1] for this, but it got punted to
v2 of the spec. Hence we are silently timing out unresponsive paint
scripts.

The timeout value is chosen to be 10ms by default, and can be overridden
by setting the SERVO_PAINT_WORKLET_TIMEOUT_MS environment variable.

In the absence of such a timeout, the reftest in this commit would fail
by timing out the testrunner itself, since the paint script never
returns. From my discussions with ajeffrey, this should do until we spec
out a way to signal timeouts to the script developer.

This fixes #17370.

[1]: https://github.com/w3c/css-houdini-drafts/issues/507

<!-- 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
- [x] These changes fix #__ (github issue number if applicable).

<!-- Either: -->
- [x] 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. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: 54f8cc37c5a7874607128e3518fd0982f7065565

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 0234a7fd5437d1c2a9c0424b9e2bb51d309a4490
2017-12-22 04:50:16 -06:00
..
allocator servo: Merge #19061 - FreeType: don’t use usable_size() as deallocation size (from servo:ft-alloc); r=mbrubeck 2017-10-30 12:40:34 -05:00
atoms servo: Merge #19514 - Bump string_cache, html5ever and xml5ever (from Eijebong:bump); r=SimonSapin 2017-12-07 13:43:13 -06:00
bluetooth servo: Merge #18967 - Bump bitflags to 1.0 (from Eijebong:bitflags2.0); r=mbrubeck 2017-10-30 18:25:45 -05:00
bluetooth_traits servo: Merge #18890 - Update WR (details below): (from glennw:update-wr-clip-text-aa); r=jdm 2017-10-16 12:54:02 -05:00
canvas servo: Merge #19609 - remove unsued IpcReceiver (from tigercosmos:q1); r=emilio 2017-12-20 09:11:56 -06:00
canvas_traits servo: Merge #19510 - Update some dependencies, remove heapsize from the build (from servo:heapsize); r=nox 2017-12-08 07:49:54 -06:00
compositing servo: Merge #19621 - using local variable instead of a function call (from sbwtw:using_variable); r=jdm 2017-12-21 08:53:21 -06:00
config servo: Merge #19510 - Update some dependencies, remove heapsize from the build (from servo:heapsize); r=nox 2017-12-08 07:49:54 -06:00
constellation servo: Merge #19599 - Revert canvas IPC changes (from jdm:revertcanvas); r=asajeffrey 2017-12-18 10:19:30 -06:00
debugger servo: Merge #16013 - Enable the debugger on Android (from nox:mio); r=larsbergstrom 2017-03-17 08:36:27 -07:00
deny_public_fields servo: Merge #17514 - deny_public_fields: display field identifier in help message (from HarveyHunt:deny-public-fields-error-message); r=jdm 2017-06-25 10:45:42 -07:00
devtools servo: Merge #19364 - Update cookie to 0.10 (from nox:cookie); r=KiChjang 2017-11-24 03:50:37 -06:00
devtools_traits servo: Merge #19364 - Update cookie to 0.10 (from nox:cookie); r=KiChjang 2017-11-24 03:50:37 -06:00
dom_struct servo: Merge #19476 - Use workspace.default-members to specify default crates for cargo build (from servo:default-members); r=nox 2017-12-07 06:53:07 -06:00
domobject_derive servo: Merge #18204 - Fix quote dependency version (from servo:quote); r=bustage 2017-08-23 12:13:18 -05:00
fallible servo: Merge #19494 - Update smallvec to 0.6 (from Eijebong:smallvec); r=emilio 2017-12-05 13:44:19 -06:00
geometry servo: Merge #19510 - Update some dependencies, remove heapsize from the build (from servo:heapsize); r=nox 2017-12-08 07:49:54 -06:00
gfx servo: Merge #19554 - layout: support tiled gradients (from pyfisch:tiled-gradients1); r=mbrubeck 2017-12-14 13:20:34 -06:00
gfx_traits servo: Merge #18921 - Fix duplicate stacking context creation for anonymous Flows (from mrobinson:incremental-stacking-context-ids); r=emilio 2017-10-18 21:34:23 -05:00
hashglobe servo: Merge #19612 - deny warnings (from tigercosmos:o1); r=jdm 2017-12-21 13:57:04 -06:00
jstraceable_derive servo: Merge #18204 - Fix quote dependency version (from servo:quote); r=bustage 2017-08-23 12:13:18 -05:00
layout servo: Merge #19256 - Paint worklets: Implement timeout for worklet painter threads (from yati-sagade:master); r=asajeffrey 2017-12-22 04:50:16 -06:00
layout_thread servo: Merge #19256 - Paint worklets: Implement timeout for worklet painter threads (from yati-sagade:master); r=asajeffrey 2017-12-22 04:50:16 -06:00
layout_traits servo: Merge #18890 - Update WR (details below): (from glennw:update-wr-clip-text-aa); r=jdm 2017-10-16 12:54:02 -05:00
malloc_size_of servo: Merge #19510 - Update some dependencies, remove heapsize from the build (from servo:heapsize); r=nox 2017-12-08 07:49:54 -06:00
malloc_size_of_derive servo: Merge #18452 - Overhaul MallocSizeOf and related things (from nnethercote:bug-1398737); r=jdm 2017-09-11 22:11:25 -05:00
metrics servo: Merge #19516 - Print url of recorded PWM (from ferjm:pwm.url); r=jdm 2017-12-07 14:54:03 -06:00
msg servo: Merge #18967 - Bump bitflags to 1.0 (from Eijebong:bitflags2.0); r=mbrubeck 2017-10-30 18:25:45 -05:00
net servo: Merge #19538 - Use ? in Option more often (from emilio:questions-questions-questions); r=mbrubeck 2017-12-09 13:58:25 -06:00
net_traits servo: Merge #19487 - Update lazy_static to 1.0 (from Eijebong:bump); r=jdm 2017-12-05 10:31:16 -06:00
nonzero servo: Merge #18875 - Remove the need for rust-mozjs to use unstable Rust features (from servo:stable-js); r=nox,jdm 2017-10-16 17:07:50 -05:00
profile servo: Merge #18670 - added time to interactive metrics (from avadacatavra:interactive-metrics); r=jdm 2017-10-25 15:53:57 -05:00
profile_traits servo: Merge #18670 - added time to interactive metrics (from avadacatavra:interactive-metrics); r=jdm 2017-10-25 15:53:57 -05:00
rand servo: Merge #19487 - Update lazy_static to 1.0 (from Eijebong:bump); r=jdm 2017-12-05 10:31:16 -06:00
range servo: Merge #18938 - Replace all uses of the `heapsize` crate with `malloc_size_of` (from nnethercote:bug-1409255); r=SimonSapin 2017-10-18 13:56:05 -05:00
remutex servo: Merge #19487 - Update lazy_static to 1.0 (from Eijebong:bump); r=jdm 2017-12-05 10:31:16 -06:00
script servo: Merge #19256 - Paint worklets: Implement timeout for worklet painter threads (from yati-sagade:master); r=asajeffrey 2017-12-22 04:50:16 -06:00
script_layout_interface servo: Merge #19510 - Update some dependencies, remove heapsize from the build (from servo:heapsize); r=nox 2017-12-08 07:49:54 -06:00
script_plugins servo: Merge #19098 - Make the unrooted_must_root conditional on a default Cargo feature (from servo:minimal-plugin); r=jdm 2017-11-02 09:28:13 -05:00
script_traits servo: Merge #19256 - Paint worklets: Implement timeout for worklet painter threads (from yati-sagade:master); r=asajeffrey 2017-12-22 04:50:16 -06:00
selectors servo: Merge #19610 - style: Don't support a list of selectors in ::slotted yet (from emilio:slotted-list); r=xidorn 2017-12-20 11:09:50 -06:00
servo servo: Merge #19510 - Update some dependencies, remove heapsize from the build (from servo:heapsize); r=nox 2017-12-08 07:49:54 -06:00
servo_arc servo: Merge #19447 - servo_arc: Add some #[inline] and repr(C) annotations (from emilio:arc-soundness); r=jdm 2017-12-01 12:58:11 -06:00
size_of_test servo: Merge #16870 - Add size_of tests for geckolib selectors (from servo:size_of); r=emilio 2017-05-16 04:00:30 -05:00
style servo: Merge #19620 - style: Make sure to honor parse_method in transition and animation shorthands (from emilio:parse-transition-longhand); r=bbirtles 2017-12-21 07:01:59 -06:00
style_derive servo: Merge #19576 - style: Move text-align outside of the mako file (from canaltinova:text-align); r=Manishearth,emilio 2017-12-18 12:12:52 -06:00
style_traits servo: Merge #19510 - Update some dependencies, remove heapsize from the build (from servo:heapsize); r=nox 2017-12-08 07:49:54 -06:00
url servo: Merge #18938 - Replace all uses of the `heapsize` crate with `malloc_size_of` (from nnethercote:bug-1409255); r=SimonSapin 2017-10-18 13:56:05 -05:00
webdriver_server servo: Merge #19525 - Update to webdriver 0.33 (from mbrubeck:deps); r=nox 2017-12-08 10:29:08 -06:00
webvr servo: Merge #19510 - Update some dependencies, remove heapsize from the build (from servo:heapsize); r=nox 2017-12-08 07:49:54 -06:00
webvr_traits servo: Merge #18890 - Update WR (details below): (from glennw:update-wr-clip-text-aa); r=jdm 2017-10-16 12:54:02 -05:00