| // META: title=Scheduler: Tasks Run in Priority Order |
| // META: global=window,worker |
| |
| promise_test(async t => { |
| const runOrder = []; |
| const schedule = (id, priority) => scheduler.postTask(() => { runOrder.push(id); }, {priority}); |
| |
| // Post tasks in reverse priority order and expect they are run from highest |
| // to lowest priority. |
| const tasks = []; |
| tasks.push(schedule('B1', 'background')); |
| tasks.push(schedule('B2', 'background')); |
| tasks.push(schedule('UV1', 'user-visible')); |
| tasks.push(schedule('UV2', 'user-visible')); |
| tasks.push(schedule('UB1', 'user-blocking')); |
| tasks.push(schedule('UB2', 'user-blocking')); |
| |
| await Promise.all(tasks); |
| |
| assert_equals(runOrder.toString(),'UB1,UB2,UV1,UV2,B1,B2'); |
| }, 'Test scheduler.postTask task run in priority order'); |