enable(webContents) not working in preload script
- Dominant language
- TypeScript
- Stars
- 411
- Forks
- 53
- Avg merge
- 3m
- Merged PRs (30d)
- 1
Description
Hello everyone.
I am new on electron and trying to update an electron project from v11.5.0 to latest version (or at least last 17 sub version).
My setup:
"node": "14.16"
"@electron/remote": "^2.0.8",
"electron": "^12.0.0", (same issue with 13.6.9 or 17.3.1)
I am facing an issue trying to move from `enableRemoteModule` (in BrowserWindow's webPreferences) to `enable(webContents)`.
Here it is about a notification windows which should be opened and display the right content.
I stay on electron 12.0.0/13.6.9 in order to switch easily from one to the other.
Before (enableRemoteModule)
main:
```
win = new BrowserWindow({
...
webPreferences: {
webviewTag: true,
enableRemoteModule: true,
nativeWindowOpen: true,
contextIsolation: false,
preload: ...,
}
});
```
preload
```
const win = new remote.BrowserWindow({
...,
webPreferences: {
enableRemoteModule: true,
contextIsolation: false,
preload: ...,
}
});
```
After (enable)
main:
```
import * as remoteMain from '@electron/remote/main';
[...]
win = new BrowserWindow({
...
webPreferences: {
webviewTag: true,
nativeWindowOpen: true,
contextIsolation: false,
preload: ...,
}
});
remoteMain.enable(win.webContents)
```
preload:
```
const win = new remote.BrowserWindow({
...,
webPreferences: {
enableRemoteModule: true,
contextIsolation: false,
preload: ...,
}
});
remote.require("@electron/remote/main").enable(win.webContents);
```
I probably miss something important.
In preload.js, with enableRemoteModule: true, every thing works fine, my notification window open and is filled up with its content. Using enable, my notification window open but nothing is displayed in it. **I do not have any console warning or error.**
In main, using enable seems to work.
I guess it could be related to an initialization issue.
I do not know if it could help but I noticed that remoteMain.enable(win.webContents) in main returns _null_ and remote.require("@electron/remote/main").enable(win.webContents) returns _undefined_ in preload even if both emoteMain.enable and remote.require("@electron/remote/main").enable return the same exact function.
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.