Paint worklets: Add pref for blocking sleep to be enabled for wpt tests

In aa48a2c2e3 I added a timeout for paint
worklet threads. However, the test was broken. The blocking sleep
function that was implemented as part of that commit was guarded behind
the `dom.worklet.blockingsleep.enabled` pref, and while I ran the
wpt-tests with that pref enabled, the test runner for sure did not.
I tried running the test _without_ the pref enabled, and the tests still
pass. This is because even the reference in that reftest is that of
a broken image background, and *both* the paintworklet thread timing out
and `sleep()` not being in scope would render the same thing: a broken
image, which compares equal to the reference.

This patch makes sure that now the pref is enabled for wpt worklet
tests, and that such we can distinguish an actual timeout (test pass)
from an unexpected situation (when we should fail the test).
This commit is contained in:
Yati Sagade 2017-12-22 21:50:01 +01:00
parent 54f8cc37c5
commit 5a53cfd93c
3 changed files with 8 additions and 3 deletions

View file

@ -72459,7 +72459,7 @@
"reftest"
],
"mozilla/worklets/test_paint_worklet_timeout.js": [
"83cdbd59c905de898b72ba47d3ae10bb95d76301",
"3e4ff24fc85ad2956b741ff1785cecfb9641d792",
"support"
],
"mozilla/worklets/test_paint_worklet_timeout_ref.html": [

View file

@ -1 +1 @@
prefs: [dom.worklet.enabled:true]
prefs: [dom.worklet.enabled:true,dom.worklet.blockingsleep.enabled:true]

View file

@ -1,7 +1,12 @@
registerPaint("testgreen", class {
paint(ctx, size) {
try {
sleep(30); // too long for a paintworklet to init
} catch (e) {
console.log("Problem sleeping: " + e);
}
// should fail if control reaches here before timeout
ctx.fillStyle = 'green';
ctx.fillRect(0, 0, size.width, size.height);
sleep(30); // too long for a paintworklet to init
}
});