低代码到底是不是行业毒瘤?一线大厂怎么做的?戳此了解>>> 了解详情
写点什么

Electron 9.0.0 发布!带来三项重大改进,不再支持 Electron 6

2020 年 5 月 20 日

Electron 9.0.0发布!带来三项重大改进,不再支持Electron 6

“真香”定律再度应验。


美国时间 5 月 19 日,Electron 团队宣布 Electron 9.0.0 正式发布。新版包括了 Chromium 83、V8 8.3 和 Node.js 12.14 几个组件的升级。此次更新为拼写检查器功能添加了几个新的 API 集成,并新增了 PDF 查看器,还有很多其他的更新。


开发者可以在 npm 上使用 npm install electro@latest 命令安装,或从 Electron 的发行网站下载(https://electronjs.org/releases/stable)。新版本包含众多升级、修补程序和新功能,本文会介绍这个版本的更新细节。


值得关注的更改

栈更改


重要特性

  • 拼写检查器功能新增多项改进。请参阅 #22128 和 #22368 了解更多细节。

  • Linux 上的窗口事件处理程序效率提升。#23260。

  • 新增 PDF 查看器。#22131。


关于新功能和更改的完整列表,请参见 9.0.0 发行说明:


https://github.com/electron/electron/releases/tag/v9.0.0


重大改进

  • 使用 remote 模块时如不带 enableRemoteModle: true,会发出弃用警告。#21546

  • 这是我们计划弃用 remote 模块并将其移至用户区的第一步。可以关注这个 issue(https://github.com/electron/electron/issues/21408)了解细节,其中详细说明了此举的原因,还列出了建议的弃用时间表。

  • 默认情况下,将 app.enableRendererProcessReuse 设置为 true。#22336

  • 这是一项持续性工作,针对未来的一个需求,即渲染器进程中加载​​的原生 Node 模块应为 N-API 或 Context Aware 之一。这个 issue 详细介绍了完整的信息和建议的时间表(https://github.com/electron/electron/issues/18397)。

  • 现在,通过 IPC 发送非 JavaScript 对象会抛出异常。#21560

  • 此行为在 Electron 8.0 中已弃用。在 Electron 9.0 中,旧的序列化算法已被移除,现在,发送这一类不可序列化的对象将出现“object could not be cloned(无法克隆的对象)”错误。


关于这些改进以及未来改进的更多信息,请参阅“计划的重大改进”页面:


https://github.com/electron/electron/blob/master/docs/breaking-changes.md


API 更改

  • shell API 更改:

  • shell.openItem API 已替换为异步的 shell.openPath API。(https://github.com/electron/governance/blob/master/wg-api/spec-documents/shell-openitem.md

  • session API 更改:

  • 添加了 session.listWordsFromSpellCheckerDictionary API,以列出字典中的自定义单词。#22128

  • 添加了 session.removeWordFromSpellCheckerDictionary API,以删除字典中的自定义单词。#22368

  • 添加了 session.serviceWorkerContext API,以访问基本服务 worker 信息并接收来自服务 worker 的控制台日志。#22313

  • app API 更改:

  • 在 macOS 上的 app.focus()中添加了一个新的 force 参数,以允许应用强制聚焦。#23447

  • BrowserWindow API 更改:

  • 添加了对 BrowserWindow 上某些 getter/setter 对的属性访问的支持。#23208


弃用的 API

新版已弃用或移除了以下 API:


  • shell.openItem API 现已弃用,并用异步的 shell.openPath API 代替。

  • .getWebContents(在 Electron 8.0 中已弃用)现已移除。

  • webFrame.setLayoutZoomLevelLimits(在 Electron 8.0 中已弃用)现已移除。


对 6.x.y 的支持终止

根据项目的支持政策(https://electronjs.org/docs/tutorial/support#supported-versions),Electron 6.x.y 已达到支持终止阶段。我们鼓励开发人员和应用程序升级到新版本的 Electron。


下一步计划

在短期内,你可以期望团队继续专注于构成 Electron 的主要组件(包括 Chromium、Node 和 V8)的开发工作。虽然我们不会对未来版本的发布日期做出明确的保证,但我们的计划是大约每个季度更新 Electron 的主版本,同时更新这些组件的版本。暂定的 10.0.0 时间表中列出了 Electron 10.0 开发周期中的关键时点:


https://electronjs.org/docs/tutorial/electron-timelines


另请参阅我们的版本控制文档,获取有关 Electron 中版本控制的更多细节:


https://electronjs.org/docs/tutorial/electron-versioning


关于未来的 Electron 版本中计划的重大更改细节,请参阅我们计划中的重大更改文档:


https://github.com/electron/electron/blob/master/docs/breaking-changes.md


将 contextIsolation 的默认值从 false 更改为 true(从 Electron 10 开始)

如果没有 contextIsolation,在渲染器进程中运行的任何代码都可以很容易地进入 Electron 内部或应用的预加载脚本中。然后这些代码就可以执行一些 Electron 想要限制的特权操作了。


更改这个默认设置可提高 Electron 应用的默认安全性,新设置下应用需要主动开启选项才能执行不安全行为。Electron 将在 Electron 10.0 中弃用 contextIsolation 当前的默认值,并在 Electron 12.0 中更改为新的默认值(true)。


关于 contextIsolation 的介绍、启用方法以及安全性细节,请参阅我们专门编写的 Context Isolation 文档:


https://github.com/electron/electron/blob/master/docs/tutorial/context-isolation.md


针对新版的反馈可通过 Twitter 提交:https://twitter.com/electronjs


需要帮助或提交 bug,请联系:https://www.electronjs.org/contact


延伸阅读

https://www.electronjs.org/blog/electron-9-0


2020 年 5 月 20 日 15:382602

评论

发布
暂无评论
发现更多内容

前端170面试题+答案学习整理(良心制作)

魔王哪吒

程序员 面试 前端 28天写作 2月春节不断更

LiteOS:SpinLock自旋锁及LockDep死锁检测

华为云开发者社区

死锁 LiteOS 自旋锁 SpinLock LockDep

元宵佳节快乐哦

Nydia

开源镜像仓库Harbor的镜像安全

运维研习社

Docker 安全 Harbor CI/CD

如何探索自己的职业价值观,让工作更有动力

一笑

28天写作

我看JAVA 之 枚举类型

awen

Java 源码 jdk 枚举

【LeetCode】猜字谜Java题解

HQ数字卡

算法 LeetCode 28天写作 2月春节不断更

周末调整

IT蜗壳-Tango

七日更 28天写作 2月春节不断更 IT蜗壳

简单脚本监控SSL证书,并到期提醒续签

运维研习社

从萧何进入咸阳丞相府到数字化时代的决策

数列科技杨德华

28天写作

如何学习一项技能

不在调上

这道 Hard 到底难在哪里?大概是难在考察的全是违反“人性直觉”的内容吧 ...

宫水三叶的刷题日记

LeetCode 数据结构与算法 面试数据结构与算法

28天瞎写的第二百四十五天:怎么样开始练习冥想?

树上

冥想 28天写作 正念

记忆这件“小事”「Day 7」

道伟

心理学 28天写作

我看JAVA 之 Thread & ThreadLocal

awen

Java 源码 多线程

【管理笔记14】行销活动的意义及范围

俊毅

28天写作

Linux常见IO分析工具

运维研习社

智能客服+智能助手,这波“数字员工”的业务能力太强了!

华为云开发者社区

华为 AI 数字 智能客服 智能助手

翻译:《实用的 Python 编程》02_07_Objects

codists

Python

万绿丛中一点红——雷斯多夫效应

Justin

心理学 交互设计 28天写作 游戏设计

我看JAVA 之 基本数据类型与封装类型

awen

Java 源码 基本数据类型

我看JAVA 之 Class

awen

Java 源码 jdk class

收音机焊接

aaaaa

Elasticsearch 相关度评分

escray

elastic 七日更 28天写作 死磕Elasticsearch 60天通过Elastic认证考试 2月春节不断更

Nginx中常见header配置及修改

运维研习社

nginx Linux

我看JAVA 之 Annotation

awen

Java 源码 jdk 注解 annotation

分布式应用监控与链路追踪:SkyWalking

xcbeyond

微服务 监控 Skywalking 调用链 28天写作

产品迭代最有力的工具:每周产品讨论会

boshi

产品策略 七日更

优雅地停止Spring Boot应用

韩斌

(28DW-S8-Day7) 比特币原始文献略读

mtfelix

比特币 区块链 白皮书 28天写作 工作量证明

写给 Go 初学者的指北

Rayjun

go

2021 ThoughtWorks 技术雷达峰会

2021 ThoughtWorks 技术雷达峰会

Electron 9.0.0发布!带来三项重大改进,不再支持Electron 6-InfoQ