diff --git a/tests/wpt/metadata/MANIFEST.json b/tests/wpt/metadata/MANIFEST.json index a6ded09628b..b63cdb025a4 100644 --- a/tests/wpt/metadata/MANIFEST.json +++ b/tests/wpt/metadata/MANIFEST.json @@ -698932,7 +698932,7 @@ "testharness" ], "html/webappapis/scripting/processing-model-2/unhandled-promise-rejections/promise-rejection-events-onerror.html": [ - "b6f6d63e0aa9660909c93e7366f80f4f36c97ecf", + "b6c02d27c9ef67418210e808eb92256606c273c7", "testharness" ], "html/webappapis/scripting/processing-model-2/unhandled-promise-rejections/promise-rejection-events.dedicatedworker.html": [ @@ -698956,7 +698956,7 @@ "support" ], "html/webappapis/scripting/processing-model-2/unhandled-promise-rejections/support/promise-rejection-events.js": [ - "f371bc1da900a596b6e49dbe86b22a7c20ae2cc2", + "036e1784dbb79e07cd533256cd391583191f4aa8", "support" ], "html/webappapis/scripting/processing-model-2/window-onerror-parse-error.html": [ diff --git a/tests/wpt/web-platform-tests/html/webappapis/scripting/processing-model-2/unhandled-promise-rejections/promise-rejection-events-onerror.html b/tests/wpt/web-platform-tests/html/webappapis/scripting/processing-model-2/unhandled-promise-rejections/promise-rejection-events-onerror.html index b6f6d63e0aa..b6c02d27c9e 100644 --- a/tests/wpt/web-platform-tests/html/webappapis/scripting/processing-model-2/unhandled-promise-rejections/promise-rejection-events-onerror.html +++ b/tests/wpt/web-platform-tests/html/webappapis/scripting/processing-model-2/unhandled-promise-rejections/promise-rejection-events-onerror.html @@ -27,11 +27,21 @@ async_test(function(t) { }; var p = Promise.reject(e); - setTimeout(function() { - setTimeout(t.step_func(function() { + queueTask(function() { + queueTask(t.step_func(function() { // This will cause onrejectionhandled p.catch(function() {}); - }), 0); - }, 0); + })); + }); }, 'Throwing inside an unhandledrejection handler invokes the error handler.'); + +// This function queues a task in "DOM manipulation task source" +function queueTask(f) { + var d = document.createElement("details"); + d.ontoggle = function() { + f(); + }; + + d.setAttribute("open", ""); +} diff --git a/tests/wpt/web-platform-tests/html/webappapis/scripting/processing-model-2/unhandled-promise-rejections/support/promise-rejection-events.js b/tests/wpt/web-platform-tests/html/webappapis/scripting/processing-model-2/unhandled-promise-rejections/support/promise-rejection-events.js index f371bc1da90..036e1784dbb 100644 --- a/tests/wpt/web-platform-tests/html/webappapis/scripting/processing-model-2/unhandled-promise-rejections/support/promise-rejection-events.js +++ b/tests/wpt/web-platform-tests/html/webappapis/scripting/processing-model-2/unhandled-promise-rejections/support/promise-rejection-events.js @@ -831,30 +831,29 @@ if ('document' in self) { var p = Promise.reject(); - setTimeout(function() { - queueTask(function() { - sequenceOfEvents.push('task before catch'); - checkSequence(); - }); - - p.catch(function() { - sequenceOfEvents.push('catch'); - checkSequence(); - }); - - queueTask(function() { - sequenceOfEvents.push('task after catch'); - checkSequence(); - }); - - sequenceOfEvents.push('after catch'); - checkSequence(); - }, 10); - function unhandled(ev) { if (ev.promise === p) { sequenceOfEvents.push('unhandled'); checkSequence(); + setTimeout(function() { + queueTask(function() { + sequenceOfEvents.push('task before catch'); + checkSequence(); + }); + + p.catch(function() { + sequenceOfEvents.push('catch'); + checkSequence(); + }); + + queueTask(function() { + sequenceOfEvents.push('task after catch'); + checkSequence(); + }); + + sequenceOfEvents.push('after catch'); + checkSequence(); + }, 10); } }