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 トラッカー で報告できます。
注目すべき変更
ハイライト
- Added a handler,
app.setClientCertRequestPasswordHandler(handler)
, to help unlock cryptographic devices when a PIN is needed. #41205 - Extended
navigationHistory
API with 2 new functions for better history management. #42014 - Improved native theme transparency checking. #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
へとアップグレードしています。
新機能
- Added a handler,
app.setClientCertRequestPasswordHandler(handler)
, to help unlock cryptographic devices when a PIN is needed. #41205 - Added error event in utility process to support diagnostic reports on V8 fatal errors. #43997
- Added
View.setBorderRadius(radius)
for customizing the border radius of views—with compatibility forWebContentsView
. #42320 - Extended
navigationHistory
API with 2 new functions for better history management. #42014
破壊的変更
削除: macOS 10.15 のサポート
macOS 10.15 (Catalina) は Chromium でサポートされなくなりました。
旧バージョンの Electron はこれらのオペレーティングシステムでも引き続き動作しますが、Electron v20.0.0 以降の動作には macOS 11 (High Sierra) 以降が必要です。
動作変更: ネイティブモジュールにC++20が必要になりました
上流における変更により、V8 と Node.js の両方が、最小バージョンとしてC++20を必要とするようになりました。 ネイティブのNodeモジュールを使用する開発者は、 --std=c++17
ではなく --std=c++20
でモジュールをビルドする必要があります。 gcc9 以下のバージョンで作成されたイメージは、コンパイルするには gcc10 への更新が必要になる場合があります。 詳細は#43555を参照してください。
動作変更: WindowsにおけるカスタムプロトコルURLの処理
Chromiumが「特別でないURL (Non-special URL)」をサポートのために変更を加えたため、Windowsファイルパスを使用するカスタムプロトコルURLは、非推奨となった protocol.registerFileProtocol
と BrowserWindow.loadURL
、WebContents.loadURL
、<webview>.loadURL
の baseURLForDataURL
プロパティでは正しく動作しなくなります。 protocol.handle
もこれらのタイプのURLでは動作しませんが、これは元々そのように動作しているため、変更ではありません。
// 動作しない
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');
// 代替案
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
が推奨されます。新しいものでは全く同じ情報を提供しながら、クロスプラットフォームで動作します。
// 非推奨
const shouldReduceTransparency =
systemPreferences.accessibilityDisplayShouldReduceTransparency;
// こちらで置き換えてください
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 の公開タイムラインはこちらで ご覧いただけます。
今後の変更についての詳細は、予定されている破壊的変更 のページをご覧ください。