メインコンテンツへ飛ぶ

Electron 36.0.0

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

Electron 36.0.0 がリリースされました! これには Chromium 136、V8 13.6、Node 22.14.0 へのアップグレードが含まれています。


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

何かフィードバックがあれば、BlueskyMastodon で共有したり、コミュニティの 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,
});

累積的変更

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.loadExtensionsession.removeExtensionsession.getExtensionsession.getAllExtensions、およびイベント extension-loadedextension-unloadedextension-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.y37.x.y38.x.y
35.x.y36.x.y37.x.y
34.x.y35.x.y36.x.y

次回予告

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

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

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