task-controller-setPriority-delayed-task.any.js (955B)
1 // META: title=Scheduler: Change Delayed Task Priority 2 // META: global=window,worker 3 'use strict'; 4 5 promise_test(t => { 6 let taskCount = 0; 7 const start = performance.now(); 8 const controller = new TaskController({priority: 'background'}); 9 10 const task1 = scheduler.postTask(() => { 11 assert_equals(++taskCount, 1); 12 controller.setPriority('user-blocking'); 13 }, {priority: 'user-blocking', delay: 10}); 14 15 const task2 = scheduler.postTask(() => { 16 assert_equals(++taskCount, 2); 17 18 const elapsed = performance.now() - start; 19 20 if(navigator.userAgent.toLowerCase().indexOf('firefox') > -1){ 21 // Firefox returns the timings with different precision, 22 // so we put 19 here. 23 assert_greater_than_equal(elapsed, 19); 24 } else { 25 assert_greater_than_equal(elapsed, 20); 26 } 27 }, {signal: controller.signal, delay: 20}); 28 29 return Promise.all([task1, task2]); 30 31 }, "Tests delay when changing a delayed task's priority");