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 install electron@latest`でnpm経由でインストールするか、リリースウェブサイトからダウンロードできます。このリリースに関する詳細は、読み進めてください。
フィードバックがありましたら、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`、および`
// 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`プロパティ
`app`からの`login`イベントの`webContents`プロパティは、`respondToAuthRequestsFromMainProcess`オプションを使用して作成されたユーティリティプロセスからのリクエストに対してイベントがトリガーされた場合、`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のパブリックタイムラインはこちらでご覧いただけます。
今後の変更に関する詳細は、予定されている破壊的変更ページをご覧ください。