本文へスキップ

Electron 10.0.0

·5分間の読書

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を参照し、フォローしてください。
  • app.allowRendererProcessReuseのデフォルト値をtrueに変更しました。#22336Electron 9にも含まれています)
    • これにより、レンダラープロセスでのコンテキスト非依存ネイティブモジュールの読み込みが防止されます。
    • その理由の詳細と廃止予定のタイムラインについては、このissueを参照し、フォローしてください。
  • OSロケールがRTL言語(アラビア語やヘブライ語など)に設定されている場合のmacOSでのウィンドウボタンの位置を修正しました。フレームレスウィンドウアプリでは、ウィンドウのスタイル設定時にこの変更を考慮する必要がある場合があります。#22016

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

APIの変更

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

非推奨API

次のAPIは非推奨または削除されました。

  • netLogの非推奨のcurrentlyLoggingPathプロパティを削除しました。さらに、netLog.stopLoggingは、記録されたログへのパスを返すことはなくなりました。#22732
  • crashReporterでの非圧縮クラッシュアップロードを非推奨にしました。#23598

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

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

今後の予定

短期的な展望としては、チームはChromium、Node.js、V8といったElectronを構成する主要コンポーネントの開発に追従することに引き続き注力します。リリース日に関する約束は慎重に行いませんが、これらのコンポーネントの新しいバージョンを含むElectronのメジャーバージョンを四半期ごとにリリースする予定です。 Electron 11.0.0の暫定スケジュール は、Electron 11.0開発ライフサイクルの重要な日付を示しています。また、 バージョン管理に関するドキュメント を参照して、Electronのバージョン管理に関する詳細情報を確認してください。

今後のElectronバージョンでの計画されている破壊的変更については、 計画されている破壊的変更に関するドキュメント を参照してください。

remoteモジュールの廃止に向けた継続的な作業 (Electron 11)

Electron 9remoteモジュールの削除作業を開始し、remoteモジュールの削除計画を継続しています。Electron 11では、Electron 10で行ったように、WeakRefの実装のためのリファクタリング作業を継続する予定です。廃止に関する完全な計画と詳細については、このissue を読んで従ってください。

ネイティブNodeモジュールをコンテキスト認識型またはN-APIにするための最終段階 (Electron 12)

編集:当初、このブログ投稿では、Electron 11でレンダラープロセスの再利用を無効にすると記載していました。レンダラープロセスの再利用の無効化は、Electron 12に延期されました。

Electron 6以降、レンダラープロセスでロードされるネイティブNodeモジュールN-APIまたはコンテキスト認識型にするための基盤を築いてきました。この変更を強制することで、セキュリティの強化、パフォーマンスの向上、メンテナンス作業量の削減を実現します。この計画の最終段階として、Electron 12でレンダラープロセスの再利用を無効にする機能を削除します。提案されているタイムラインを含む詳細については、このissue を参照してください。