summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/scheduler/task-controller-setPriority-delayed-task.any.js
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/scheduler/task-controller-setPriority-delayed-task.any.js')
-rw-r--r--testing/web-platform/tests/scheduler/task-controller-setPriority-delayed-task.any.js31
1 files changed, 31 insertions, 0 deletions
diff --git a/testing/web-platform/tests/scheduler/task-controller-setPriority-delayed-task.any.js b/testing/web-platform/tests/scheduler/task-controller-setPriority-delayed-task.any.js
new file mode 100644
index 0000000000..43d24c8f92
--- /dev/null
+++ b/testing/web-platform/tests/scheduler/task-controller-setPriority-delayed-task.any.js
@@ -0,0 +1,31 @@
+// META: title=Scheduler: Change Delayed Task Priority
+// META: global=window,worker
+'use strict';
+
+promise_test(t => {
+ let taskCount = 0;
+ const start = performance.now();
+ const controller = new TaskController({priority: 'background'});
+
+ const task1 = scheduler.postTask(() => {
+ assert_equals(++taskCount, 1);
+ controller.setPriority('user-blocking');
+ }, {priority: 'user-blocking', delay: 10});
+
+ const task2 = scheduler.postTask(() => {
+ assert_equals(++taskCount, 2);
+
+ const elapsed = performance.now() - start;
+
+ if(navigator.userAgent.toLowerCase().indexOf('firefox') > -1){
+ // Firefox returns the timings with different precision,
+ // so we put 19 here.
+ assert_greater_than_equal(elapsed, 19);
+ } else {
+ assert_greater_than_equal(elapsed, 20);
+ }
+ }, {signal: controller.signal, delay: 20});
+
+ return Promise.all([task1, task2]);
+
+}, "Tests delay when changing a delayed task's priority");