Electron 33.0.0
Electron 33.0.0 がリリースされました! Chromium 130.0.6723.44、V8 13.0、および Node 20.18.0 へのアップグレードが含まれています。
Electron チームは、Electron 33.0.0 のリリースを発表できることを嬉しく思います! npm で npm install electron@latest
を使用してインストールするか、リリース ウェブサイトからダウンロードできます。このリリースに関する詳細については、以下をお読みください。
フィードバックがある場合は、Twitter または Mastodon で共有するか、コミュニティ Discord に参加してください! バグと機能リクエストは、Electron のissue trackerで報告できます。
注目すべき変更点
ハイライト
- PIN が必要な場合に暗号化デバイスのロックを解除するのに役立つハンドラー
app.setClientCertRequestPasswordHandler(handler)
を追加しました。#41205 - より良い履歴管理のために、2 つの新しい関数で
navigationHistory
API を拡張しました。#42014 - ネイティブ テーマの透明度チェックを改善しました。#42862
スタックの変更
- Chromium
130.0.6723.44
- Node
20.18.0
- V8
13.0
Electron 33 は、Chromium を 128.0.6613.36
から 130.0.6723.44
に、Node を 20.16.0
から 20.18.0
に、V8 を 12.8
から 13.0
にアップグレードします。
新機能
- PIN が必要な場合に暗号化デバイスのロックを解除するのに役立つハンドラー
app.setClientCertRequestPasswordHandler(handler)
を追加しました。#41205 - V8 の致命的なエラーに関する診断レポートをサポートするために、ユーティリティ プロセスにエラー イベントを追加しました。#43997
WebContentsView
との互換性により、ビューの境界半径をカスタマイズするためのView.setBorderRadius(radius)
を追加しました。#42320- より良い履歴管理のために、2 つの新しい関数で
navigationHistory
API を拡張しました。#42014
破壊的変更
削除:macOS 10.15 のサポート
macOS 10.15 (Catalina) は、Chromium でサポートされなくなりました。
古いバージョンの Electron は引き続き Catalina で実行されますが、Electron v33.0.0 以降を実行するには macOS 11 (Big Sur) 以降が必要になります。
動作変更:ネイティブ モジュールで C++20 が必須に
アップストリームで行われた変更により、V8 と Node.js の両方で、最小バージョンとして C++20 が必要になりました。ネイティブ ノード モジュールを使用する開発者は、--std=c++17
ではなく --std=c++20
でモジュールをビルドする必要があります。gcc9 以下のイメージは、コンパイルするために gcc10 に更新する必要がある場合があります。詳細については、#43555 を参照してください。
動作変更:Windows でのカスタム プロトコル URL の処理
非特殊スキーム URLをサポートするために Chromium で行われた変更により、Windows ファイル パスを使用するカスタム プロトコル URL は、非推奨の protocol.registerFileProtocol
および BrowserWindow.loadURL
、WebContents.loadURL
、および <webview>.loadURL
の baseURLForDataURL
プロパティで正しく動作しなくなります。protocol.handle
はこれらのタイプの URL では機能しませんが、これは常にそのように機能していたため変更ではありません。
// No longer works
protocol.registerFileProtocol('other', () => {
callback({ filePath: '/path/to/my/file' });
});
const mainWindow = new BrowserWindow();
mainWindow.loadURL(
'data:text/html,<script src="loaded-from-dataurl.js"></script>',
{ baseURLForDataURL: 'other://C:\\myapp' }
);
mainWindow.loadURL('other://C:\\myapp\\index.html');
// Replace with
const path = require('node:path');
const nodeUrl = require('node:url');
protocol.handle(other, (req) => {
const srcPath = 'C:\\myapp\\';
const reqURL = new URL(req.url);
return net.fetch(
nodeUrl.pathToFileURL(path.join(srcPath, reqURL.pathname)).toString()
);
});
mainWindow.loadURL(
'data:text/html,<script src="loaded-from-dataurl.js"></script>',
{ baseURLForDataURL: 'other://' }
);
mainWindow.loadURL('other://index.html');
動作変更:app
の login
の webContents
プロパティ
respondToAuthRequestsFromMainProcess
オプションで作成されたユーティリティ プロセスからのリクエストに対してイベントがトリガーされる場合、app
からの login
イベントの webContents
プロパティは null
になります。
非推奨: BrowserWindowConstructorOption.type
の textured
オプション
BrowserWindowConstructorOptions
の type
の textured
オプションは、代替となるものがなく非推奨となりました。このオプションは、macOS の NSWindowStyleMaskTexturedBackground
スタイルマスクに依存していましたが、代替となるものがなく非推奨となっています。
非推奨: systemPreferences.accessibilityDisplayShouldReduceTransparency
systemPreferences.accessibilityDisplayShouldReduceTransparency
プロパティは、クロスプラットフォームで同じ情報を提供し動作する新しい nativeTheme.prefersReducedTransparency
に置き換えられ、非推奨となりました。
// Deprecated
const shouldReduceTransparency =
systemPreferences.accessibilityDisplayShouldReduceTransparency;
// Replace with:
const prefersReducedTransparency = nativeTheme.prefersReducedTransparency;
30.x.y のサポート終了
Electron 30.x.y は、プロジェクトの サポートポリシー に従い、サポートが終了しました。開発者およびアプリケーションは、より新しいバージョンの Electron にアップグレードすることが推奨されます。
E33 (2024年10月) | E34 (2025年1月) | E35 (2025年4月) |
---|---|---|
33.x.y | 34.x.y | 35.x.y |
32.x.y | 33.x.y | 34.x.y |
31.x.y | 32.x.y | 33.x.y |
今後の予定
短期的には、チームは Chromium、Node、V8 を含む Electron を構成する主要コンポーネントの開発に遅れないように注力し続ける予定です。
Electron の公開タイムラインはこちらで確認できます。
将来の変更に関する詳細情報は、計画されている破壊的変更のページで確認できます。