メインコンテンツへ飛ぶ

Electron 34.0.0

· 読むのにかかる時間 1 分

Electron 34.0.0 がリリースされました! これには Chromium 132.0.6834.83、V8 13.2、Node 20.18.1 へのアップグレードが含まれています。


Electron チームは、Electron 34.0.0 のリリース発表にワクワクしています! npm install electron@latest から npm でインストールするか、リリースウェブサイト からダウンロードできます。 このリリースの詳細は続きをご覧ください。

何かフィードバックがあれば、BlueskyMastodon で共有したり、コミュニティの Discord に参加してみましょう! バグや機能の要望は Electron の Issue トラッカー で報告できます。

注目すべき変更

HTTP 圧縮における共有辞書管理 API

HTTP 圧縮は、ブラウザがデータを受信する前に、Web サーバーによってデータを圧縮することを可能にします。 最新バージョンの Chromium は Brotli や Zstandard などの新しい圧縮アルゴリウムをサポートしており、テキストファイルに対して gzip などの従来方式よりも優れた性能を発揮します。

カスタム圧縮辞書は Brotli や Zstandard の圧縮効率をさらに向上させます。 詳細は共有辞書についてのChrome for Developers ブログをご覧ください。

@felixrieseberg#44950 に以下の API を追加し、セッションレベルで共有辞書を管理できるようになりました。

  • session.getSharedDictionaryUsageInfo()
  • session.getSharedDictionaryInfo(options)
  • session.clearSharedDictionaryCache()
  • session.clearSharedDictionaryCacheForIsolationKey(options)

応答しないレンダラーのJavaScriptコールスタック

レンダラープロセスが規定の時間以上ハングした場合、Electron の unresponsive イベントが発生します。 @samuelmaddock#44204 で追加した新しい webFrameMain.collectJavaScriptCallStack() API は、関連する WebFrameMain オブジェクト(webContnets.mainFrame)から JavaScript のコールスタックを収集できるようにします。

この API は、JavaScript イベントが長時間実行され、プロセスがハングした場合にフレームが応答しなくなる原因を特定するのに役立ちます。 詳細はクラッシュレポート API の Web 標準への提唱をご覧ください。

Main Process
const { app } = require('electron');

app.commandLine.appendSwitch(
'enable-features',
'DocumentPolicyIncludeJSCallStacksInCrashReports',
);

app.on('web-contents-created', (_, webContents) => {
webContents.on('unresponsive', async () => {
// 応答しないレンダラーの実行を中断し、コールスタックを収集する
const callStack = await webContents.mainFrame.collectJavaScriptCallStack();
console.log('Renderer unresponsive\n', callStack);
});
});

[! 注意] このAPIはヘッダーに 'Document-Policy': 'include-js-call-stacks-in-crash-reports' を追加して、有効化する必要があります。 詳しい情報は #45356 を参照してください。

累積的変更

Electron 34 では、130.0.6723.44 から 132.0.6834.83 へ、Node は 20.18.2 から 20.18.1 へ、V8 は 13.0 から 13.2 へとアップグレードしています。

新機能

  • Brotli または ZStandard を使用して圧縮効率を向上するための、共有辞書を管理する API を追加しました。 新しい session.getSharedDictionaryUsageInfo()session.getSharedDictionaryInfo(options)session.clearSharedDictionaryCache()session.clearSharedDictionaryCacheForIsolationKey(options) APIを追加しました。 #44950
  • WebFrameMain.collectJavaScriptCallStack() を追加し、応答しないレンダラーの JavaScript コールスタックにアクセスすることができるようになりました。 #44938
  • フレームのアンロード状態に WebFrameMain.detached を追加しました。
    • フレームが破棄されたかどうかを判断するために WebFrameMain.isDestroyed() が追加されました。
    • フレームのアンロード中に、WebFrameMain.fromId(processId, frameId) が与えられたパラメータと一致しないインスタンスを返すのを修正しました。 #43473
  • Added error event in utility process to support diagnostic reports on V8 fatal errors. #43774
  • 機能:GPUアクセラレーションによる共有テクスチャのオフスクリーンレンダリングを追加。 #42953

破壊的変更

動作変更: Windows では、全画面表示中にメニューバーが非表示になります。

これにより、Linux と同等の動作になります。 以前までは、Windows では全画面表示中にメニューバーが表示されていました。 これからは、Windows では全画面表示中にメニューバーが隠れます。

訂正: これは以前、Electron 33 で破壊的変更として記載されていましたが、Electron 34 で最初にリリースされました。

31.x.y サポートの終了

プロジェクトの サポートポリシー に則り、Electron 31.x.y はサポート終了を迎えました。 開発者とアプリケーションは新しいバージョンの Electron にアップグレードすることを推奨します。

E34 (2025 年 1 月)E35 (2025 年 4 月)E36 (2025 年 6 月)
34.x.y35.x.y36.x.y
33.x.y34.x.y35.x.y
32.x.y33.x.y34.x.y

次回予告

短期的には、Chromium、Node、V8 といった Electron を構成する主要コンポーネントの開発に遅れないでチームが注力し続けるでしょう。

Electron の公開タイムラインはこちらで ご覧いただけます。

今後の変更についての詳細は、予定されている破壊的変更 のページをご覧ください。