Electron 9.0.0
Electron 9.0.0 已发布! 它包括升级到 Chromium 83
, V8 8.3
, 和 Node.js 12.14
。 We've added several new API integrations for our spellchecker feature, enabled PDF viewer, and much more!
Electron 团队很高兴发布了 Electron 9.0.0.0! 您可以通过 npm 安装electron@later
或者从我们的 发布网站 下载它。 这次发布包含升级、修复和新功能。 We can't wait to see what you build with them! Continue reading for details about this release, and please share any feedback you have!
重要变化
架构(Stack)更新
- Chromium
83.0.4103.64
- Node.js
12.14.1
- V8
8.3
Highlight Features
- Multiple improvements to the spellchecker feature. See more details in #22128 and #22368.
- Improved window events handler efficiency on Linux. #23260.
- Enable PDF viewer. #22131.
有关新功能和变更的完整列表,请参阅 9.0.0 发布通知 。
重大更改
- Deprecation warning when using
remote
withoutenableRemoteModule: true
. #21546- This is the first step in our plans for deprecating the
remote
module and moving it to userland. You can read and follow this issue that details our reasons for this and includes a proposed timeline for deprecation.
- This is the first step in our plans for deprecating the
- Set
app.enableRendererProcessReuse
to true by default. #22336- This is continued work for a future requirement that native Node modules loaded in the renderer process be either N-API or Context Aware. Full info and proposed timeline is detailed in this issue.
- Sending non-JavaScript objects over IPC now throws an exception. #21560
- This behavior was depreciated in Electron 8.0. In Electron 9.0, the old serialization algorithm has been removed, and sending such non-serializable objects will now throw an "object could not be cloned" error.
有关这些和未来变化的更多信息可在 计划的破坏性变化 页面找到。
API 更改
shell
API changes:- The
shell.openItem
API has been replaced with an asynchronousshell.openPath API
. proposal
- The
session
API changes:- Added
session.listWordsFromSpellCheckerDictionary
API to list custom words in the dictionary. #22128 - Added
session.removeWordFromSpellCheckerDictionary
API to remove custom words in the dictionary. #22368 - Added
session.serviceWorkerContext
API to access basic service worker info and receive console logs from service workers. #22313
- Added
app
API changes:- Added a new force parameter to
app.focus()
on macOS to allow apps to forcefully take focus. #23447
- Added a new force parameter to
BrowserWindow
API changes:- Added support for property access to some getter/setter pairs on
BrowserWindow
. #23208
- Added support for property access to some getter/setter pairs on
Deprecated APIs
The following APIs are now deprecated or removed:
shell.openItem
API is now depreciated, and replaced with an asynchronousshell.openPath API
.<webview>.getWebContents
, which was deprecated in Electron 8.0, is now removed.webFrame.setLayoutZoomLevelLimits
, which was deprecated in Electron 8.0, is now removed.
终止对 6.x.y 的支持
Electron 6.x.y has reached end-of-support as per the project's support policy. 我们鼓励开发者将应用程序升级到更新的 Electron 版本。
接下来
在短期内,您可以期待团队继续专注于跟上构成 Electron 的主要组件的开发,包括 Chromium、Node 和 V8。 尽管我们谨慎地避免对发布日期做出承诺,但我们的计划是大约每季度发布一次 Electron 的新主要版本以及这些组件的新版本。 暂定 10.0.0 时间表 展示了 Electron 10.0 开发生命周期中的关键日期。 Also, see our versioning document for more detailed information about versioning in Electron.
For information on planned breaking changes in upcoming versions of Electron, see our Planned Breaking Changes doc.
Change the default of contextIsolation
from false
to true
(Starting in Electron 10)
Without contextIsolation, any code running in a renderer process can quite easily reach into Electron internals or an app's preload script. That code can then perform privileged actions that Electron wants to keep restricted.
Changing this default improves the default security of Electron apps, so that apps will need to deliberately opt in to the insecure behaviour. Electron will depreciate the current default of contextIsolation
in Electron 10.0, and change to the new default (true
) in Electron 12.0.
For more information on contextIsolation
, how to enable it easily and it's security benefits please see our dedicated Context Isolation Document.