31 lines
955 B
JavaScript
31 lines
955 B
JavaScript
// 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");
|