Skip to content

Commit

Permalink
chore: deprecate nativeWindowOpen in Electron 17 (#32116)
Browse files Browse the repository at this point in the history
  • Loading branch information
miniak committed Jan 6, 2022
1 parent c3b9f0e commit 2f9fd06
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 1 deletion.
10 changes: 10 additions & 0 deletions docs/breaking-changes.md
Expand Up @@ -45,6 +45,16 @@ However, you should consider further restricting the information returned to
the renderer; for instance, displaying a source selector to the user and only
returning the selected source.

### Deprecated: `nativeWindowOpen`

Prior to Electron 15, `window.open` was by default shimmed to use
`BrowserWindowProxy`. This meant that `window.open('about:blank')` did not work
to open synchronously scriptable child windows, among other incompatibilities.
Since Electron 15, `nativeWindowOpen` has been enabled by default.

See the documentation for [window.open in Electron](api/window-open.md)
for more details.

## Planned Breaking API Changes (16.0)

### Behavior Changed: `crashReporter` implementation switched to Crashpad on Linux
Expand Down
7 changes: 6 additions & 1 deletion lib/browser/api/web-contents.ts
@@ -1,4 +1,4 @@
import { app, ipcMain, session, webFrameMain } from 'electron/main';
import { app, ipcMain, session, deprecate, webFrameMain } from 'electron/main';
import type { BrowserWindowConstructorOptions, LoadURLOptions } from 'electron/main';

import * as url from 'url';
Expand Down Expand Up @@ -734,6 +734,11 @@ WebContents.prototype._init = function () {
}
});
});

const prefs = this.getLastWebPreferences() || {};
if (prefs.nativeWindowOpen === false) {
deprecate.log('Deprecation Warning: Disabling nativeWindowOpen is deprecated. The nativeWindowOpen option will be removed in Electron 18.');
}
}

this.on('login', (event, ...args) => {
Expand Down

0 comments on commit 2f9fd06

Please sign in to comment.