Index: third_party/WebKit/LayoutTests/inspector-protocol/debugger/postMessage-on-pause.js |
diff --git a/third_party/WebKit/LayoutTests/inspector-protocol/debugger/postMessage-on-pause.js b/third_party/WebKit/LayoutTests/inspector-protocol/debugger/postMessage-on-pause.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..6a2b7b1f3d9877ea86618bda8aa2dac3630970b5 |
--- /dev/null |
+++ b/third_party/WebKit/LayoutTests/inspector-protocol/debugger/postMessage-on-pause.js |
@@ -0,0 +1,42 @@ |
+(async function(testRunner) { |
+ let {page, session, dp} = await testRunner.startBlank(''); |
+ |
+ dp.Debugger.enable(); |
+ dp.Runtime.evaluate({expression: ` |
+ var messageDispatched = false; |
+ window.addEventListener('message', event => { |
+ messageDispatched = true; |
+ debugger; |
+ }, true); |
+ |
+ (function testFunction() { |
+ window.postMessage('test', '*'); |
+ debugger; |
+ })() |
+ `}); |
+ |
+ await dp.Debugger.oncePaused(); |
+ testRunner.log(`Paused on 'debugger;'`); |
+ |
+ var messageObject = await dp.Runtime.evaluate({expression: 'messageDispatched' }); |
+ var r = messageObject.result.result; |
+ if (r.type === 'boolean' && r.value === false) |
+ testRunner.log('PASS: message has not been dispatched yet.'); |
+ else |
+ testRunner.log('FAIL: unexpected response ' + JSON.stringify(messageObject, null, 2)); |
+ |
+ messageObject = await dp.Runtime.evaluate({expression: 'messageDispatched' }); |
+ r = messageObject.result.result; |
+ if (r.type === 'boolean' && r.value === false) |
+ testRunner.log('PASS: message has not been dispatched yet.'); |
+ else |
+ testRunner.log('FAIL: unexpected response ' + JSON.stringify(messageObject, null, 2)); |
+ |
+ await dp.Debugger.resume(); |
+ testRunner.log('Resumed, now waiting for pause in the event listener...'); |
+ |
+ await dp.Debugger.oncePaused(); |
+ testRunner.log('PASS: pasued in the event listener.'); |
+ await dp.Debugger.resume(); |
+ testRunner.completeTest(); |
+}) |