// 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");