mirror of
https://github.com/electron/electron.git
synced 2026-04-10 03:01:51 -04:00
feat: add worldSafe flag for executeJS results (#24114)
* feat: add worldSafe flag for executeJS results * chore: do not log warning for webContents.executeJS * Apply suggestions from code review Co-authored-by: Jeremy Rose <jeremya@chromium.org> * chore: apply PR feedback * chore: split logic a bit * chore: allow primitives through the world safe checl * chore: clean up per PR feedback * chore: flip boolean logic * chore: update per PR feedback * chore: fix typo * chore: fix spec Co-authored-by: Jeremy Rose <jeremya@chromium.org>
This commit is contained in:
10
spec/fixtures/pages/world-safe-preload-error.js
vendored
Normal file
10
spec/fixtures/pages/world-safe-preload-error.js
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
const { ipcRenderer, webFrame } = require('electron');
|
||||
|
||||
webFrame.executeJavaScript(`(() => {
|
||||
return Object(Symbol('a'));
|
||||
})()`).catch((err) => {
|
||||
// Considered safe if the object is constructed in this world
|
||||
ipcRenderer.send('executejs-safe', err);
|
||||
}).then(() => {
|
||||
ipcRenderer.send('executejs-safe', null);
|
||||
});
|
||||
8
spec/fixtures/pages/world-safe-preload.js
vendored
Normal file
8
spec/fixtures/pages/world-safe-preload.js
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
const { ipcRenderer, webFrame } = require('electron');
|
||||
|
||||
webFrame.executeJavaScript(`(() => {
|
||||
return {};
|
||||
})()`).then((obj) => {
|
||||
// Considered safe if the object is constructed in this world
|
||||
ipcRenderer.send('executejs-safe', obj.constructor === Object);
|
||||
});
|
||||
Reference in New Issue
Block a user