feat: add webFrameMain.send() / webFrameMain.postMessage() (#26807)
This commit is contained in:
parent
28b6579538
commit
2be3d03630
14 changed files with 340 additions and 209 deletions
|
@ -60,9 +60,18 @@ describe('renderer nodeIntegrationInSubFrames', () => {
|
|||
const [event1] = await detailsPromise;
|
||||
const pongPromise = emittedOnce(ipcMain, 'preload-pong');
|
||||
event1[0].reply('preload-ping');
|
||||
const details = await pongPromise;
|
||||
expect(details[1]).to.equal(event1[0].frameId);
|
||||
expect(details[1]).to.equal(event1[0].senderFrame.routingId);
|
||||
const [, frameId] = await pongPromise;
|
||||
expect(frameId).to.equal(event1[0].frameId);
|
||||
});
|
||||
|
||||
it('should correctly reply to the main frame with using event.senderFrame.send', async () => {
|
||||
const detailsPromise = emittedNTimes(ipcMain, 'preload-ran', 2);
|
||||
w.loadFile(path.resolve(__dirname, `fixtures/sub-frames/frame-container${fixtureSuffix}.html`));
|
||||
const [event1] = await detailsPromise;
|
||||
const pongPromise = emittedOnce(ipcMain, 'preload-pong');
|
||||
event1[0].senderFrame.send('preload-ping');
|
||||
const [, frameId] = await pongPromise;
|
||||
expect(frameId).to.equal(event1[0].frameId);
|
||||
});
|
||||
|
||||
it('should correctly reply to the sub-frames with using event.reply', async () => {
|
||||
|
@ -71,9 +80,18 @@ describe('renderer nodeIntegrationInSubFrames', () => {
|
|||
const [, event2] = await detailsPromise;
|
||||
const pongPromise = emittedOnce(ipcMain, 'preload-pong');
|
||||
event2[0].reply('preload-ping');
|
||||
const details = await pongPromise;
|
||||
expect(details[1]).to.equal(event2[0].frameId);
|
||||
expect(details[1]).to.equal(event2[0].senderFrame.routingId);
|
||||
const [, frameId] = await pongPromise;
|
||||
expect(frameId).to.equal(event2[0].frameId);
|
||||
});
|
||||
|
||||
it('should correctly reply to the sub-frames with using event.senderFrame.send', async () => {
|
||||
const detailsPromise = emittedNTimes(ipcMain, 'preload-ran', 2);
|
||||
w.loadFile(path.resolve(__dirname, `fixtures/sub-frames/frame-container${fixtureSuffix}.html`));
|
||||
const [, event2] = await detailsPromise;
|
||||
const pongPromise = emittedOnce(ipcMain, 'preload-pong');
|
||||
event2[0].senderFrame.send('preload-ping');
|
||||
const [, frameId] = await pongPromise;
|
||||
expect(frameId).to.equal(event2[0].frameId);
|
||||
});
|
||||
|
||||
it('should correctly reply to the nested sub-frames with using event.reply', async () => {
|
||||
|
@ -82,9 +100,18 @@ describe('renderer nodeIntegrationInSubFrames', () => {
|
|||
const [, , event3] = await detailsPromise;
|
||||
const pongPromise = emittedOnce(ipcMain, 'preload-pong');
|
||||
event3[0].reply('preload-ping');
|
||||
const details = await pongPromise;
|
||||
expect(details[1]).to.equal(event3[0].frameId);
|
||||
expect(details[1]).to.equal(event3[0].senderFrame.routingId);
|
||||
const [, frameId] = await pongPromise;
|
||||
expect(frameId).to.equal(event3[0].frameId);
|
||||
});
|
||||
|
||||
it('should correctly reply to the nested sub-frames with using event.senderFrame.send', async () => {
|
||||
const detailsPromise = emittedNTimes(ipcMain, 'preload-ran', 3);
|
||||
w.loadFile(path.resolve(__dirname, `fixtures/sub-frames/frame-with-frame-container${fixtureSuffix}.html`));
|
||||
const [, , event3] = await detailsPromise;
|
||||
const pongPromise = emittedOnce(ipcMain, 'preload-pong');
|
||||
event3[0].senderFrame.send('preload-ping');
|
||||
const [, frameId] = await pongPromise;
|
||||
expect(frameId).to.equal(event3[0].frameId);
|
||||
});
|
||||
|
||||
it('should not expose globals in main world', async () => {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue