メインコンテンツへ飛ぶ

"リリース" タグの記事が 1 件の投稿 件あります

Blog posts about new Electron releases

全てのタグを表示

Electron 21.0.0

· 読むのにかかる時間 1 分

Electron 21.0.0 がリリースされました! これには Chromium 106、V8 10.6、Node.js 16.16.0 へのアップグレードが含まれています。 詳しくは以下をご覧ください!


Electron チームは、Electron 21.0.0 のリリース発表にワクワクしています! npm install electron@latest から npm でインストールするか、リリースウェブサイト からダウンロードできます。 このリリースの詳細は続きをご覧ください。

フィードバックがあれば、Twitterで共有するか、コミュニティ Discordに参加してください! バグや機能の要望は Electron の Issue トラッカー で報告できます。

注目すべき変更

累積的変更

新機能

  • webFrameMain.origin を追加しました。 #35534
  • 新しい WebContents.ipcWebFrameMain.ipc API を追加しました。 #35231
  • パネルのような動作のサポートを追加しました。 フルスクリーンにしたアプリの上にウインドウを浮かべることができます。 #34388
  • macOS アプリ向けに APNS からのプッシュ通知サポートを追加しました。 #33574

破壊的な API の変更

以下は、Electron 21 での破壊的変更点です。

V8 メモリケージの有効化

Electron 21 では V8 のサンドボックス化ポインタ を有効にします。これは Chrome の Chrome 103 での同様の決定 に従ったものです。 これはネイティブモジュールにいくつかの影響を与えます。 この機能には、パフォーマンスやセキュリティ上の利点がありますが、外部 ("ヒープ外") のメモリを指す ArrayBuffer の使用など、ネイティブモジュールに新しい制限を課すことになります。 詳細は ブログ記事 をご参照ください。 #34724

webContents.printToPDF のリファクタリング

Chromium のヘッドレス実装に合わせるために webContents.printToPDF をリファクタリングしました。 さらなる情報は #33654 をご参照ください。

これらの変更と将来の変更の詳細については、予定されている破壊的変更 のページを参照してください。

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

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

