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 トラッカーで報告できます。
注目すべき変更点
ハイライト
- 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
- `View.setBorderRadius(radius)` を追加して、ビューのボーダー半径をカスタマイズします(`WebContentsView` との互換性あり)。 #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.js、V8を含むElectronを構成する主要コンポーネントの開発に追いつくことに引き続き注力します。
Electronのパブリックタイムラインはこちらにあります。
将来の変更に関する詳細は、予定されている破壊的変更ページをご覧ください。