メインコンテンツへ飛ぶ

Electron 37.0.0

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

Electron 37.0.0 がリリースされました! これには Chromium 138、V8 13.8、Node 22.16.0 へのアップグレードが含まれています。


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

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

Google Summer of Code の開始​

2 人の Google Summer of Code の貢献者がプログラムのコーディング期間を開始しました!

  • @nilayarya は Electron コアで新しい ウィンドウ状態の保存/復元 API を作成しています。 この新しい API は、ウインドウの状態の永続化処理のための組み込みで標準化された方法を提供します。 electron/rfcs#16 で Nilay さんの進行中の RFC を参照してください。
  • @hitarth-gg は、Chrome Manifest V3 API を使用して、長らく休止状態にあった Devtron 拡張機能を最新化することに熱心に取り組んでいます。 このプロジェクトは、開発者が IPC 通信のデバッグ、イベントリスナーの追跡、および Electron アプリケーション内のモジュールの依存関係を視覚化するためのツールを提供します。

GSOC 参加者にとってこの数週間は刺激的な日々でした。今後の更新情報もご期待ください!

注目すべき変更​

滑らかな角: ネイティブ CSS のスクワークル​

長方形に異なる角のスムージング値 (0%、30%、60%、100%) を適用した画像。60% は macOS のスタイルに一致するというラ�ベル付き

Electron 37 では、カスタムの -electron-corner-smoothing CSS プロパティが導入され、アプリは Apple の macOS デザイン言語に合わせたより滑らかな丸角を作成できるようになりました。 この機能はもともと Electron 36 に搭載されていましたが、もっと注目されるべき機能だと感じました。

角スムージング 100% の例
コード結果
.box {
width: 128px;
height: 128px;
border-radius: 24px;
-electron-corner-smoothing: 100%;
}

長方形から四分円の角を削り出す標準の border-radius プロパティとは異なり、 -electron-corner-smoothing は連続した縁を持つ 四角形 状で曲線をスムーズに遷移させます。

0% から 100% までの値を使用して滑らかさを調整したり、system-ui 値を使用してオペレーティングシステムのスタイルに一致させたりできます (macOS では 60%、それ以外の場合は 0%)。 このデザイン強化は、境界線、アウトライン、影にも適用でき、アプリに絶妙な上品さを加えることができます。

ヒント

Electron のスクワークル実装の詳細については、@clavin の RFC 0012 をご参照ください。 この文書ではその動機と技術的な実装について詳しく説明してあります。

初期デザインは Figma の角スムージングの実装からインスピレーションを得ています。 滑らかな角を求める彼らの探求について詳しくは、"スクワークルを必死に求めて" をご覧ください。

累積的変更​

Electron 37 では、Chromium は 136.0.7103.48 から 138.0.7204.35 へ、V8 は 13.6 から 13.8 へアップグレードしています。

新機能と改善点​

  • window.openにinnerWidthとinnerHeightオプションを追加しました。 #47039 (及び 35, 36)
  • webContents でマウスイベントを傍受および阻害するために、before-mouse-event を追加しました。 #47364 (及び 36)
  • scriptURL プロパティを ServiceWorkerMain に追加しました。 #45863
  • macOS >= 14.4 向けにメニューの sublabel 機能を追加しました。 #47042 (及び 35, 36)
  • HIDDevice.collectionsのサポートの追加しました。 #47483 (及び 36)
  • --no-experimental-global-navigatorフラグのサポートを追加しました。 #47418 (及び 35, 36)
  • Linux X11でscreen.dipToScreenPoint(point)とscreen.screenToDipPoint(point)のサポートを追加しました。 #46895 (及び 35, 36)
  • macOS 向けにメニュー項目のロール palette と header のサポートを追加しました。 #47245
  • Node のオプション --experimental-network-inspection のサポートを追加しました。 #47031 (及び 35, 36)
  • 開発者がウインドウの保護状態を確認できるように win.isContentProtected() を公開しました。 #47310 (及び 36)

破壊的変更​

Utility Process unhandled rejection behavior change​

Utility Processes will now warn with an error message when an unhandled rejection occurs instead of crashing the process.

To restore the previous behavior, you can use:

process.on('unhandledRejection', () => {
process.exit(1);
});

動作変更: process.exit() がユーティリティプロセスを同期的に強制終了するように​

ユーティリティプロセスで process.exit() を呼び出すと、ユーティリティプロセスを同期的に強制終了するようになりました。 これにより、process.exit() の動作が Node.js の動作と一致するようになります。

process.exit() の前に console.log() を呼び出す場合等の潜在的な影響を理解したい方は、Node.js のドキュメント と PR #45690 をご参照ください。

Behavior Changed: WebUSB and WebSerial Blocklist Support​

WebUSB と Web Serial は、Chromium で使用されてそれぞれの仕様で概説されている、WebUSB ブロックリスト と Web Serial ブロックリスト をサポートするようになりました。

これらを無効化するには、ユーザーがコマンドラインフラグとして disable-usb-blocklist と disable-serial-blocklist を渡すことでできます。

削除: ProtocolResponse の session プロパティの null 値​

This deprecated feature has been removed.

以前は、ProtocolResponse.session プロパティに null をセットするとランダムな独立したセッションが作成されていました。 This is no longer supported.

単一目的のセッションを使用するためにこうすることは、オーバーヘッドがかかるため非推奨です。しかしこの動作を維持する必要がある古いコードでは、session.fromPartition(some_random_string) でランダムなセッションを作成し ProtocolResponse.session でそれを使用するようにすることで、この動作を再現できます。

動作変更: Linux 向けの BrowserWindow.IsVisibleOnAllWorkspaces()​

BrowserWindow.IsVisibleOnAllWorkspaces() は、そのウインドウが現在表示されていない場合 Linux 上で false を返すようになりました。

34.x.y サポートの終了​

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

E37 (2025 年 6 月)E38 (2025 年 8 月)E39 (2025 年 10 月)
37.x.y38.x.y39.x.y
36.x.y37.x.y38.x.y
35.x.y36.x.y37.x.y

次回予告​

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

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

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