Electronチームが先日、Electronバージョン4およびバージョン5のリリースを発表した。Chromium、V8、Node.jsの最新アップデートに合わせて、アグレッシブなリリースサイクルを維持している。各バージョンにおける重要なアップデートには、リモートとリクエストに対するコントロールの改善などの他、ElectronのコールバックベースのAPIをアップデートしてPromiseを使用可能にするという、現在進行中のイニシアチブも含まれている。
Electronは、Node.js、Chromeなど、最新のWeb開発APIを使用してデスクトップアプリケーションを構築するための、短期間で安定と改善の可能なプラットフォームを目標に掲げている。Electron 4では、使用している主な依存関係が、Chromiumバージョン73.0.3683.119、Node.jsバージョン12.0.0、V8 JavaScriptエンジンバージョン7.3.492.27にアップデートされている。
ElectronのAPIの多くは、ECMAScriptがPromiseを標準化する前に作成されたものだ。Promiseを活用するために、ElectronのコールバックベースのAPIを変更する作業は現在進行中で、トレースからクッキーまで幅広い機能を対象としている。
アプリケーションセキュリティに対するコントロールをさらなるレベルで開発者に提供するために、Electron 4では、リモートモジュールを無効にする機能や、BrowserWindow
とwebview{/0]タグのために
プロセスからメインプロセスのモジュールにアクセスする機構などを加えている。renderer
さらにElectron 4では、リモートモジュールを完全に無効にはしたくないが、remote.require
経由でアクセスの必要なモジュールをコントロールしたい場合のために、remote.require()
/remote.getGlobal()
要求をフィルタリングする機能も追加されている。
さらにバージョン5では、このリモートフィルタ機能が、remote.getBuiltin
、remote.getCurrentWindow
、remote.getCurrentWebContents
、<webview>.getWebContents
という新たなリモートイベントの導入によって拡張されている。
Electron 4のWebContents
インスタンスには、ページがバックグラウンドに移動した場合に、タイマとアニメーションの動作を有効または無効にする新しいメソッドとして、setBackgroundThrottling(allowed)
が含まれている。
バージョン5には、現在のプロセスに関するメモリ使用量の統計を取得するprocess.getProcessMemoryInfo
関数が追加された。さらにBrowserWindow
では、単一のBrowserWindow
内で複数のBrowserViews
の管理がサポートされるようになった。
Electron 4と5の重大な変更点とバグ修正の完全なリストは、リリースノートに記載されている。
- https://github.com/electron/electron/releases/tag/v4.0.0
- https://github.com/electron/electron/releases/tag/v5.0.0
さらに、Chromium、V8、Node.jsのアップデートに伴って、JavaScriptおよびWeb標準の改善が新たにElectronの一部となった。最近の変更点のハイライトは、関連するリリースノートで確認できる。
- Chromium 70リリースノート
- Chromium 71リリースノート
- Chromium 72リリースノート
- Chromium 73リリースノート
- Node.js 12リリース
- V8 .7および7.3リリース
Electron 6に向けて、すでに数多くの改良が実施されており、リリースサマリで進捗状況を確認することができる。今回および将来のリリースにおいて、Electronは、Webテクノロジを使用したデスクトップアプリケーション構築のための強力なプラットフォームとしての改良を続けていく。
Electronには、ベータリリースサイクル中に、開発者による早期テストとフィードバック提供を可能にするApp Feedback Programも用意されている。3.0のリリースでは、Atlassian、Atom、Microsoft Teams、Oculus、OpenFin、Slack、Symphony、VS Code、その他のプログラムメンバによる支援があった。
Electronは、MITオープンソースライセンス下で使用することができる。コントリビューションは、コントリビューションガイドラインと行動規範に従うことを条件に、Electron GitHubを通して受け付けられている。