Electron 30.0.0
Electron 30.0.0がリリースされました! Chromium 124.0.6367.49、V8 12.4、Node.js 20.11.1 にアップグレードされています。
Electronチームは、Electron 30.0.0のリリースを発表できることを嬉しく思います! npm install electron@latest でnpm経由でインストールするか、リリースウェブサイトからダウンロードできます。 このリリースの詳細については、引き続きお読みください。
フィードバックがある場合は、TwitterまたはMastodonで共有するか、コミュニティDiscordにご参加ください! バグと機能リクエストはElectronのイシュートラッカーで報告できます。
注目すべき変更点
ハイライト
- ASAR IntegrityヒューズがWindowsでサポートされるようになりました (#40504)
- ASAR Integrityが有効になっている既存のアプリは、正しく構成されていない場合、Windowsでは動作しない可能性があります。 Electronパッケージツールを使用しているアプリは、
@electron/packager@18.3.1または@electron/forge@7.4.0にアップグレードする必要があります。 - 詳細については、ASAR Integrityチュートリアルをご覧ください。
- ASAR Integrityが有効になっている既存のアプリは、正しく構成されていない場合、Windowsでは動作しない可能性があります。 Electronパッケージツールを使用しているアプリは、
WebContentsViewおよびBaseWindowメインプロセスモジュールを追加し、BrowserViewを非推奨化 & 置換しました (#35658)BrowserViewは現在WebContentsViewのshimであり、古い実装は削除されました。- 新しい
WebContentsViewAPIと他の類似APIの比較については、Web Embedsドキュメントをご覧ください。
- ファイルシステムAPIのサポートを実装しました (#41827)
スタックの変更
- Chromium
124.0.6367.49- Chrome 124 および DevTools 124 の新機能
- Chrome 123 および DevTools 123 の新機能
- Node
20.11.1 - V8
12.4
Electron 30では、Chromiumを122.0.6261.39から124.0.6367.49に、Nodeを20.9.0から20.11.1に、V8を12.2から12.4にアップグレードします。
新機能
- webviewに
transparentwebpreferenceを追加しました。 (#40301) - webContents APIに新しいインスタンスプロパティ
navigationHistoryとnavigationHistory.getEntryAtIndexメソッドを追加し、アプリケーションが閲覧履歴内の任意のナビゲーションエントリのURLとタイトルを取得できるようにしました。 (#41662) - アプリがオクルージョンステータスを確認できるように、新しい
BrowserWindow.isOccluded()メソッドを追加しました。 (#38982) - ユーティリティプロセスから
netモジュールを使用して行われたリクエストのプロキシ設定サポートを追加しました。 (#41417) navigator.serialでサービスクラスIDによってBluetoothポートがリクエストされることのサポートを追加しました。 (#41734)- Node.js
NODE_EXTRA_CA_CERTSCLIフラグのサポートを追加しました。 (#41822)
破壊的変更
動作変更:クロスオリジンiframeは、Permission Policyを使用して機能にアクセスするようになりました
クロスオリジンiframeは、アクセスするために、指定されたiframeで使用可能な機能をallow属性で指定する必要があります。
詳細はドキュメントをご覧ください。
削除: コマンドラインスイッチ --disable-color-correct-rendering
このスイッチは正式に文書化されていませんでしたが、削除されたため、ここに記しておきます。Chromium自体がカラースペースのサポートを改善したため、このフラグは不要になりました。
動作変更: macOSにおけるBrowserView.setAutoResizeの動作
Electron 30では、BrowserViewは新しいWebContentsView APIのラッパーになりました。
以前は、BrowserView APIのsetAutoResize関数は、macOSでは自動サイズ変更、WindowsとLinuxではカスタムアルゴリズムによってサポートされていました。BrowserViewをウィンドウ全体に合わせるなど、単純なユースケースでは、これら2つのアプローチの動作は同じでした。ただし、より高度なケースでは、WindowsとLinuxのカスタムサイズ変更アルゴリズムがmacOSの自動サイズ変更APIの動作と完全に一致しなかったため、BrowserViewの自動サイズ変更はmacOSと他のプラットフォームで異なっていました。自動サイズ変更の動作は、すべてのプラットフォームで標準化されました。
アプリがBrowserView.setAutoResizeを使用して、BrowserViewをウィンドウ全体に合わせるよりも複雑な処理を行っている場合、macOSでのこの動作の違いを処理するためのカスタムロジックが既に実装されている可能性があります。その場合、Electron 30では自動サイズ変更の動作が一貫しているため、そのロジックは不要になります。
削除: WebContentsのcontext-menuにおけるparams.inputFormTypeプロパティ
WebContentsからのcontext-menuイベントのparamsオブジェクトのinputFormTypeプロパティが削除されました。代わりに、新しいformControlTypeプロパティを使用してください。
削除: process.getIOCounters()
Chromiumはこの情報へのアクセスを削除しました。
27.x.yのサポート終了
Electron 27.x.yは、プロジェクトのサポートポリシーに従い、サポートが終了しました。開発者とアプリケーションは、Electronの新しいバージョンにアップグレードすることをお勧めします。
| E30 (2024年4月) | E31 (2024年6月) | E32 (2024年8月) |
|---|---|---|
| 30.x.y | 31.x.y | 32.x.y |
| 29.x.y | 30.x.y | 31.x.y |
| 28.x.y | 29.x.y | 30.x.y |
今後の予定
短期的には、チームはChromium、Node、V8など、Electronを構成する主要コンポーネントの開発に引き続き注力していきます。
今後の変更に関する詳細は、計画されている破壊的変更のページをご覧ください。

