メインコンテンツにスキップ

Electron 30.0.0

·4 分で読めます

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チュートリアルをご覧ください。
  • WebContentsView および BaseWindow メインプロセスモジュールを追加し、BrowserView を非推奨化 & 置換しました (#35658)
    • BrowserView は現在 WebContentsView のshimであり、古い実装は削除されました。
    • 新しい WebContentsView APIと他の類似APIの比較については、Web Embedsドキュメントをご覧ください。
  • ファイルシステムAPIのサポートを実装しました (#41827)

スタックの変更

Electron 30では、Chromiumを122.0.6261.39から124.0.6367.49に、Nodeを20.9.0から20.11.1に、V8を12.2から12.4にアップグレードします。

新機能

  • webviewにtransparent webpreferenceを追加しました。 (#40301)
  • webContents APIに新しいインスタンスプロパティnavigationHistorynavigationHistory.getEntryAtIndexメソッドを追加し、アプリケーションが閲覧履歴内の任意のナビゲーションエントリのURLとタイトルを取得できるようにしました。 (#41662)
  • アプリがオクルージョンステータスを確認できるように、新しいBrowserWindow.isOccluded()メソッドを追加しました。 (#38982)
  • ユーティリティプロセスからnetモジュールを使用して行われたリクエストのプロキシ設定サポートを追加しました。 (#41417)
  • navigator.serialでサービスクラスIDによってBluetoothポートがリクエストされることのサポートを追加しました。 (#41734)
  • Node.js NODE_EXTRA_CA_CERTS CLIフラグのサポートを追加しました。 (#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では自動サイズ変更の動作が一貫しているため、そのロジックは不要になります。

削除: WebContentscontext-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.y31.x.y32.x.y
29.x.y30.x.y31.x.y
28.x.y29.x.y30.x.y

今後の予定

短期的には、チームはChromium、Node、V8など、Electronを構成する主要コンポーネントの開発に引き続き注力していきます。

Electronの公開タイムラインはこちらです。

今後の変更に関する詳細は、計画されている破壊的変更のページをご覧ください。