メインコンテンツへスキップ

Electron 22.0.0

·読了時間 5分

Electron 22.0.0がリリースされました!新しいユーティリティプロセスAPI、Windows 7/8/8.1サポートのアップデート、Chromium 108、V8 10.8、Node.js 16.17.1へのアップグレードが含まれています。詳細は以下をお読みください!


Electronチームは、Electron 22.0.0のリリースを発表できることを嬉しく思います! npm install electron@latest でnpmを使用してインストールするか、リリースウェブサイトからダウンロードできます。このリリースの詳細については、以下をお読みください。

フィードバックがある場合は、Twitterで共有するか、コミュニティDiscordにご参加ください!バグと機能のリクエストはElectronのイシュートラッカーで報告できます。

注目すべき変更点

スタックの変更点

ハイライトされた機能

UtilityProcess API #36089

新しいUtilityProcessメインプロセスモジュールにより、Node.js統合のみを備えた軽量のChromium子プロセスを作成できます。また、MessageChannelを使用してサンドボックス化されたレンダラーとの通信も可能です。APIは、移行を容易にするためにNode.js child_process.forkに基づいて設計されました。主な違いの1つは、エントリポイントmodulePathがパッケージ化されたアプリケーション内からである必要があることです。信頼できるスクリプトのみを読み込むことができます。さらに、このモジュールは、デフォルトでレンダラーとの通信チャネルの確立を防ぎ、メインプロセスがアプリケーション内で唯一の信頼できるプロセスであるという契約を維持します。

新しいUtilityProcess APIの詳細については、こちらのドキュメントをご覧ください

Windows 7/8/8.1 サポートのアップデート

情報

2023/02/16: Windows Server 2012 サポートに関するアップデート

先月、GoogleはChrome 109が2023年10月10日までWindows Server 2012およびWindows Server 2012 R2の重要なセキュリティ修正を受け続けることを発表しました。これに伴い、Electron 22(Chromium 108)のサポート終了予定日は2023年5月30日から2023年10月10日に延長されます。Electronチームは、2023年10月10日まで、このプログラムの一部であるセキュリティ修正をElectron 22にバックポートし続けます。

Windows 7/8/8.1の追加のセキュリティ修正は行わないことに注意してください。また、Electron 23(Chromium 110)は、以前に発表されたとおり、Windows 10以降でのみ機能します。

Electron 22は、Windows 7/8/8.1をサポートする最後のElectronメジャーバージョンとなります。Electronは、Windows 7/8/8.1のサポートをChromium 109で終了する計画されたChromiumの廃止ポリシーに従います(詳細はこちら)。

Windows 7/8/8.1は、Electron 23以降のメジャーリリースではサポートされません。

その他の注目すべき変更点

  • LinuxおよびWindowsでWeb Bluetooth PINペアリングのサポートが追加されました。 #35416
  • メイン/ブラウザプロセスがbrowser_v8_context_snapshot.binのファイルからv8スナップショットを読み込むことができる新しいヒューズとしてLoadBrowserProcessSpecificV8Snapshotが追加されました。その他プロセスは、現在と同じパスを使用します。 #35266
  • ウィンドウオープナーにアクセスするためのWebContents.openerと、WebFrameMainインスタンスに対応するWebContentsを取得するためのwebContents.fromFrame(frame)が追加されました。 #35140
  • 新しいセッションハンドラses.setDisplayMediaRequestHandlerを介してnavigator.mediaDevices.getDisplayMediaのサポートが追加されました。 #30702

破壊的なAPIの変更

以下は、Electron 22で導入された破壊的な変更です。これらの変更点と今後の変更点の詳細については、破壊的な変更の計画ページをご覧ください。

非推奨: webContents.incrementCapturerCount(stayHidden, stayAwake)

webContents.incrementCapturerCount(stayHidden, stayAwake)は非推奨になりました。ページキャプチャが完了すると、webContents.capturePageによって自動的に処理されるようになりました。

const w = new BrowserWindow({ show: false })

- w.webContents.incrementCapturerCount()
- w.capturePage().then(image => {
- console.log(image.toDataURL())
- w.webContents.decrementCapturerCount()
- })

+ w.capturePage().then(image => {
+ console.log(image.toDataURL())
+ })

非推奨: webContents.decrementCapturerCount(stayHidden, stayAwake)

webContents.decrementCapturerCount(stayHidden, stayAwake) は非推奨になりました。ページキャプチャの完了時に webContents.capturePage によって自動的に処理されるようになりました。

const w = new BrowserWindow({ show: false })

- w.webContents.incrementCapturerCount()
- w.capturePage().then(image => {
- console.log(image.toDataURL())
- w.webContents.decrementCapturerCount()
- })

+ w.capturePage().then(image => {
+ console.log(image.toDataURL())
+ })

削除済み: WebContents の new-window イベント

WebContents の new-window イベントは削除されました。 webContents.setWindowOpenHandler() に置き換えられました。

- webContents.on('new-window', (event) => {
- event.preventDefault()
- })

+ webContents.setWindowOpenHandler((details) => {
+ return { action: 'deny' }
+ })

非推奨: BrowserWindow の scroll-touch-* イベント

BrowserWindow の scroll-touch-beginscroll-touch-endscroll-touch-edge イベントは非推奨になりました。代わりに、WebContents の新しく利用可能になった input-event イベント を使用してください。

// Deprecated
- win.on('scroll-touch-begin', scrollTouchBegin)
- win.on('scroll-touch-edge', scrollTouchEdge)
- win.on('scroll-touch-end', scrollTouchEnd)

// Replace with
+ win.webContents.on('input-event', (_, event) => {
+ if (event.type === 'gestureScrollBegin') {
+ scrollTouchBegin()
+ } else if (event.type === 'gestureScrollUpdate') {
+ scrollTouchEdge()
+ } else if (event.type === 'gestureScrollEnd') {
+ scrollTouchEnd()
+ }
+ })

19.x.y のサポート終了

Electron 19.x.y は、プロジェクトの サポートポリシー に従い、サポート終了となりました。開発者とアプリケーションは、Electron の新しいバージョンにアップグレードすることをお勧めします。

E19 (2022年5月)E20 (2022年8月)E21 (2022年9月)E22 (2022年11月)E23 (2023年1月)
19.x.y20.x.y21.x.y22.x.y23.x.y
18.x.y19.x.y20.x.y21.x.y22.x.y
17.x.y18.x.y19.x.y20.x.y21.x.y

今後の予定

Electron プロジェクトは、2022年12月中は一時停止し、2023年1月に再開します。詳細は、12月のシャットダウンに関するブログ記事 をご覧ください。

短期的には、チームは、Chromium、Node、V8 など、Electron を構成する主要コンポーネントの開発に追いつくことに引き続き注力していく予定です。

Electron の公開タイムラインはこちら です。

今後の変更に関する詳細は、計画されている破壊的変更 ページをご覧ください。