E18 (Mar'22)E19 (May'22)E20 (Aug'22)E21 (Sep'22)E22 (Dec'22)
18.x.y19.x.y20.x.y21.x.y22.x.y
17.x.y18.x.y19.x.y20.x.y21.x.y
16.x.y17.x.y18.x.y19.x.y20.x.y

次回予告

短期的には、Chromium、Node、V8 といった Electron を構成する主要コンポーネントの開発に遅れないでチームが注力し続けるでしょう。

Electron の公開タイムラインはこちら になります。

将来の変更の詳細については、予定されている破壊的変更 のページをご参照ください。

Electron 20.0.0

· 読むのにかかる時間 1 分

Electron 20.0.0 がリリースされました! これには Chromium 104、V8 10.4、Node.js 16.15.0 へのアップグレードが含まれています。 詳しくは以下をご覧ください!


Electron チームは、Electron 20.0.0 のリリース発表にワクワクしています! npm install electron@latest から npm でインストールするか、リリースウェブサイト からダウンロードできます。 このリリースの詳細については下に続きます。是非ご意見をお聞かせください!

注目すべき変更

新機能

  • Windows に没入型ダークモードを追加しました。 #34549
  • パネルのような動作のサポートを追加しました。 フルスクリーンにしたアプリの上にウインドウを浮かべることができます。 #34665
  • Windows 11 でよりネイティブに見えるように Windows コントロールオーバーレイボタンを更新しました。 #34888
  • nodeIntegration: truesandbox: false が指定されない限り、デフォルトでレンダラーがサンドボックス化されるようになりました。 #35125
  • nan でネイティブモジュールをビルドする際のセーフガードを追加しました。 #35160

累積的変更

破壊的な API の変更

以下は、Electron 20 での破壊的変更点です。 これらの変更と将来の変更の詳細については、予定されている破壊的変更 のページを参照してください。

省略値の変更: nodeIntegration: true 指定が無いレンダラーはデフォルトでサンドボックス化されます。

これまで、プリロードスクリプトを指定したレンダラーはデフォルトでサンドボックス化されていませんでした。 つまり、プリロードスクリプトはデフォルトで Node.js へのアクセス権を持っていたということです。 Electron 20 では、この省略値が変更されました。 Electron 20 以降、レンダラーに nodeIntegration: true または sandbox: false が指定されていない限り、デフォルトでサンドボックス化されます。

プリロードスクリプトが Node に依存していない場合、対応は不要です。 プリロードスクリプトが Node に依存している場合は、リファクタしてレンダラーから Node の使用部分を削除するか、そういったレンダラーでは sandbox: false を明示的に指定してください。

修正: nan ネイティブモジュールでの自発的クラッシュ

Electron 20 では、ネイティブモジュールに関する 2 つの項目を変更しました。

  1. V8 ヘッダはデフォルトで c++17 を使用するようになりました。 このフラグは electron-rebuild で付与されます。
  2. nan に依存しているネイティブモジュールでインクルードファイルが見つからないと、自発的にクラッシュする問題を修正しました。

最大限安定させるために、ネイティブモジュール、特に nan に依存するモジュールをリビルドする際には、node-gyp>=8.4.0 と electron-rebuild>=3.2.9 の使用を推奨します。 詳細は electron の #35160 と node-gyp の #2497 を参照してください。

削除: Linux 上の .skipTaskbar

X11 では、 skipTaskbar_NET_WM_STATE_SKIP_TASKBAR メッセージを X11 ウインドウマネージャーに送信します。 Wayland には同等のものがなく、また既知の回避策にも許容できないトレードオフがあるため (例えば GNOME の Window.is_skip_taskbar はアンセーフモードが必要)、Electron はこの機能を Linux でサポートできません。

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

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

E18 (Mar'22)E19 (May'22)E20 (Aug'22)E21 (Sep'22)E22 (Dec'22)
18.x.y19.x.y20.x.y21.x.y22.x.y
17.x.y18.x.y19.x.y20.x.y21.x.y
16.x.y17.x.y18.x.y19.x.y20.x.y
15.x.y--------

次回予告

短期的には、Chromium、Node、V8 といった Electron を構成する主要コンポーネントの開発に遅れないでチームが注力し続けるでしょう。 リリース日について約束しないように注意していますが、予定では 2 か月ごとに新しいメジャーバージョンの Electron を、各コンポーネントの新しいバージョンに対してリリースします。

Electron の公開タイムラインはこちら になります。

将来の変更の詳細については、予定されている破壊的変更 のページをご参照ください。

Electron 19.0.0

· 読むのにかかる時間 1 分

Electron 19.0.0 がリリースされました! これには Chromium 102、V8 10.2、Node.js 16.14.2 へのアップグレードが含まれています。 詳しくは以下をご覧ください!


Electron チームは、Electron 19.0.0 のリリース発表にワクワクしています! npm install electron@latest から npm でインストールするか、リリースウェブサイト からダウンロードできます。 このリリースの詳細については下に続きます。是非ご意見をお聞かせください!

注目すべき変更

Electron リリースケイデンスの変更

このプロジェクトは、以前の方針である最新の 3 つのメジャーバージョンのサポートに戻りつつあります。 Electron のバージョン管理およびサポートについてのより詳細な情報は、バージョン管理のドキュメント をご覧ください。 Electron 15 から始まった新しいリリースサイクルにユーザーが適応できるよう、一時的に 4 つのメジャーバージョンをサポートしていました。 詳細はこちら でご覧いただけます。

累積的変更

破壊的な API の変更

以下は、Electron 19 での破壊的変更点です。 これらの変更と将来の変更の詳細については、予定されている破壊的変更 のページを参照してください。

Linux での非対応化: .skipTaskbar

Linux では BrowserWindow コンストラクタのオプション skipTaskbar がサポートされなくなりました。 #33226 での変更

WebPreferences.preloadURL の削除

準ドキュメント化されていた preloadURL プロパティは、WebPreferences から削除されました。 #33228. WebPreferences.preload を代わりに使用してください。

15.x.y と 16.x.y のサポート終了

Electron 14.x.y と 15.x.y はどちらも既にサポート終了しています。 これにより、Electron は最新の 3 つのメジャーバージョンをサポートする 従来の方針戻ります。 開発者とアプリケーションは新しいバージョンの Electron にアップグレードすることを推奨します。

E15 (Sep'21)E16 (Nov'21)E17 (Feb'22)E18 (Mar'22)E19 (May'22)
15.x.y16.x.y17.x.y18.x.y19.x.y
14.x.y15.x.y16.x.y17.x.y18.x.y
13.x.y14.x.y15.x.y16.x.y17.x.y
12.x.y13.x.y14.x.y15.x.y--

次回予告

短期的には、Chromium、Node、V8 といった Electron を構成する主要コンポーネントの開発に遅れないでチームが注力し続けるでしょう。 リリース日について約束しないように注意していますが、予定では 2 か月ごとに新しいメジャーバージョンの Electron を、各コンポーネントの新しいバージョンに対してリリースします。

Electron の公開タイムラインはこちら になります。

将来の変更の詳細については、予定されている破壊的変更 のページをご参照ください。

Electron 18.0.0

· 読むのにかかる時間 1 分

Electron 18.0.0 がリリースされました! これには Chromium 100、V8 10.0、Node.js 16.13.2 へのアップグレードが含まれています。 詳しくは以下をご覧ください!


Electron チームは、Electron 18.0.0 のリリース発表にワクワクしています! npm install electron@latest から npm でインストールするか、リリースウェブサイト からダウンロードできます。 このリリースの詳細については下に続きます。是非ご意見をお聞かせください!

注目すべき変更

Electron リリースケイデンスの変更

Electron 15 にて、Electron は 8 週間ごとに新規メジャー安定版をリリースするようになります。 詳細はこちら でご覧いただけます。

また、Electron は 2022 年 5 月まで、サポートするバージョンを最新の 3 つのバージョンから最新の 4 つのバージョンに変更しています。 Electron のバージョン管理の詳細については バージョン管理のドキュメントを参照してください。 2022 年 5 月以降は、最新の 3 つのバージョンのサポートに戻ります。

累積的変更

注目の機能

  • コードキャッシュのディレクトリを設定する ses.setCodeCachePath() API を追加しました。 #33286
  • 古い BrowserWindowProxy ベースの window.open の実装を削除しました。 さらに webPreferences から nativeWindowOpen オプションを削除しました。 #29405
  • WebContents に 'focus' と 'blur' のイベントを追加しました。 #25873
  • macOS 上に右記の代替メニューロールを追加しました: showSubstitutionstoggleSmartQuotestoggleSmartDashestoggleTextReplacement#32024
  • Added a first-instance-ack event to the app.requestSingleInstanceLock() flow, allowing users to seamlessly transmit data from the first instance to the second instance. #31460
  • より多くの色形式サポートを setBackgroundColor に追加しました。 #33364

新機能と変更の完全なリストは、18.0.0 リリースノート を参照してください。

破壊的な API の変更

以下は、Electron 18 での破壊的変更点です。 これらの変更と将来の変更の詳細については、予定されている破壊的変更 のページを参照してください。

削除: nativeWindowOpen

Electron 15 より前の window.open は既定で BrowserWindowProxy を使用していました。 このため、window.open('about:blank') では同期的にスクリプトで操作可能な子ウィンドウを開くことができないなどといった、非互換性がありました。 Electron 15 から、nativeWindowOpen が既定で有効になりました。

詳細については、Electron の windows.open のドキュメント をご参照ください。 #29405 で削除されました

14.x.y サポート終了

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

Electron 15 にて、2022 年 5 月の Electron 19 までの間だけ、サポートするバージョンを最新の 3 つのバージョンから最新の 4 つのバージョンに変更しています。 Electron 19 以降は、最新の 3 つのバージョンのサポートに戻ります。 このバージョンサポートの変更は、新しいケイデンス変更の一環です。 完全な詳細についてはこちらのブログ記事 をご参照ください。

E15 (Sep'21)E16 (Nov'21)E17 (Feb'22)E18 (Mar'22)E19 (May'22)
15.x.y16.x.y17.x.y18.x.y19.x.y
14.x.y15.x.y16.x.y17.x.y18.x.y
13.x.y14.x.y15.x.y16.x.y17.x.y
12.x.y13.x.y14.x.y15.x.y--

次回予告

短期的には、Chromium、Node、V8 といった Electron を構成する主要コンポーネントの開発に遅れないでチームが注力し続けるでしょう。 リリース日について約束しないように注意していますが、予定では 2 か月ごとに新しいメジャーバージョンの Electron を、各コンポーネントの新しいバージョンに対してリリースします。

Electron の公開タイムラインはこちら になります。

将来の変更の詳細については、予定されている破壊的変更 のページをご参照ください。

Electron 17.0.0

· 読むのにかかる時間 1 分

Electron 17.0.0 がリリースされました! これには Chromium 98、V8 9.8、Node.js 16.13.0 へのアップグレードが含まれています。 詳しくは以下をご覧ください!


Electron チームは、Electron 17.0.0 のリリース発表にワクワクしています! npm install electron@latest から npm でインストールするか、リリースウェブサイト からダウンロードできます。 このリリースの詳細については下に続きます。是非ご意見をお聞かせください!

注目すべき変更

Electron リリースケイデンスの変更

Electron 15 にて、Electron は 8 週間ごとに新規メジャー安定版をリリースするようになります。 詳細はこちら でご覧いただけます。

また、Electron は 2022 年 5 月まで、サポートするバージョンを最新の 3 つのバージョンから最新の 4 つのバージョンに変更しています。 Electron のバージョン管理の詳細については バージョン管理のドキュメントを参照してください。 2022 年 5 月以降は、最新の 3 つのバージョンのサポートに戻ります。

累積的変更

注目の機能

  • webContents.getMediaSourceId() を追加しました。getUserMedia と共に WebContents のストリームを取得できます。 #31204
  • webContents.getPrinters() を非推奨にし、webContents.getPrintersAsync() を導入します。 #31023
  • desktopCapturer.getSources は、メインプロセスでのみ使用できるようになりました。 #30720

新機能と変更の完全なリストは、17.0.0 リリースノート を参照してください。

破壊的変更

以下は、Electron 17 での破壊的変更点です。 これらの変更と将来の変更の詳細については、予定されている破壊的変更 のページを参照してください。

レンダラー内での desktopCapturer.getSources

desktopCapturer.getSources API は、メインプロセスでのみ使用できるようになりました。 この変更は Electron アプリのデフォルトのセキュリティを改善するためのものです。

API の変更

Electron 17 では API の変更はありませんでした。

削除/非推奨となった変更

  • レンダラー内での desktopCapturer.getSources API の使用方法は削除されました。 アプリにおいてこの API を置換する方法については、こちら をご参照ください。

13.x.y サポート終了

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

Electron 15 にて、2022 年 5 月の Electron 19 までの間だけ、サポートするバージョンを最新の 3 つのバージョンから最新の 4 つのバージョンに変更しています。 Electron 19 以降は、最新の 3 つのバージョンのサポートに戻ります。 このバージョンサポートの変更は、新しいケイデンス変更の一環です。 完全な詳細についてはこちらのブログ記事 をご参照ください。

E15 (Sep'21)E16 (Nov'21)E17 (Feb'22)E18 (Mar'22)E19 (May'22)
15.x.y16.x.y17.x.y18.x.y19.x.y
14.x.y15.x.y16.x.y17.x.y18.x.y
13.x.y14.x.y15.x.y16.x.y17.x.y
12.x.y13.x.y14.x.y15.x.y--

次回予告

短期的には、Chromium、Node、V8 といった Electron を構成する主要コンポーネントの開発に遅れないでチームが注力し続けるでしょう。 リリース日について約束しないように注意していますが、予定では 2 か月ごとに新しいメジャーバージョンの Electron を、各コンポーネントの新しいバージョンに対してリリースします。

Electron の公開タイムラインはこちら になります。

将来の変更の詳細については、予定されている破壊的変更 のページをご参照ください。

Electron 16.0.0

· 読むのにかかる時間 1 分

Electron 16.0.0 がリリースされました! これには Chromium 96、V8 9.6、Node.js 16.9.1 へのアップグレードが含まれています。 詳しくは以下をご覧ください!


Electron チームは、Electron 16.0.0 のリリース発表にワクワクしています! npm install electron@latest から npm でインストールするか、リリースウェブサイト からダウンロードできます。 このリリースの詳細については下に続きます。是非ご意見をお聞かせください!

注目すべき変更

Electron リリースケイデンスの変更

Electron 15 にて、Electron は 8 週間ごとに新規メジャー安定版をリリースするようになります。 詳細はこちら でご覧いただけます。

また、Electron は 2022 年 5 月まで、サポートするバージョンを最新の 3 つのバージョンから最新の 4 つのバージョンに変更しています。 Electron のバージョン管理の詳細については バージョン管理のドキュメントを参照してください。 2022 年 5 月以降は、最新の 3 つのバージョンのサポートに戻ります。

累積的変更

注目の機能

  • WebHID API をサポートするようになりました。 #30213
  • インスタンス間でデータを共有するために、app.requestSingleInstanceLock に data 引数を追加しました。 #30891
  • メディア権限のリクエストハンドラに securityOrigin を渡すようになりました。 #31357
  • commandLine.removeSwitch を追加しました。 #30933

新機能と変更の完全なリストは、16.0.0 リリースノート を参照してください。

破壊的変更

以下は、Electron 16 での破壊的変更点です。 これらの変更と将来の変更の詳細については、予定されている破壊的変更 のページを参照してください。

ネイティブモジュールのビルド

ネイティブモジュールのビルドに node-gyp を使用している場合、プロジェクトの設定や Electron のバージョンによっては --force-process-config を付けて呼び出す必要があるでしょう。 この変更に関する詳細な情報は、#2497 をご覧ください。

動作変更: crashReporter の実装を Linux の Crashpad に

Linux における crashReporter API の内部実装が Breakpad から Crashpad に変更され、Windows や Mac と同じになりました。 この結果、子プロセスが自動的に監視されるようになり、Node の子プロセスで process.crashReporter.start を呼び出す必要がなくなりました (これは Crashpad レポーターの 2 つ目のインスタンスを起動してしまうため非推奨です)。

また、Linux でのアノテーションのレポート方法にも小さな変更があります。長い値に対して __1__2 などを付加したアノテーション間の分割をしなくなり、代わりに (新しい、より長い) アノテーションの値の上限で切り捨てるようになりました。

API の変更

Electron 16 では API の変更はありませんでした。

削除/非推奨となった変更

  • レンダラー内での desktopCapturer.getSources API の使用は非推奨となり、削除される予定です。 この変更は Electron アプリのデフォルトのセキュリティを改善します。 アプリにおいてこの API を置換する方法については、こちら をご参照ください。

12.x.y サポート終了

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

Electron 15 にて、2022 年 5 月の Electron 19 までの間だけ、サポートするバージョンを最新の 3 つのバージョンから最新の 4 つのバージョンに変更しています。 Electron 19 以降は、最新の 3 つのバージョンのサポートに戻ります。 このバージョンサポートの変更は、新しいケイデンス変更の一環です。 完全な詳細についてはこちらのブログ記事 をご参照ください。

E15 (Sep'21)E16 (Nov'21)E17 (Feb'22)E18 (Mar'22)E19 (May'22)
15.x.y16.x.y17.x.y18.x.y19.x.y
14.x.y15.x.y16.x.y17.x.y18.x.y
13.x.y14.x.y15.x.y16.x.y17.x.y
12.x.y13.x.y14.x.y15.x.y--

次回予告

短期的には、Chromium、Node、V8 といった Electron を構成する主要コンポーネントの開発に遅れないでチームが注力し続けるでしょう。 リリース日について約束しないように注意していますが、予定では 2 か月ごとに新しいメジャーバージョンの Electron を、各コンポーネントの新しいバージョンに対してリリースします。

Electron の公開タイムラインはこちら になります。

将来の変更の詳細については、予定されている破壊的変更 のページをご参照ください。

Electron 15.0.0

· 読むのにかかる時間 1 分

Electron 15.0.0 がリリースされました! これには Chromium 94、V8 9.4、Node.js 16.5.0 へのアップグレードが含まれています。 window.open を更新する API の追加、バグ修正、及び一般的な改善を行いました。 詳しくは以下をご覧ください!


Electron チームは、Electron 15.0.0 のリリース発表にワクワクしています! npm install electron@latest から npm でインストールするか、リリースウェブサイト からダウンロードできます。 このリリースの詳細については下に続きます。是非ご意見をお聞かせください!

注目すべき変更

Electron リリースケイデンスの変更

Electron 15 から、Electron は 8 週間ごとに新規メジャー安定版をリリースするようになります。 詳細はこちら でご覧いただけます。

また、Electron は 2022 年 5 月まで、サポートするバージョンを最新の 3 つのバージョンから最新の 4 つのバージョンに変更します。 Electron のバージョン管理の詳細については バージョン管理のドキュメントを参照してください

累積的変更

注目の機能

  • nativeWindowOpen: true は実験的でなくなり、既定値になります。
  • safeStorage 文字列暗号化APIを追加しました。 #30430
  • ページにフレームが作成されたときに発生する「フレーム作成」イベントを WebContents に追加しました。 #30801
  • BrowserWindowwill-resize イベントにサイズ変更した edge の情報を追加しました。 #29199

新機能と変更の完全なリストは、15.0.0 リリースノート を参照してください。

破壊的変更

以下は、Electron 15 での破壊的変更点です。 これらの変更と将来の変更の詳細については、予定されている破壊的変更 のページを参照してください。

デフォルトの変更: nativeWindowOpen のデフォルトは true になりました。

Electron 15 より前の window.open は既定で BrowserWindowProxy を使用していました。 このため、window.open('about:blank') では同期的にスクリプトで操作可能な子ウィンドウを開くことができないなどといった、非互換性がありました。 nativeWindowOpen: true は実験的でなくなり、既定値になります。

詳細については Electron での window.open をご参照ください

API の変更

  • ページにフレームが作成されたときに発生する「フレーム作成」イベントを WebContents に追加しました。 #30801
  • safeStorage 文字列暗号化APIを追加しました。 #30430
  • dialog.showMessageBoxsignal オプションを追加しました。 #26102
  • Electron Fuse を追加しました。これは、アプリケーションがロードする app.asar ファイルにコード署名を適用します。 最新の asar モジュール (v3.1.0 またはそれ以上) が必要です。 #30900
  • パッケージ化したアプリで NODE_OPTIONS--inspect のデバッグ引数を無効にする Fuse を追加しました。 #30420
  • ユーザが割り当てた macOS アクセラレータのオーバーライドを読み取る、MenuItem.userAccelerator プロパティを新しく追加しました。 #26682
  • Apple シリコンの Rosetta や、ARM 向け Windows の WOW 下で動作していることを検出する app.runningUnderARM64Translation プロパティを新たに追加しました。 #29168
  • 画像のアニメーションを制御するために imageAnimationPolicy ウェブ設定を新しく追加しました。 #29095
  • コンテキストブリッジ越しに Blob を送る機能を追加しました。 #29247

削除/非推奨となった変更

削除または非推奨となった API はありません。

サポートされているバージョン

Electron 15 からは、2022 年 5 月の Electron 19 までの間だけ、サポートするバージョンを最新の 3 つのバージョンから最新の 4 つのバージョンに変更します。 Electron 19 以降は、最新の 3 つのバージョンのサポートに戻ります。 このバージョンサポートの変更は、新しいケイデンス変更の一環です。 完全な詳細についてはこちらのブログ記事 をご参照ください。

開発者とアプリケーションは新しいバージョンの Electron にアップグレードすることを推奨します。

E15 (Sep'21)E16 (Nov'21)E17 (Feb'22)E18 (Mar'22)E19 (May'22)
15.x.y16.x.y17.x.y18.x.y19.x.y
14.x.y15.x.y16.x.y17.x.y18.x.y
13.x.y14.x.y15.x.y16.x.y17.x.y
12.x.y13.x.y14.x.y15.x.y--

次回予告

短期的には、Chromium、Node、V8 といった Electron を構成する主要コンポーネントの開発に遅れないでチームが注力し続けるでしょう。 リリース日について約束しないように注意していますが、予定では約四半期ごとに新しいメジャーバージョンの Electron を、各コンポーネントの新しいバージョンに対してリリースします。

Electron の公開タイムラインはこちら になります。

将来の変更の詳細については、予定されている破壊的変更 のページをご参照ください。

Electron 14.0.0

· 読むのにかかる時間 1 分

Electron 14.0.0 がリリースされました! これには Chromium 93 とV8 9.3 へのアップグレードが含まれています。 いくつかの API の更新、バグ修正、及び一般的な改善を行いました。 詳しくは以下をご覧ください!


Electron チームは、Electron 14.0.0 のリリース発表にワクワクしています! npm install electron@latest から npm でインストールするか、リリースウェブサイト からダウンロードできます。 このリリースの詳細については下に続きます。是非ご意見をお聞かせください!

注目すべき変更

Electron リリースケイデンスの変更

2021 年 9 月の Electron 15 から、Electron は 8 週間ごとに安定版の新規メジャーバージョンをリリースします。 詳細はこちら でご覧いただけます。 Electron 15 は 2021 年 9 月 1 日にベータ版を開始し、2021 年 9 月 21 日に安定版のリリースを予定しています。 Electron の公開タイムラインはこちら になります。 また、Electron は 2022 年 5 月まで、サポートするバージョンを最新の 3 つのバージョンから最新の 4 つのバージョンに変更します。 Electron のバージョン管理の詳細については バージョン管理のドキュメントをご参照ください

累積的変更

注目の機能

  • 省略値変更: nativeWindowOpen の省略値を true にしました。 (ドキュメントを参照)
  • 子ウィンドウが親ウィンドウの BrowserWindow のコンストラクタのオプションを継承しなくなりました。 #28550
  • セッション固有のデータに対するディスク上のパスを取得するために新しく session.storagePath API を追加しました。 #28665
  • @electron/remote で使用されている process.contextId を追加しました。 #28007
  • Electron Fuse の下で実験的な Cookie 暗号化のサポートを追加しました。 #29492

新機能と変更の完全なリストは、14.0.0 リリースノート を参照してください。

破壊的変更

以下は、Electron 14 での破壊的変更点です。 これらの変更と将来の変更の詳細については、予定されている破壊的変更 のページを参照してください。

削除: app.allowRendererProcessReuse

app.allowRendererProcessReuse プロパティは、セキュリティ、パフォーマンス、保守性のために Chromium のプロセスモデルとより密接に連携する計画の一環として削除されました。

詳細は #18397 を参照してください。

削除: Browser Window の Affinity

BrowserWindow を新規構築する際の affinity オプションは、セキュリティ、パフォーマンス、保守性のために Chromium のプロセスモデルとの共同連携計画の一環として削除されました。

詳細は #18397 を参照してください。

API 変更: window.open()

任意引数 frameName は、ウインドウのタイトルに設定されなくなりました。 これにより、ネイティブのドキュメント に対応するパラメータ windowName で説明されている仕様に従う動作になります。

この引数でウィンドウのタイトルを設定していた場合は、代わりに win.setTitle(title) を利用できます。

削除: worldSafeExecuteJavaScript

worldSafeExecuteJavaScript が削除され、この代替手段もなくなりました。 このプロパティを有効にした状態でコードが動作するようにしてください。 これは Electron 12 からデフォルトで有効になっています。

webFrame.executeJavaScriptwebFrame.executeJavaScriptInIsolatedWorld のいずれかを使用している場合、この変更の影響を受けます。 これらのメソッドは同じ値渡しセマンティクスを使用しているため、Context Bridge API がサポートしている戻り値かどうかを確認する必要があります。

省略値変更: nativeWindowOpen の省略値を true

Electron 14 より前の window.open は既定で BrowserWindowProxy を使用していました。 このため、window.open('about:blank') では同期的にスクリプトで操作可能な子ウィンドウを開くことができないなどといった、非互換性がありました。 nativeWindowOpen は実験的でなくなり、既定値になります。

詳細については Electron での window.open をご参照ください。

削除: 親ウインドウからの BrowserWindowConstructorOptions の継承

Electron 14 より前は、window.open で開いたウインドウは、親ウインドウから transparentresizable などの BrowserWindow コンストラクタのオプションを継承していました。 Electron 14 ではこの動作は削除され、ウインドウは親ウインドウから BrowserWindow のコンストラクタのオプションを継承しません。

代わりに、setWindowOpenHandler で以下のように新しいウインドウのオプションを明示的に設定してください。

webContents.setWindowOpenHandler((details) => {
return {
action: 'allow',
overrideBrowserWindowOptions: {
// ...
},
};
});

削除: additionalFeatures

WebContents の new-window イベントと did-create-window イベントの、非推奨となっていた additionalFeatures プロパティは削除されました。 new-window は引数の順番があるのでこの引数はまだ残りますが、常に空の配列 [] になります。 (注意: new-window イベント自体は非推奨であり setWindowOpenHandler に置き換えられました。) ウインドウ機能のキーに値が無い場合は、オプションオブジェクトで true の値を持つキーとして表示されるようになりました。

// Electron 14 で削除
// window.open('...', '', 'my-key') で動く
webContents.on('did-create-window', (window, details) => {
if (details.additionalFeatures.includes('my-key')) {
// ...
}
});

// こちらに置換
webContents.on('did-create-window', (window, details) => {
if (details.options['my-key']) {
// ...
}
});

削除: remote モジュール

Electron 12 で非推奨となった remote モジュールは、Electron 自体から削除され、@electron/remote という別パッケージに抽出されました。 @electron/remote モジュールは、JavaScript オブジェクトをメインプロセスからレンダラープロセスにブリッジします。 これにより、メインプロセス専用のオブジェクトをあたかもレンダラープロセスで利用可能であるかのようにアクセスできます。 これは、remote モジュールの直接的な代替品です。 移行手順やリファレンスは モジュールの readme をご覧ください。

API の変更

  • ウィンドウがフォーカス可能かどうかを判断する BrowserWindow.isFocusable() メソッドを追加しました。 #28642
  • WebFrameMain.visibilityState インスタンスプロパティを追加しました。 #28706
  • setWindowOpenHandler で登録するウインドウを開くときのハンドラに渡される details オブジェクトに、dispositionreferrerpostBody を追加しました。 #28518
  • @electron/remote で使用されている process.contextId を追加しました。 #28007
  • Electron Fuse の下で実験的な Cookie 暗号化のサポートを追加しました。 #29492
  • webRequest リスナーの details に不足していた resourceType である、fontpingcspReportmediawebSocket の変換を追加しました。 #30050
  • セッション固有のデータに対するディスク上のパスを取得するために新しく session.storagePath API を追加しました。 #28665
  • macOS でのウインドウコントロールオーバーレイの対応を追加しました。 #29986
  • --log-file=.../path/to/file.log で Chromium のログをファイルへ指定するサポートを追加しました。 また、最初の JavaScript ティックにてコマンドラインスイッチを追加することで、JS からログを有効化できるようになりました。 #29963
  • node の crypto における des-ede3 暗号のサポートを追加しました。 #27897
  • コンテキストブリッジオブジェクトを可変にできる ContextBridgeMutability 機能を追加しました。 #27348

削除/非推奨となった変更

以下の API は削除されたか非推奨になりました。

  • remote モジュールは Electron 12 で非推奨となり、削除されました。 #25734
  • 子ウィンドウが親ウィンドウの BrowserWindow のコンストラクタのオプションを継承しなくなりました。 #28550
  • WebContents のイベントの new-windowdid-create-window にて、非推奨となっていた additionalFeatures プロパティを削除しました。 #28548
  • 非推奨となっていた app.allowRendererProcessReuse と BrowserWindow の affinity オプションを削除しました。 #26874
  • uploadToServer が false の場合、crashReporter.startsubmitURL オプションが必須の引数ではなくなりました。 #28105

11.x.y サポート終了

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

次回予告

短期的には、Chromium、Node、V8 といった Electron を構成する主要コンポーネントの開発に遅れないでチームが注力し続けるでしょう。 リリース日について約束しないように注意していますが、予定では約四半期ごとに新しいメジャーバージョンの Electron を、各コンポーネントの新しいバージョンに対してリリースします。

今後のバージョンの Electron で予定されている破壊的変更の詳細については、予定されている破壊的変更 をご参照ください。

新しい Electron リリースケイデンス

· 読むのにかかる時間 1 分

2021 年 9 月から、Electron は 8 週間ごとに新規メジャー安定版をリリースするようになります。


2019 年、Chromium の 6 週間のリリースサイクルに合わせて Electron は 12 週間のリリースサイクルに移行 しました。 先日、Chrome と Microsoft の両方が変更を発表し、Electron の現在のリリースサイクルを再考することになりました。

  1. Chromium は、2021 年 9 月 21 日の Chrome 94 を皮切りに、4 週間 ごとに新規マイルストーンをリリースする予定です。また、このリリースサイクルでは 8 週間ごとに新しい拡張安定版オプションが追加され、すべてのセキュリティ修正が更新されます。

  2. Microsoft Store では、Chromium ベースのアプリが最新から 2 つのメジャーバージョン以内であることを要求するようになります。 例えば、Chromium の最新のメジャーバージョンが 85 の場合、Chromium をベースにしたブラウザは最低でも Chromium バージョン 83 以上でなければなりません。 このルールは Electron アプリも含みます。

Chromium の 8 週間の拡張安定版リリースに合わせて、Electron は 2021 年 9 月より 8 週間ごとに新しいメジャー安定版をリリースする予定です

Chromium 拡張安定版での最初のリリースは、Electron 152021 年 9 月 21 日 になります。

リリースケイデンスの変更は下流の他のアプリケーションにも影響を与えることがわかっているため、できるだけ早く開発者コミュニティに知らせたいと思っております。 2021 年のリリーススケジュールの詳細はこちらをご覧ください。

Electron 15: 臨時アルファ

当初の Electron 15 のリリースは拡張安定版ではないバージョンを対象としていたため (Chromium の拡張安定版バージョンは偶数番号のバージョンをベースにしています)、当初の目標リリース日を変更する必要がありました。 しかし、Electron アプリを Microsoft Store に登録するためには Chromium の最新から 2 つ以内のメジャーバージョンを使用する必要がありましたが、Chromium のバージョンを 2 つ待つことはできません。

この 2 つの要件を満たそうと、チームはタイミングのジレンマに陥りました。 Electron 15 に Chromium M94 を搭載することで、アプリケーション開発者は Chromium の最初の拡張安定版バージョンを利用できるようになりますが、ベータ版から安定版へのサイクルはわずか 3 週間にまで短くなります。

この切り替えを支援するため、Electron は Electron 15 リリースのみを対象とした臨時の アルファビルド を提供します。 このアルファビルドは開発者が Electron 15 のリリースに向けてテストや計画を立てるための時間を確保するためのもので、現在の nightly よりも安定したビルドになっています。

このアルファチャンネルビルドは、Electron 15 として 2021 年 7 月 20 日 に頒布されます。 2021 年 9 月 1 日 にベータ版リリースに移行し、2021 年 9 月 21 日 に安定版リリースを行う予定です。 その後の Electron のリリースではアルファ版のリリースはありません。

2021 年のリリース計画

現在の 2021 年のリリース予定は以下の通りです。

ElectronChromeアルファリリースベータリリース安定版リリース安定版の周期 (週間)
E13M91-2021-Mar-052021-May-2512
E14M93-2021-May-262021-Aug-3114
E15M942021-Jul-202021-Sep-012021-Sep-219 (アルファを含む)
E16M96-2021-Sep-222021-Nov-168
E17M98-2021-Nov-172022-Feb-0111

アルファチャンネルの追加により、Electron 15 のリリースまでの開発期間は 3 週間から 9 週間に延長されました。新しい 8 週間のサイクルに近づきつつ、Windows Store への提出要件を満たせます。

アプリ開発者をさらに支援するために、2021 年の残りの期間から 2022 年 5 月まで、サポートされるバージョンのポリシーを最新 3 バージョンから最新 4 バージョンの Electron に拡張することも決定しました。つまり、アップグレードのスケジュールをすぐに変更できなくても、古いバージョンの Electron にはセキュリティアップデートや修正プログラムが提供されるということです。

懸念事項への対応

リリースサイクルの変更予定よりかなり前に、この記事を公開しているのには理由があります。 リリースサイクルの高速化は、Electron アプリに大きな影響を与えると考えています。中には、私たちのメジャーリリースのペースがすでに積極的すぎると感じている人もいるかもしれません。

以下に、よくある質問をまとめてみました。

❓ なぜこの変更を行うのでしょうか? 12 週間のリリース周期を維持しないのですか?

Electron で Chromium の最新バージョンを提供するには、そのスケジュールを追う必要があります。 Chromium のリリースサイクルに関する詳細は こちら を参照してください。

加えて、現在の 12 週間のリリースサイクルでは、Microsoft Store の新しい提出要件に対応できません。 Electron の最新の安定版を使用しているアプリであっても、約 2 週間の間は新しいセキュリティ要件によりアプリが拒否される可能性があります。

Chromium の各新規リリースには、新機能、バグ修正/セキュリティ修正、V8 の改善が含まれています。 アプリ開発者の皆様にはこれらの変更をタイムリーに受けていただきたいので、安定版のリリース日は他の Chromium 安定版のリリース日と一致させています。 アプリケーション開発者は、Chromium や V8 の新機能や修正に、これまでよりも早くアクセスできるようになります。

❓ 既存の 12 週間のリリーススケジュールでも、既に早いです。 アップグレードを容易にするには、チームでどのような段階を踏めばよいでしょうか?

より頻繁にリリースすることの利点は、より小さい リリースができることです。 Electron のメジャーバージョンのアップグレードは大変だと思います。 リリースを小さくするほど、1 回のリリースにおける Chromium や Node のメジャーの変更や破壊的変更が少なくなることを期待しています。

❓ 今後の Electron のバージョンに対応したアルファ版のリリースはありますか?

現時点では、恒久的にアルファリリースをサポートする予定はありません。 このアルファは Electron 15 のみを対象としており、短いリリース期間の中で開発者がより簡単にアップグレードできるようにするためのものです。

❓ Electron はバージョンのサポート数を増やしていくのでしょうか?

2022 年 5 月の Electron 19 のリリースまでは、サポートバージョンポリシーを最新 3 つから最新 4 つのバージョンに拡張する予定です。 Electron 19 のリリース後は、ベータや nightly リリースと同じく 最新のメジャーバージョン 3 つ をサポートする体制に戻ります。

E13 (May'21)E14 (Aug'21)E15 (Sep'21)E16 (Nov'21)E17 (Feb'22)E18 (Mar'22)E19 (May'22)
13.x.y14.x.y15.x.y16.x.y17.x.y18.x.y19.x.y
12.x.y13.x.y14.x.y15.x.y16.x.y17.x.y18.x.y
11.x.y12.x.y13.x.y14.x.y15.x.y16.x.y17.x.y
----12.x.y13.x.y14.x.y15.x.y--

質問?

📨 ご質問やご不明な点がございましたら、info@electronjs.org までメールでお問い合わせしていただくか、Discord に参加して ご連絡ください。 この変更が多くのアプリケーションや開発者に影響を与えることは承知しており、皆様からのフィードバックは私たちにとって非常に重要です。 ご連絡をお待ちしております!

Electron 13.0.0

· 読むのにかかる時間 1 分

Electron 13.0.0 がリリースされました! これには Chromium 91 とV8 9.1 へのアップグレードが含まれています。 いくつかの API の更新、バグ修正、及び一般的な改善を行いました。 詳しくは以下をご覧ください!


Electron チームは、Electron 13.0.0 のリリース発表にワクワクしています! npm install electron@latest から npm でインストールするか、リリースウェブサイト からダウンロードできます。 このリリースの詳細については下に続きます。是非ご意見をお聞かせください!

注目すべき変更

累積的変更

注目の機能

  • process.contextIsolated プロパティを追加しました。これは現在のレンダラーコンテキストで contextIsolation が有効かどうかを示します。 #28252
  • セッション固有のデータに対するディスク上のパスを取得するために新しく session.storagePath API を追加しました。 #28866
  • WebContentsnew-window イベントを非推奨にしました。 これは webContents.setWindowOpenHandler() に置き換えられます。
  • @electron/remote で使用されている process.contextId を追加しました。 #28251

新機能と変更の完全なリストは、13.0.0 リリースノート を参照してください。

破壊的変更

  • window.open() の引数 frameName はウインドウタイトルとして設定されなくなりました。 #27481
  • session.setPermissionCheckHandler(handler) で、handler の第一引数である webContentsnull になることがあるように変更しました。 #19903

これらの変更と将来の変更の詳細については、予定されている破壊的な変更 のページを参照してください。

API の変更

  • BrowserWindowroundedCorners オプションを追加しました。 #27572
  • セッション固有のデータに対するディスク上のパスを取得するために新しく session.storagePath API を追加しました。28866
  • コンテキストブリッジで DOM 要素を渡す機能を追加しました。 #26776
  • サンドボックス化したレンダラーに process.uptime() を追加しました。 #26684
  • context-menu イベントの一部として発生する引数に不足していたフィールドを追加しました。#26788
  • Manifest V3 拡張機能のサービスワーカーの登録に対応しました。
  • ServiceWorker に 'registration-completed' イベントを追加しました。 #27562

削除/非推奨となった変更

以下の API は削除されたか非推奨になりました。

  • WebContentsnew-window イベントを非推奨にしました。 これは webContents.setWindowOpenHandler() に置き換えられます。

  • 非推奨だった shell.moveItemToTrash() を削除しました. #26723

  • 非推奨となっていた以下の BrowserWindow 拡張機能 API を削除しました。

    • BrowserWindow.addExtension(path)
    • BrowserWindow.addDevToolsExtension(path)
    • BrowserWindow.removeExtension(name)
    • BrowserWindow.removeDevToolsExtension(name)
    • BrowserWindow.getExtensions()
    • BrowserWindow.getDevToolsExtensions()

    代わりに以下の session API を使用してください。

    • ses.loadExtension(path)
    • ses.removeExtension(extension_id)
    • ses.getAllExtensions()
  • 以下の systemPreferences のメソッドは非推奨になりました。

    • systemPreferences.isDarkMode()
    • systemPreferences.isInvertedColorScheme()
    • systemPreferences.isHighContrastColorScheme()

    代わりに、次の nativeTheme プロパティを使用します。

    • nativeTheme.shouldUseDarkColors
    • nativeTheme.shouldUseInvertedColorScheme
    • nativeTheme.shouldUseHighContrastColors

10.x.y サポート終了

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

次回予告

短期的には、Chromium、Node、V8 といった Electron を構成する主要コンポーネントの開発に遅れないでチームが注力し続けるでしょう。 リリース日について約束しないように注意していますが、予定では約四半期ごとに新しいメジャーバージョンの Electron を、各コンポーネントの新しいバージョンに対してリリースします。 仮 14.0.0 スケジュール では、Electron 14.0 開発ライフサイクルの主要な日付を示してあります。 また、Electron のバージョン管理の詳細については バージョン管理のドキュメントを参照 してください。

今後のバージョンの Electron で予定されている破壊的な変更の詳細については、予定されている破壊的な変更のドキュメントを参照してください