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 の Issue トラッカー で報告できます。
注目すべき変更
ハイライト
- ASAR 整合性の fuse が Windows でサポートされました (#40504)
- 正しく設定されていない場合、ASAR 整合性が有効の既存のアプリは Windows 上で動作しない可能性があります。 Electron のパッケージ化ツールを使用しているアプリは、
@electron/packager@18.3.1
または@electron/forge@7.4.0
にアップグレードしてください。 - 詳細については私たちの ASAR 整合性のチュートリアル をご覧ください。
- 正しく設定されていない場合、ASAR 整合性が有効の既存のアプリは Windows 上で動作しない可能性があります。 Electron のパッケージ化ツールを使用しているアプリは、
WebContentsView
とBaseWindow
メインプロセスモジュールを追加しました。これはBrowserView
を非推奨にして置き換 えるものです (#35658)BrowserView
はWebContentsView
の上のシムとなり、古い実装は削除されました。- 新しい
WebContentsView
API と他の類似 API との比較については、私たちの Web 埋め込みドキュメント をご参照ください。
- ファイルシステム API のサポートを実装しました (#41827)
累積的変更
- Chromium
124.0.6367.49
- Chrome 124 と デベロッパーツール 124 の新機能
- Chrome 123 と デベロッパーツール 123 の新機能
- Node
20.11.1
- V8
12.4
Electron 30 では、122.0.6261.39
から 124.0.6367.49
へ、Node は 20.9.2
から 20.11.1
へ、V8 は 12.2
から 12.4
へとアップグレードしています。
新機能
- Webview に
transparent
のウェブ環境設定を追加しました。 (#40301) - webContents API に新しくインスタンスプロパティ
navigationHistory
とnavigationHistory.getEntryAtIndex
メソッドを追加しました。これによりアプリケーションがブラウズ履歴内の任意のナビゲーションエントリの URL とタイトルを取得できるようになります。 (#41662) - 新しく
BrowserWindow.isOccluded()
メソッドを追加しました。これによりアプリが覆い隠されている状態を確認できるようになります。 (#38982) - ユーティリティプロセスから
net
モジュールを使用して行われたリクエストに対するプロキシ構成サポートを追加しました。 (#41417) navigator.serial
にサービスクラス ID によって要求される Bluetooth ポートのサポートを追加しました。 (#41734)- Node.js の
NODE_EXTRA_CA_CERTS
CLI フラグのサポートを追加しました。 (#41822)
破壊的変更
動作変更: クロスオリジンの iframe が権限ポリシーを用いて機能にアクセスするようになりました
クロスオリジンの iframe にアクセスするには、特定の iframe
で利用可能な機能を allow
属性を介して指定しなければなりません。
詳細は ドキュメント をご参照ください。
削除: --disable-color-correct-rendering
コマンドラインスイッチ
このスイッチは正式にドキュメント化されたことはありませんが、削除したことをここに注記しておきます。 Chromium 自体が色空間のサポートを強化したため、このフラグは必要なくなります。
動作変更: macOS での BrowserView.setAutoResize
の動作
Electron 30 では、BrowserView は新しい WebContentsView API のラッパーになりました。
以前の BrowserView
API の setAutoResize
関数は、macOS では autoresizing で、Windows と Linux ではカスタムアルゴリズムによって支えていました。
BrowserView をウインドウ全体に表示するなどの単純な使用例では、これら 2 つのアプローチの動作は同じでした。
ただしより高度なケースでは、Windows および Linux のカスタムサイズ変更アルゴリズムが macOS の自動サイズ変更 API の動作と完全に一致しませんでした。そのめ、BrowserView の自動サイズ変更は macOS 上では他のプラットフォームとは異なる動作でした。
この自動サイズ変更の動作がすべてのプラットフォーム間で標準化されました。
もしあなたのアプリが BrowserView をウィンドウ全体に表示するよりも複雑な操作を BrowserView.setAutoResize
で行っていたのならば、macOS でのこの動作の違いに対処するカスタムロジックを既に用意していたことでしょう。
その場合、Electron 30 からは自動サイズ変更の動作が一貫しているため、そのロジックは必要なくなります。
削除: WebContents
の context-menu
にある params.inputFormType
プロパティ
WebContents
の context-menu
イベント内の params オブジェクトにある inputFormType
プロパティを削除しました。 代わりに新しい formControlType
プロパティを使用してください。
削除: process.getIOCounters()
Chromium はこの情報へのアクセスを削除しました。