Electron 35.0.0
Electron 35.0.0 がリリースされました! これには Chromium 134.0.6998.44、V8 13.5、Node 22.14.0 へのアップグレードが含まれています。
Electron チームは、Electron 35.0.0 のリリース発表にワクワクしています! npm install electron@latest から npm でインストールするか、リリースウェブサイト からダウンロードできます。 このリリースの詳細は続きをご覧ください。
何かフィードバックがあれば、Bluesky や Mastodon で共有したり、コミュニティの Discord に参加してみましょう! バグや機能の要望は Electron の Issue トラッカー で報告できます。
注目すべき変更
拡張機能サポートの改善のためのサービスワーカーのプリロードスクリプト
もともと RFC #8 で @samuelmaddock によって提案されていたもので、Electron 35 にて サービスワーカー にプリロードスクリプトをアタッチする機能を追加します。 Chrome の Manifest V3 拡張機能では多くの機能が 拡張機能のサービスワーカー を通じて提供されるため、この機能は Electron と最新の Chrome 拡張機能との間のサポートに関するギャップを埋めます。
Session のレベルでプログラムでプリロードスクリプトを登録する場合、ses.registerPreloadScript(script) API でそれをサービスワーカーのコンテキストへ指定し適用できるようになりました。
// セッションにプリロードレルムスクリプトを追加します。
session.defaultSession.registerPreloadScript({
// スクリプトはサービスワーカーのプリロードレルムでのみ実行されるべきです。
type: 'service-worker',
// スクリプトへの絶対パス。
script: path.join(__dirname, 'extension-sw-preload.js'),
});
さらに、ServiceWorkerMain.ipc のインスタンスを介して、サービスワーカーとそれにアタッチされたプリロードスクリプトの間で IPC が利用できるようになりました。 プリロードスクリプトは引き続き ipcRenderer モジュールでもサービスワーカーと通信できます。 詳細は元の RFC をご参照ください。
この機能の実装前に、以下の前提となる他多くの変更が行われました。
- #45329 で Session モジュールのプリロード API を再設計し、個々のプリロードスクリプトの登録と解除をサポートするようになりました。
- #45229 でコンテキストブリッジを介してメイン ワールドで JavaScript を評価するための実験的なスクリプト
contextBridge.executeInMainWorld(executionScript)が追加されました。 - #45341 でメインプロセスでサービスワーカーとやり取りするための
ServiceWorkerMainクラスが追加されました。
累積的変更
- Chromium
134.0.6998.44 - Node
22.14.0 - V8
13.5
Electron 35 では、Chromium は 132.0.6834.83 から 134.0.6998.44 へ、Node は 20.18.1 から 22.14.0 へ、V8 は 13.2 から 13.5 へとアップグレードしています。
新機能
Info.plistにNSPrefersDisplaySafeAreaCompatibilityMode=falseを追加してアプリの設定から「内蔵カメラの下に収まるようにサイズ調整」を削除しました。 #45357 (同じく v34.1.0)- メインプロセスでサービスワーカーとやり取りするための
ServiceWorkerMainクラスを追加しました。 #45341- サービスワーカーの実行状態が変化したことを表すために、
ServiceWorkersにrunning-status-changedイベントを追加しました。 - 以前に停止された可能性のあるワーカーを起動するために、
ServiceWorkersにstartWorkerForScopeを追加しました。
- サービスワーカーの実行状態が変化したことを表すために、
- ワールドの境界を越えてコードを安全に実行するための実験的な
contextBridge.executeInMainWorldを追加しました。 #45330 'console-message'イベントにframeを追加しました。 #43617- Windows 向けに、
query-session-endイベントを追加しsession-endイベントを改善しました。 #44598 view.getVisible()を追加しました。 #45409- ナビゲーション履歴の復元を可能にする
webContents.navigationHistory.restore(index, entries)API を追加しました。 #45583 BrowserWindow.setVibrancyに任意のアニメーション引数を追加しました。 #35987document.executeCommand("paste")の権限サポートを追加しました。 #45471 (同じく v34.1.0)- Windows 向けに BrowserWindow コンストラクタのオプション
roundedCornersのサポートを追加しました。 #45740 (同じく v34.3.0) - サービスワーカーのプリロードスクリプトのサポートを追加しました。 #45408
- Portal の
globalShortcutsをサポートします。 この機能を動作させるには、Electron を--enable-features=GlobalShortcutsPortalで実行する必要があります。 #45297
破壊的変更
削除: PrinterInfo の isDefault プロパティと status プロパティ
これらのプロパティは上流の Chromium から削除されたため、PrinterInfo オブジェクトからも削除されました。
非推奨化: session.serviceWorkers の fromVersionID
session.serviceWorkers.getInfoFromVersionID(versionId) の代わりに session.serviceWorkers.fromVersionID(versionId) API は非推奨化されました。 session.serviceWorkers.getWorkerFromVersionID(versionId) API を導入したため、何のオブジェクトを返すかがより明確になるように変更されました。
// 非推奨
session.serviceWorkers.fromVersionID(versionId);
// こちらで置換
session.serviceWorkers.getInfoFromVersionID(versionId);
非推奨化: Session の setPreloads、getPreloads
非推奨メソッドの代わりとして、registerPreloadScript、unregisterPreloadScript、 getPreloadScripts が導入されました。 These new APIs allow third-party libraries to register
preload scripts without replacing existing scripts. また、新たな type オプションにより frame 以外のさらなるプリロード対象を指定できます。
// 非推奨
session.setPreloads([path.join(__dirname, 'preload.js')]);
// こちらで置換:
session.registerPreloadScript({
type: 'frame',
id: 'app-preload',
filePath: path.join(__dirname, 'preload.js'),
});
非推奨化: WebContents の console-message イベントの level、message、line、sourceId 引数
WebContents の console-message イベントが更新され、Event 引数で詳細が提供されるようになりました。
// 非推奨
webContents.on(
'console-message',
(event, level, message, line, sourceId) => {},
);
// こちらで置換:
webContents.on(
'console-message',
({ level, message, lineNumber, sourceId, frame }) => {},
);
さらに、level は info、warning、error、debug のうちいずれかの値を持つ文字列になりました。
動作変更: WebRequestFilter の urls プロパティ
Previously, an empty urls array was interpreted as including all URLs. 明示的にすべての URL を含めるには、開発者が <all_urls> パターンを使用する必要があります。これは、考えられるすべての URL に一致する 特定の URL パターン です。 This change clarifies the intent and ensures more predictable behavior.
// 非推奨
const deprecatedFilter = {
urls: [],
};
// こちらで置換
const newFilter = {
urls: ['<all_urls>'],
};
非推奨化: systemPreferences.isAeroGlassEnabled()
systemPreferences.isAeroGlassEnabled() 関数は代替なしで非推奨になりました。
Electron 23 以降は常に true を返しています。Electron 23 からは Windows 10 以降のみをサポートしており、この Windows からは DWM のコンポジションを無効化できなくなりました。
32.x.y サポートの終了
プロジェクトの サポートポリシー に則り、Electron 32.x.y はサポート終了を迎えました。 開発者とアプリケーションは新しいバージョンの Electron にアップグレードすることを推奨します。
| E35 (2025 年 3 月) | E36 (2025 年 4 月) | E37 (2025 年 6 月) |
|---|---|---|
| 35.x.y | 36.x.y | 37.x.y |
| 34.x.y | 35.x.y | 36.x.y |
| 33.x.y | 34.x.y | 35.x.y |
次回予告
短期的には、Chromium、Node、V8 といった Electron を構成する主要コンポーネントの開発に遅れないでチームが注力し続けるでしょう。
Electron の公開タイムラインはこちらで ご覧いただけます。
今後の変更についての詳細は、予定されている破壊的変更 のページをご覧ください。

