Electron 29.0.0
· 読むのにかかる時間 1 分
Electron 29.0.0 がリリースされました! これには Chromium 102.0.6261.39
、V8 12.2
、Node.js 20.9.2
へのアップグレードが含まれています。
Electron チームは、Electron 29.0.0 のリリース発表にワクワクしています! npm install electron@latest
から npm でインストールするか、リリースウェブサイト からダウンロードできます。 このリリースの詳細は続きをご覧ください。
何かフィードバックがあれば、Twitter や Mastodon で共有したり、コミュニティの Discord に参加してみましょう! バグや機能の要望は Electron の Issue トラッカー で報告できます。
注目すべき変更
ハイライト
- 新しいトップレベルの
webUtils
モジュールを追加しました。これは Web API のオブジェクトと対話するユーティリティレイヤーを提供するレンダラープロセスのモジュールです。 このモジュールで最初に利用可能な API はwebUtils.getPathForFile
です。 Electron の以前のFile.path
拡張は Web 標準から逸脱していましたが、この新しい API は現在の Web 標準の動作に沿ったものになっています。
累積的変更
- Chromium
122.0.6261.39
- Chrome 122 と デベロッパーツール 122 の新機能
- Chrome 121 と デベロッパーツール 121 の新機能
- Node
20.9.0
- V8
12.2
Electron 29 では、120.0.6099.56
から 122.0.6261.39
へ、Node は 18.18.2
から 20.9.0
へ、V8 は 12.0
から 12.2
へとアップグレードしています。
新機能
- Web API のオブジェクトと対話するユーティリティレイヤーとして
webUtils
モジュールを追加しました。これはFile.path
拡張を置き換えるものです。 #38776 - ユーティリティプロセス に net モジュールを追加しました。 #40890
- 新しい Electron Fuse の
grantFileProtocolExtraPrivileges
を追加しました。これは、file://
プロトコルを Chromium と一致するよりセキュアな動作に制限するものです。 #40372 - カスタムスキームで V8 コードのキャッシュを許可するためのオプションを
protocol.registerSchemesAsPrivileged
に追加しました。 #40544 app.{set|get}LoginItemSettings(settings)
を macOS 13.0 以降で Apple 推奨の新しい基盤フレームワークを使用するように移行しました。 #37244
破壊的変更
動作変更:ipcRenderer
は contextBridge
を越えて送信できなくなりました。
ipcRenderer
モジュール全体をオブジェクトとして contextBridge
経由で送信しようとすると、ブリッジの受信側には空のオブジェクトが生成されるようになりました。 この変更は、セキュリティの落とし穴を撤去/軽減するために行われました。 ipcRenderer やそのメソッドをブリッジ越しに直接公開してはいけません。
代わりに、以下のような安全なラッパーを用意してください。
contextBridge.exposeInMainWorld('app', {
onEvent: (cb) => ipcRenderer.on('foo', (e, ...args) => cb(args)),
});
削除: app
の renderer-process-crashed
イベント
app
での renderer-process-crashed
イベントは削除されました。
代わりに新しいイベントである render-process-gone
を使用してください。
// 削除済み
app.on('renderer-process-crashed', (event, webContents, killed) => {
/* ... */
});
// こちらで置き換えてください
app.on('render-process-gone', (event, webContents, details) => {
/* ... */
});