メインコンテンツにスキップ

Electron 28.0.0

·3分で読めます

Electron 28.0.0 がリリースされました! Chromium 120.0.6099.56、V8 12.0、Node.js 18.18.2 へのアップグレードが含まれています。


Electronチームは、Electron 28.0.0 のリリースを発表できることを嬉しく思います! npm install electron@latest を介して npm でインストールするか、リリースWebサイトからダウンロードできます。このリリースに関する詳細については、以下をお読みください。

フィードバックがある場合は、Twitter または Mastodon で共有するか、コミュニティDiscord に参加してください! バグや機能リクエストは、Electron のissue trackerで報告できます。

主な変更点

ハイライト

  • ECMAScriptモジュールまたはESMのサポートを実装しました(ECMAScriptモジュールとは? 詳細はこちら)。これには、Electron自体でのESMのサポート、およびUtilityProcess APIエントリポイントなどの領域でのサポートが含まれます。ESMドキュメントで詳細を参照してください。
  • Electron自体でのESMサポートの有効化に加えて、Electron ForgeはESMを使用してElectronアプリケーションをパッケージ化、ビルド、開発することもサポートしています。このサポートは、Forge v7.0.0以降で確認できます。

スタックの変更

新機能

  • ESMサポートを有効にしました。#37535
  • UtilityProcess APIにESMエントリポイントを追加しました。#40047
  • displayオブジェクトに、detectedmaximumCursorSizenativeOriginを含むいくつかのプロパティを追加しました。#40554
  • LinuxでELECTRON_OZONE_PLATFORM_HINT環境変数のサポートを追加しました。#39792

破壊的変更

動作変更: WebContents.backgroundThrottling を false に設定すると、ホスト BrowserWindow 内のすべての WebContents に影響します

WebContents.backgroundThrottling を false に設定すると、それが表示するすべての WebContents について、BrowserWindow 内でのフレームスロットリングが無効になります。

削除: BrowserWindow.setTrafficLightPosition(position)

BrowserWindow.setTrafficLightPosition(position) は削除されました。代わりに BrowserWindow.setWindowButtonPosition(position) API を使用する必要があります。このAPIは、位置をシステムのデフォルトにリセットするために { x: 0, y: 0 } の代わりに null を受け入れます。

// Removed in Electron 28
win.setTrafficLightPosition({ x: 10, y: 10 });
win.setTrafficLightPosition({ x: 0, y: 0 });

// Replace with
win.setWindowButtonPosition({ x: 10, y: 10 });
win.setWindowButtonPosition(null);

削除: BrowserWindow.getTrafficLightPosition()

BrowserWindow.getTrafficLightPosition() は削除されました。代わりに BrowserWindow.getWindowButtonPosition() API を使用する必要があります。このAPIは、カスタム位置がない場合に { x: 0, y: 0 } の代わりに null を返します。

// Removed in Electron 28
const pos = win.getTrafficLightPosition();
if (pos.x === 0 && pos.y === 0) {
// No custom position.
}

// Replace with
const ret = win.getWindowButtonPosition();
if (ret === null) {
// No custom position.
}

削除: ipcRenderer.sendTo()

ipcRenderer.sendTo() API は削除されました。レンダラー間でMessageChannelを設定することで置き換える必要があります。

IpcRendererEventsenderId および senderIsMainFrame プロパティも削除されました。

削除: app.runningUnderRosettaTranslation

app.runningUnderRosettaTranslation プロパティは削除されました。代わりに app.runningUnderARM64Translation を使用してください。

// Removed
console.log(app.runningUnderRosettaTranslation);
// Replace with
console.log(app.runningUnderARM64Translation);

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

Electron 25.x.y は、プロジェクトのサポートポリシーに従い、サポートが終了しました。開発者およびアプリケーションは、新しいバージョンのElectronにアップグレードすることをお勧めします。

E28 (2023年12月)E29 (2024年2月)E30 (2024年4月)
28.x.y29.x.y30.x.y
27.x.y28.x.y29.x.y
26.x.y27.x.y28.x.y

今後の予定

短期的には、チームは引き続き、Chromium、Node、V8など、Electronを構成する主要コンポーネントの開発に追従することに焦点を当てていくでしょう。

Electronの公開タイムラインはこちらをご覧ください。

将来の変更に関する詳細については、計画されている破壊的変更ページを参照してください。