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

Electron 5.0.0

·4分で読めます

Electron チームは、Electron 5.0.0 のリリースを発表できることを嬉しく思います! npm install electron@latest を使用して npm でインストールするか、リリースページから tarball をダウンロードできます。このリリースには、アップグレード、修正、新機能が満載です。これらの機能を使用して皆さんがどのようなものを作るか楽しみにしています! このリリースの詳細については、読み進めてください。そして、フィードバックがあればぜひ共有してください!


新機能

Electron の機能の多くは、Chromium、Node.js、V8 のコアコンポーネントによって提供されています。Electron は、これらのプロジェクトを最新の状態に保ち、新しい JavaScript 機能、パフォーマンスの向上、セキュリティ修正をユーザーに提供しています。これらの各パッケージは、Electron 5 でメジャーバージョンが上がっています。

Electron 5 には、Electron 固有の API の改善も含まれています。主な変更点の概要は以下のとおりです。変更点の完全なリストについては、Electron v5.0.0 のリリースノートを確認してください。

Promise 化

Electron 5 では、Electron のコールバックベースの API を Promise を使用するように変換する Promise 化イニシアチブを引き続き行っています。これらの API は Electron 5 用に変換されました。

  • app.getFileIcon
  • contentTracing.getCategories
  • contentTracing.startRecording
  • contentTracing.stopRecording
  • debugger.sendCommand
  • Cookies API
  • shell.openExternal
  • webContents.loadFile
  • webContents.loadURL
  • webContents.zoomLevel
  • webContents.zoomFactor
  • win.capturePage

macOS のシステムカラーへのアクセス

macOS システムの色にアクセスするために、これらの関数が systemPreferences に変更または追加されました。

  • systemPreferences.getAccentColor
  • systemPreferences.getColor
  • systemPreferences.getSystemColor

プロセスメモリ情報

現在のプロセスのメモリ使用統計情報を取得するために、関数 process.getProcessMemoryInfo が追加されました。

リモート API の追加フィルタリング

remote API のセキュリティを向上させるために、remote.getBuiltinremote.getCurrentWindowremote.getCurrentWebContents<webview>.getWebContentsフィルタリングできるように、新しいリモートイベントが追加されました。

BrowserWindow 上の複数の BrowserView

BrowserWindow は、同じ BrowserWindow 内で複数の BrowserView の管理をサポートするようになりました。

破壊的な変更

パッケージ化されたアプリのデフォルト

パッケージ化されたアプリは、アプリにデフォルトのアプリケーションメニューがない限り、デフォルトのアプリケーションメニューが作成され、アプリがイベントを処理しない限り、window-all-closed イベントが自動的に処理されるなど、デフォルトのアプリと同じように動作するようになりました。

混合サンドボックス

混合サンドボックスモードがデフォルトで有効になりました。sandbox: true で起動されたレンダラーは、以前は混合サンドボックスモードも有効になっている場合にのみサンドボックス化されていましたが、現在では実際にサンドボックス化されます。

セキュリティの向上

セキュリティを向上させるために、nodeIntegrationwebviewTag のデフォルト値が false になりました。

スペルチェッカーが非同期に

スペルチェック API が 非同期の結果を提供するように変更されました。

非推奨

次の API は、Electron 5.0.0 で新たに非推奨となり、6.0.0 で削除される予定です。

arm および arm64 用の Mksnapshot バイナリ

arm および arm64 用の mksnapshot のネイティブバイナリは非推奨であり、6.0.0 で削除されます。arm および arm64 用のスナップショットは、x64 バイナリを使用して作成できます。

WebContents 上の ServiceWorker API

削除の準備として、WebContents 上の非推奨の ServiceWorker API。

  • webContents.hasServiceWorker
  • webContents.unregisterServiceWorker

サンドボックス化された webContents を使用した自動モジュール

セキュリティを向上させるために、次のモジュールは require を介して直接使用することが非推奨になり、サンドボックス化された webcontents 内で remote.require を介して含める必要があります。

  • electron.screen
  • child_process
  • fs
  • os
  • path

webFrame 分離された世界の API

webFrame.setIsolatedWorldContentSecurityPolicywebFrame.setIsolatedWorldHumanReadableNamewebFrame.setIsolatedWorldSecurityOrigin は非推奨となり、webFrame.setIsolatedWorldInfo が推奨されるようになりました。

混合サンドボックス

enableMixedSandbox および --enable-mixed-sandbox コマンドラインスイッチは、互換性のために存在しますが、非推奨であり、効果はありません。

2.0.x のサポート終了

私たちのサポート対象バージョンポリシーに基づき、2.0.x はサポート終了となりました。

アプリフィードバックプログラム

私たちはテストのためにアプリフィードバックプログラムを引き続き利用しています。このプログラムに参加するプロジェクトは、アプリで Electron ベータ版をテストします。その見返りとして、彼らが見つけた新しいバグは安定版リリースで優先的に対処されます。参加を希望される場合や、詳細については、プログラムに関するブログ記事をご覧ください。

今後の予定

短期的には、チームはChromium、Node、V8など、Electronを構成する主要コンポーネントの開発への追従に引き続き注力していく予定です。リリース日について確約することは慎重に避けていますが、Electronの新しいメジャーバージョンを、これらのコンポーネントの新しいバージョンとともに、四半期ごとにリリースする予定です。暫定的な 6.0.0 のスケジュールでは、Electron 6 の開発ライフサイクルにおける重要な日付を示しています。また、Electron のバージョニングに関する詳細については、バージョニングに関するドキュメントをご覧ください。

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