fix: EventEmitter is missing properties in sandbox preload script. (#35522)
This commit is contained in:
parent
30bdede09f
commit
532162d2b5
3 changed files with 32 additions and 0 deletions
|
@ -2970,6 +2970,26 @@ describe('BrowserWindow module', () => {
|
|||
expect(url).to.equal(expectedUrl);
|
||||
});
|
||||
|
||||
it('exposes full EventEmitter object to preload script', async () => {
|
||||
const w = new BrowserWindow({
|
||||
show: false,
|
||||
webPreferences: {
|
||||
sandbox: true,
|
||||
preload: path.join(fixtures, 'module', 'preload-eventemitter.js')
|
||||
}
|
||||
});
|
||||
w.loadURL('about:blank');
|
||||
const [, rendererEventEmitterProperties] = await emittedOnce(ipcMain, 'answer');
|
||||
const { EventEmitter } = require('events');
|
||||
const emitter = new EventEmitter();
|
||||
const browserEventEmitterProperties = [];
|
||||
let currentObj = emitter;
|
||||
do {
|
||||
browserEventEmitterProperties.push(...Object.getOwnPropertyNames(currentObj));
|
||||
} while ((currentObj = Object.getPrototypeOf(currentObj)));
|
||||
expect(rendererEventEmitterProperties).to.deep.equal(browserEventEmitterProperties);
|
||||
});
|
||||
|
||||
it('should open windows in same domain with cross-scripting enabled', async () => {
|
||||
const w = new BrowserWindow({
|
||||
show: true,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue