Electron 22.0.0
Electron 22.0.0 がリリースされました! これには新しいユーティリティプロセス API、 Windows 7/8/8.1 サポートの更新と、Chromium 108
、V8 10.8
、Node.js 16.17.1
へのアップグレードが含まれています。 詳しくは以下をご覧ください!
Electron チームは、Electron 22.0.0 のリリース発表にワクワクしています! npm install electron@latest
から npm でインストールするか、リリースウェブサイト からダウンロードできます。 このリリースの詳細は続きをご覧ください。
フィードバックがあれば、Twitterで共有するか、コミュニティ Discordに参加してください! バグや機能の要望は Electron の Issue トラッカー で報告できます。
注目すべき変更
累積的変更
- Chromium
108
- Node.js
16.17.1
- V8
10.8
注目の機能
UtilityProcess API #36089
新しい UtilityProcess
メインプロセスモジュールは、Node.js のみと統合した軽量の Chromium 子プロセスを作成できる一方、MessageChannel
でサンドボックス化したレンダラとの通信もできます。 API は Node.js の child_process.fork
をベースに設計されており、移行が容易です。主な違いはそのエントリポイントの modulePath
がアプリケーションのパッケージ内でなければならず、信頼できるスクリプトのみがロードできます。 さらに、このモジュールはデフォルトでレンダラーとの通信チャンネルを確立しないので、メインプロセスがアプリケーションで唯一信頼できるプロセスであるという契約を維持します。
新しい UtilityProcess API については、こちらのドキュメント で詳しく説明しています。
Windows 7/8/8.1 サポートの更新
2023/02/16: Windows Server 2012 サポートの更新情報
先月、Google は Chrome 109 が Windows Server 2012 および Windows Server 2012 R2 に対して 2023 年 10 月 10 日まで致命的なセキュリティ修正を受け続ける ことを発表しました。 これに伴い、Electron 22 (Chromium 108) の EOL の予定日を 2023 年 5 月 30 日から 2023 年 10 月 10 日に延長します。 Electron チームは、2023 年 10 月 10 日までこのプログラムの一部であるセキュリティ修正の Electron 22 へのバックポートを継続する予定です。
なお、Windows 7/8/8.1 についてはさらなるセキュリティ修正を行いません。 Electron 23 (Chromium 110) も、既報の通り Windows 10 以上でのみ機能します。
Electron 22 は、Windows 7/8/8.1 をサポートする最後の Electron メジャーバージョンとなります。 Electron は Chromium の非推奨の方針の予定に従っており、Chromium 109 での Windows 7/8/8.1 サポートが非推奨になります (詳細はこちら)。
Electron 23 以降のメジャーリリースでは、Windows 7/8/8.1 には対応しません。
さらなる注目の変更
- Linux と Windows で Web Bluetooth の PIN ペアリングに対応しました。 #35416
- 新しい Fuse として
LoadBrowserProcessSpecificV8Snapshot
を追加し、メイン/ブラウザプロセスでbrowser_v8_context_snapshot.bin
ファイルからその v8 スナップショットを読み込めるようにしました。 それ以外のプロセスでは、現在使っているのと同じパスを使用します。 #35266 - そのウインドウを開いたウインドウにアクセスするための
WebContents.opener
と、WebFrameMain インスタンスに対応する WebContents を取得するためのwebContents.fromFrame(frame)
を追加しました。 #35140 - 新しいセッションハンドラ
ses.setDisplayMediaRequestHandler
によるnavigator.mediaDevices.getDisplayMedia
のサポートを追加しました。 #30702
API の破壊的変更
以下は、Electron 22 での破壊的変更点です。 これらの変更と今後の変更については、破壊的変更の計画 のページで詳しく説明されています。
非推奨: webContents.incrementCapturerCount(stayHidden, stayAwake)
webContents.incrementCapturerCount(stayHidden, stayAwake)
は非推奨になります。 ページのキャプチャ完了時に webContents.capturePage
で自動的に処理されるようになりました。
const w = new BrowserWindow({ show: false })
- w.webContents.incrementCapturerCount()
- w.capturePage().then(image => {
- console.log(image.toDataURL())
- w.webContents.decrementCapturerCount()
- })
+ w.capturePage().then(image => {
+ console.log(image.toDataURL())
+ })
非推奨: webContents.decrementCapturerCount(stayHidden, stayAwake)
webContents.decrementCapturerCount(stayHidden, stayAwake)
は非推奨になります。 ページのキャプチャ完了時に webContents.capturePage
で自動的に処理されるようになりました。
const w = new BrowserWindow({ show: false })
- w.webContents.incrementCapturerCount()
- w.capturePage().then(image => {
- console.log(image.toDataURL())
- w.webContents.decrementCapturerCount()
- })
+ w.capturePage().then(image => {
+ console.log(image.toDataURL())
+ })
削除: WebContents の new-window
イベント
WebContents の new-window
イベントは削除されました。 これは webContents.setWindowOpenHandler()
に置き換えられます。
- webContents.on('new-window', (event) => {
- event.preventDefault()
- })
+ webContents.setWindowOpenHandler((details) => {
+ return { action: 'deny' }
+ })
非推奨: BrowserWindow の scroll-touch-*
イベント
BrowserWindow の scroll-touch-begin
、scroll-touch-end
及び scroll-touch-edge
のイベントは非推奨になりました。 代わりに、新しく利用可能となった WebContents の input-event
イベント を使用してください。
// 非推奨
- win.on('scroll-touch-begin', scrollTouchBegin)
- win.on('scroll-touch-edge', scrollTouchEdge)
- win.on('scroll-touch-end', scrollTouchEnd)
// こちらに置換
+ win.webContents.on('input-event', (_, event) => {
+ if (event.type === 'gestureScrollBegin') {
+ scrollTouchBegin()
+ } else if (event.type === 'gestureScrollUpdate') {
+ scrollTouchEdge()
+ } else if (event.type === 'gestureScrollEnd') {
+ scrollTouchEnd()
+ }
+ })
19.x.y サポートの終了
Electron 19.x.y はプロジェクトの サポートポリシー に則りサポート終了となりました。 開発者とアプリケーションは新しいバージョンの Electron にアップグレードすることを推奨します。
E19 (May'22) | E20 (Aug'22) | E21 (Sep'22) | E22 (Nov'22) | E23 (Jan'23) |
---|---|---|---|---|
19.x.y | 20.x.y | 21.x.y | 22.x.y | 23.x.y |
18.x.y | 19.x.y | 20.x.y | 21.x.y | 22.x.y |
17.x.y | 18.x.y | 19.x.y | 20.x.y | 21.x.y |
次回予告
Electron プロジェクトは 2022 年 12 月の 1 ヶ月間休止し、2023 年 1 月から復帰します。 詳細については、12 月の休止のブログ記事 をご覧ください。
短期的には、Chromium、Node、V8 といった Electron を構成する主要コンポーネントの開発に遅れないでチームが注力し続けるでしょう。
Electron の公開タイムラインはこちら になります。
将来の変更の詳細については、予定されている破壊的変更 のページをご参照ください。