メインコンテンツへ飛ぶ

Electron 10.0.0

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

Electron 10.0.0 がリリースされました! これには Chromium 85、V8 8.5、Node.js 12.16 へのアップグレードが含まれています。 いくつかの新しい API 統合の追加と改善を行いました。 詳しくは以下をご覧ください!


Electron チームは、Electron 10.0.0 のリリース発表にワクワクしています! npm install electron@latest から npm でインストールするか、リリースウェブサイト からダウンロードできます。 このリリースには、アップグレード、修正、新機能が含まれています。

この Electron 10 リリースでは、リリースノートにも変更を加えました。 Electron 10 の新機能と、Electron 10 と過去のリリースとの間で変更された点を分かりやすくするために、Electron 10 に導入されつつ過去のリリースにも後方移植された変更点も含めるようにしました。 これにより、Electron をアップグレードする際に新機能やバグ修正を探しやすくなることを期待しています。

新機能たちと共に何を作るのか、楽しみにしています! このリリースの詳細については下に続きます。是非ご意見をお聞かせください!

注目すべき変更

累積的変更

注目の機能

  • contents.getBackgroundThrottling() メソッドと contents.backgroundThrottling プロパティを追加しました。 [#21036]
  • メインプロセスで desktopCapturer モジュールを公開しました。 #23548
  • ses.isPersistent() API を呼び出すことで、与えられた session が永続的であるかどうかをチェックできるようになりました。 #22622
  • ネットワークの IP アドレスの変更や ICE により、RTC 通話が接続できないネットワーク問題を解決しました。 (Chromium issue 1113227)。 #24998

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

破壊的変更

  • enableRemoteModule の既定値を false に変更しました。 #22091
    • これは remote モジュールを非推奨にしユーザーランドへ移行する計画の一部です。 この Issue を読んで経緯を知ってください。この Issue では、理由を説明し非推奨化予定のタイムラインを提案しています。
  • app.allowRendererProcessReuse の既定値を true に変更しました。 #22336 (Electron 9 でも)
    • これにより、コンテキスト未対応のネイティブモジュールがレンダラープロセスでロードされるのを防げます。
    • この Issue を読んで経緯を知ってください。この Issue では、理由を説明し非推奨化予定のタイムラインを提案しています。
  • macOS で OS のロケールが右書き言語 (アラビア語やヘブライ語など) に設定されている場合のウインドウボタンの位置を修正しました。 フレームレスウインドウのアプリは、この変化を考慮してウインドウのスタイルを作る必要があるかもしれません。 #22016

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

API の変更

  • Session: ses.isPersistent() API を呼び出すことで、与えられた session が永続的であるかどうかをチェックできるようになりました。 #22622
  • Contents: contents.getBackgroundThrottling() メソッドと contents.backgroundThrottling プロパティを追加しました。 #21036

非推奨となった API

以下の API は非推奨化または削除されました。

  • 非推奨だった netLogcurrentlyLoggingPath プロパティを削除しました。 更に、netLog.stopLogging が記録したログのパスを返さなくなりました。 #22732
  • crashReporter での非圧縮形式のクラッシュのアップロードを非推奨化しました。 #23598

7.x.y サポート終了

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

次回予告

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

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

remote モジュールの非推奨化作業の継続 (Electron 11 にて)

Electron 9 から remote モジュールを削除する作業を開始しており、このモジュール削除計画は継続しています。 Electron 11 では、Electron 10 で行ったように WeakRef を実装するためのリファクタリング作業を継続する予定です。 こちらの Issue から、非推奨化の全計画と詳細をご確認ください。

ネイティブ Node モジュールで Context Aware や N-API を要求するようにする最終段階 (Electron 12 にて)

編集: 元々、このブログ記事では Electron 11 でレンダラープロセスの再利用が無効になると記載してありました。 レンダラープロセスの再利用を無効にする機能は Electron 12 に延期されました。

Electron 6 以降、レンダラープロセスで読み込まれる ネイティブ Node モジュール では、N-API または Context Aware のいずれかであることを要求するように下準備の作業が行われてきました。 この変更を適用することで、セキュリティの強化、パフォーマンスの高速化、保守作業の軽減が可能になります。 この計画の最終段階は、Electron 12 でレンダラープロセスの再利用を無効にする機能を削除することです。 提案のタイムラインを含む詳細は、この Issue をご参照ください。