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