Electron 25.0.0
Electron 25.0.0 がリリースされました! これには Chromium 114
、V8 11.4
、Node.js 18.15.0
へのアップグレードが含まれています。 詳しくは以下をご覧ください!
Electron チームは、Electron 25.0.0 のリリース発表にワクワクしています! npm install electron@latest
から npm でインストールするか、リリースウェブサイト からダウンロードできます。 このリリースの詳細は続きをご覧ください。
フィードバックがあれば、Twitterで共有するか、コミュニティ Discordに参加してください! バ グや機能の要望は Electron の Issue トラッカー で報告できます。
注目すべき変更
ハイライト
- Chromiumのネットワークスタックを使用して、Electron のネットモジュール内に
net.fetch
を実装しました。 これは、Node.js の HTTP スタックを使用する Node のfetch()
とは異なります。 #36733と #36606を参照してください。 protocol.handle
を追加しました。これは非推奨になったprotocol.{register,intercept}{String,Buffer,Stream,Http,File}Protocol
を置き換えます。 #36674- ChromiumとMicrosoftのWindows 7/8/8.1の非推奨プランと一致するように、Electron 22の拡張サポート。 詳細はこのブログ投稿の最後をご覧ください。
累積的変更
- Chromium
114
- Node.js
18.15.0
- V8
11.4
破壊的変更
非推奨: protocol.{register,intercept}{Buffer,String,Stream,File,Http}Protocol
protocol.register*Protocol
メソッドと protocol.intercept*Protocol
メソッドは protocol.handle
に置き換えられました。
新しいメソッドは、新しいプロトコルを登録するか、既存のプロトコルを傍受するか、どのタイプの応答も可能です。
// Electron 25では非推奨
protocol.registerBufferProtocol('some-protocol', () => {
callback({ mimeType: 'text/html', data: Buffer.from('<h5>Response</h5>') });
});
// 以下で置き換えてください
protocol.handle('some-protocol', () => {
return new Response(
Buffer.from('<h5>Response</h5>'), // string または ReadableStream になりえる
{ headers: { 'content-type': 'text/html' } }
);
});
// Electron 25 で非推奨
protocol.registerHttpProtocol('some-protocol', () => {
callback({ url: 'https://electronjs.org' });
});
// 以下で置き換えてください。
protocol.handle('some-protocol', () => {
return net.fetch('https://electronjs.org');
});
// Electron 25 では非推奨
protocol.registerFileProtocol('some-protocol', () => {
callback({ filePath: '/path/to/my/file' });
});
// 以下で置き換えてください
protocol.handle('some-protocol', () => {
return net.fetch('file:///path/to/my/file');
});
非推奨: BrowserWindow.setTrafficLightPosition(position)
BrowserWindow.setTrafficLightPosition(position)
は非推奨になり、代わりに BrowserWindow.setWindowButtonPosition(position)
API を使うようになりました。こちらでシステム基底の位置へリセットする際には、{ x: 0, y: 0 }
の代わりに null
を受け付けるようになっています。
// Electron 25 では非推奨
win.setTrafficLightPosition({ x: 10, y: 10 });
win.setTrafficLightPosition({ x: 0, y: 0 });
// 以下で置き換えてください
win.setWindowButtonPosition({ x: 10, y: 10 });
win.setWindowButtonPosition(null);
非推奨: BrowserWindow.getTrafficLightPosition()
BrowserWindow.getTrafficLightPosition()
は非推奨になり、代わりに BrowserWindow.getWindowButtonPosition()
API を使うようになりました。こちらでカスタム位置が無いときは、{ x: 0, y: 0 }
の代わりに null
を受け付けるようになっています。
// Electron 25 で非推奨
const pos = win.getTrafficLightPosition();
if (pos.x === 0 && pos.y === 0) {
// カスタム位置が無い場合。
}
// 以下で置き換えてください
const ret = win.getWindowButtonPosition();
if (ret === null) {
// カスタム位置が無い場合。
}
新機能
net.fetch()
を追加しました。 #36733net.fetch
はfile:
URL とprotocol.register*Protocol
で登録したカスタムプロトコルへのリクエストをサポートしています。 #36606
- BrowserWindow.set/getWindowButtonPosition API を追加しました。 #37094
protocol.handle
を追加しました。これはprotocol.{register,intercept}{String,Buffer,Stream,Http,File}Protocol
を置き換え非推奨にするものです。 #36674webContents
と<webview>
タグにwill-frame-navigate
イベントを追加しました。これは、フレーム階層内の任意のフレームがナビゲーションしようとするたびに発生します。 #34418- ナビゲーションが起き るイベントに、それを引き起こした存在の情報を追加しました。 この情報により、子フレームによって開始されるナビゲーションに対して、ナビゲーションを引き起こすような
window.open
を親フレームから区別できます。 #37085 - net.resolveHost を追加しました。これは defaultSession オブジェクトを用いてホストを解決します。 #38152
app
に新しく 'did-resign-active' イベントを追加しました。 #38018webContents.print()
にいくつかの標準ページサイズのオプションを追加しました。 #37159enableLocalEcho
フラグをセッションハンドラーses.setDisplayMediaRequestHandler()
のコールバックに追加しました。これはaudio
がWebFrameMain
の場合に、リモートのオーディオ入力をローカル出力ストリームにエコーできます。 #37315powerMonitor
に熱管理情報を追加しました。 #38028- session.fromPath() API に絶対パスを渡せるようにしました。 #37604
webContents
にてaudio-state-changed
イベ ントを公開しました。 #37366
22.x.y 継続サポート
さらば、Windows 7/8/8.1 で述べた通り、Electron 22 (Chromium 108) の EOL 予定日は 2023 年 5 月 30 日から 2023 年 10 月 10 日へと延長されました。 Electron チームは、2023 年 10 月 10 日までこのプログラムの一部であるセキュリティ修正の Electron 22 へのバックポートを継続する予定です。 10 月のサポート日は Chromium と Microsoft 両方の延長サポート日に従っています。 10 月 11 日時点で、Electron チームは最新から 3 つの安定版メジャーバージョンが Windows 7/8/8.1 サポートすることを終了します。
E25 (May'23) | E26 (Aug'23) | E27 (Oct'23) |
---|---|---|
25.x.y | 26.x.y | 27.x.y |
24.x.y | 25.x.y | 26.x.y |
23.x.y | 24.x.y | 25.x.y |
22.x.y | 22.x.y | -- |
次回予告
短期的には、Chromium、Node、V8 といった Electron を構成する主要コンポーネントの開発に遅れないでチームが注力し続けるでしょう。
Electron の公開タイムラインはこちら になります。
将来の変更の詳細については、予定されている破壊的変更 のページをご参照ください。