Electron 36.0.0
Electron 36.0.0 がリリースされました! これには Chromium 136、V8 13.6、Node 22.14.0 へのアップグレードが含まれています。
Electron チームは、Electron 36.0.0 のリリース発表にワクワクしています! npm install electron@latest から npm でインストールするか、リリースウェブサイト からダウンロードできます。 このリリースの詳細は続きをご覧ください。
何かフィードバックがあれば、Bluesky や Mastodon で共有したり、コミュニティの Discord に参加してみましょう! バグや機能の要望は Electron の Issue トラッカー で報告できます。
注目すべき変更
作文ツールサポート
Electron 36 では、コンテキストメニューでの作文ツール (スペルと文法)、自動入力、サービスメニュー項目など macOS システムレベルの機能を有効化できます。 これを行うには、WebFrameMain のインスタンスを menu.popup() の frame 引数に渡します。
import { BrowserWindow, Menu, WebFrameMain } from 'electron';
const currentWindow = BrowserWindow.getFocusedWindow();
const focusedFrame = currentWindow.webContents.focusedFrame;
const menu = Menu.buildFromTemplate([{ label: 'Copy', role: 'copy' }]);
menu.popup({
window: currentWindow,
frame: focusedFrame,
});
累積的変更
- Chromium
136.0.7103.48 - Node
22.14.0 - V8
13.6
Electron 36 では、Chromium は 134.0.6998.23 から 136.0.7103.48 へ、Node は 13.5 から 13.6 へアップグレードしています。
新機能と改善点
- 特定のウインドウがスナップで配置されているかを示す
BrowserWindow.isSnapped()を Windows 向けに追加しました。 #46226 - フォーカスされたフレームを取得する
WebContents.focusedFrameを追加しました。 WebContents.openerの型をnullになりうる型へ修正しました。 #45667- 遅延読み込みの構成に
ffmpeg.dllを追加しました。 #46173 (及び 34, 35) - システムテーマとアプリテーマを区別できる
nativeTheme.shouldUseDarkColorsForSystemIntegratedUIを追加しました。 #46598 (及び 35) webRequestフィルターにexcludeUrlsを追加し、urlsプロパティでの空配列の使用を非推奨化しました。 #44692 (及び 35)menu.popupの新しいframeオプションを介して、コンテキストメニューの自動入力、作文ツール、サービスなど macOS レベルのメニュー項目のサポートを追加しました。 #46350- Linux 向けに
system-context-menuのサポートを追加しました。 #46399 - Windows 向けに ASAR の整合性検査を改善しました。 #46537
- macOS 向けにサムネイルを要求しないときの
desktopCapturer.getSourcesのパフォーマンスが向上しました。 #46251 (及び 34, 35) - 共有テクスチャ OSR 使用時の 240 FPS 制限を除去しました。 #45669 (及び 35)
破壊的変更
非推奨化: NativeImage.getBitmap()
NativeImage.getBitmap() 関数は非推奨となり、NativeImage.toBitmap() のエイリアスであると文書化されました。
2 つの関数はどちらもビットマップの新しく確保したコピーを返し、機能的に同等です。
非推奨化: session の拡張機能のメソッドとイベント
session.loadExtension、session.removeExtension、session.getExtension、
session.getAllExtensions、およびイベント extension-loaded、
extension-unloaded、extension-ready はすべて、session.extensions インスタンスプロパティからアクセスできる新しい
Extensions オブジェクト へ移動されました。
削除: session.clearStorageData(options) の quota のタイプ syncable
session.clearStorageData(options) を呼び出す際の options.quota のタイプ syncable は、上流の Chromium から 削除 されたためサポートされなくなりました。
非推奨化: session.clearStorageData(options) の quota プロパティ
Session.clearStorageData(options) を呼び出すときの、options.quota プロパティは非推奨になります。 syncable タイプは削除されたため残ったタイプは 'temporary' のみであり、これの指定は不要です。
動作変更: GTK 4 が GNOME で実行する場合のデフォルトに
上流の変更 により、GNOME で実行する場合のデフォルトが GTK 4 になりました。
まれに、これにより一部のアプリケーションまたは構成で以下のメッセージを伴う エラー が発生する場合があります。
Gtk-ERROR **: 11:30:38.382: GTK 2/3 symbols detected. Using GTK 2/3 and GTK 4 in the same process is not supported
影響を受けるユーザーは gtk-version のコマンドラインフラグを以下のように指定することで回避できます。
$ electron --gtk-version=3 # or --gtk-version=2
app.commandLine.appendSwitch 関数でも同様のことができます。
動作変更: app.commandLine
app.commandLine は大文字のスイッチと引数を小文字へ変換するようにします。
app.commandLine は Chromium のスイッチ (大文字小文字の区別なし) を処理することのみを目的としており、app.commandLine 経由で渡されるスイッチはどの子プロセスにも渡されません。
アプリ固有のコマンドライン引数を解析するために app.commandLine を使用していた方は、process.argv 経由でこれを行うようにすべきです。
33.x.y サポートの終了
プロジェクトの サポートポリシー に則り、Electron 33.x.y はサポート終了を迎えました。 開発者とアプリケーションは新しいバージョンの Electron にアップグレードすることを推奨します。
| E36 (2025 年 4 月) | E37 (2025 年 6 月) | E38 (2025 年 8 月) |
|---|---|---|
| 36.x.y | 37.x.y | 38.x.y |
| 35.x.y | 36.x.y | 37.x.y |
| 34.x.y | 35.x.y | 36.x.y |
次回予告
短期的には、Chromium、Node、V8 といった Electron を構成する主要コンポーネントの開発に遅れないでチームが注力し続けるでしょう。
Electron の公開タイムラインはこちらで ご覧いただけます。
今後の変更についての詳細は、予定されている破壊的変更 のページをご覧ください。
