task-controller-setPriority1.any.js (823B)
1 // META: title=Scheduler: TaskController.setPriority() 2 // META: global=window,worker 3 'use strict'; 4 5 promise_test(async t => { 6 const controller = new TaskController(); 7 const signal = controller.signal; 8 9 const tasks = []; 10 const runOrder = []; 11 const callback = id => { runOrder.push(id); }; 12 13 for (let i = 0; i < 5; i++) 14 tasks.push(scheduler.postTask(() => callback(i), {signal})); 15 tasks.push(scheduler.postTask(() => callback(5), {priority: 'user-blocking'})); 16 tasks.push(scheduler.postTask(() => callback(6), {priority: 'user-visible' })); 17 18 controller.setPriority('background'); 19 assert_equals(signal.priority, 'background'); 20 21 await Promise.all(tasks); 22 23 assert_equals(runOrder.toString(), '5,6,0,1,2,3,4'); 24 }, 'Test that TaskController.setPriority() changes the priority of all associated tasks');