Electron 29.0.0
Electron 29.0.0がリリースされました!Chromium 122.0.6261.39
、V8 12.2
、Node.js 20.9.0
へのアップグレードが含まれています。
Electronチームは、Electron 29.0.0のリリースを発表できることを嬉しく思います! npm install electron@latest
でnpm経由でインストールするか、リリースウェブサイトからダウンロードできます。このリリースの詳細については、引き続きお読みください。
フィードバックがある場合は、TwitterまたはMastodonで共有するか、コミュニティDiscordにご参加ください!バグと機能のリクエストは、Electronのイシュートラッカーで報告できます。
注目すべき変更点
ハイライト
- Web APIオブジェクトと対話するためのユーティリティレイヤーを提供するレンダラープロセスモジュールである、新しいトップレベルの
webUtils
モジュールを追加しました。モジュールで最初に使用可能なAPIはwebUtils.getPathForFile
です。Electronの以前のFile.path
拡張はWeb標準からの逸脱でした。この新しいAPIは、現在のWeb標準の動作により沿っています。
スタックの変更点
- Chromium
122.0.6261.39
- Chrome 122およびDevTools 122の新機能
- Chrome 121およびDevTools 121の新機能
- Node
20.9.0
- V8
12.2
Electron 29は、Chromiumを120.0.6099.56
から122.0.6261.39
に、Nodeを18.18.2
から20.9.0
に、V8を12.0
から12.2
にアップグレードします。
新機能
File.path
拡張を置き換えるために、Web APIオブジェクトと対話するためのユーティリティレイヤーである新しいwebUtils
モジュールを追加しました。 #38776- netモジュールをユーティリティプロセスに追加しました。 #40890
- Chromiumと一致する、より安全で制限的な動作に
file://
プロトコルをオプトインさせる新しいElectron Fuse、grantFileProtocolExtraPrivileges
を追加しました。 #40372 - カスタムスキームでV8コードキャッシュを許可するために、
protocol.registerSchemesAsPrivileged
にオプションを追加しました。 #40544 - macOS 13.0+でAppleの新しい推奨される基盤となるフレームワークを使用するために、
app.{set|get}LoginItemSettings(settings)
を移行しました。 #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
イベントを使用してください。
// Removed
app.on('renderer-process-crashed', (event, webContents, killed) => {
/* ... */
});
// Replace with
app.on('render-process-gone', (event, webContents, details) => {
/* ... */
});
削除: WebContents
と<webview>
のcrashed
イベント
WebContents
と<webview>
のcrashed
イベントが削除されました。代わりに、新しいrender-process-gone
イベントを使用してください。
// Removed
win.webContents.on('crashed', (event, killed) => {
/* ... */
});
webview.addEventListener('crashed', (event) => {
/* ... */
});
// Replace with
win.webContents.on('render-process-gone', (event, details) => {
/* ... */
});
webview.addEventListener('render-process-gone', (event) => {
/* ... */
});
削除: app
のgpu-process-crashed
イベント
app
のgpu-process-crashed
イベントが削除されました。代わりに、新しい`child-process-gone`イベントを使用してください。
// Removed
app.on('gpu-process-crashed', (event, killed) => {
/* ... */
});
// Replace with
app.on('child-process-gone', (event, details) => {
/* ... */
});
26.x.yのサポート終了
Electron 26.x.yは、プロジェクトのサポートポリシーに従ってサポート終了に達しました。開発者とアプリケーションは、Electronの新しいバージョンにアップグレードすることをお勧めします。
E29 (2024年2月) | E30 (2024年4月) | E31 (2024年6月) |
---|---|---|
29.x.y | 30.x.y | 31.x.y |
28.x.y | 29.x.y | 30.x.y |
27.x.y | 28.x.y | 29.x.y |
今後の予定
Electron が最近、コミュニティの Request for Comments (RFC) プロセスを追加したことをご存知ですか?フレームワークに機能を追加したい場合、RFC は、その設計についてメンテナーと対話するのに役立つツールです。また、プルリクエストで議論されている今後の変更点を確認することもできます。詳細については、Introducing electron/rfcs ブログ記事、または electron/rfcs リポジトリの README を直接確認してください。
短期的には、チームは、Chromium、Node、V8 など、Electron を構成する主要コンポーネントの開発に引き続き注力していく予定です。
今後の変更に関する詳細は、計画されている破壊的変更ページをご覧ください。