Electron 5.0.0
Electronチームは、Electron 5.0.0のリリースを発表できることを嬉しく思います!`npm install electron@latest`でnpm経由でインストールするか、リリースページからtarballをダウンロードできます。このリリースには、アップグレード、修正、新機能が満載です。皆様がそれらを使って何を作るのか、とても楽しみです!このリリースに関する詳細は以下をお読みください。また、フィードバックがありましたらぜひ共有してください!
新機能
Electronの機能の大部分は、Chromium、Node.js、およびV8のコアコンポーネントによって提供されています。Electronはこれらのプロジェクトを最新の状態に保つことで、ユーザーに新しいJavaScript機能、パフォーマンスの向上、およびセキュリティ修正を提供しています。これらのパッケージのそれぞれがElectron 5でメジャーバージョンアップしています。
- Chromium `73.0.3683.119`
- Node.js `12.0.0`
- V8 `7.3.492.27`。
Electron 5には、Electron固有のAPIの改善も含まれています。主要な変更の概要を以下に示します。変更の完全なリストについては、Electron v5.0.0リリースノートをご覧ください。
Promise化
Electron 5は、Promise化イニシアチブを継続し、ElectronのコールバックベースのAPIをPromiseを使用するように変換しています。これらのAPIはElectron 5で変換されました。
app.getFileIcon
contentTracing.getCategories
contentTracing.startRecording
contentTracing.stopRecording
debugger.sendCommand
- Cookie 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.getBuiltin`、`remote.getCurrentWindow`、`remote.getCurrentWebContents`、および`
BrowserWindow上の複数のBrowserView
BrowserWindowは、同じBrowserWindow内で複数のBrowserViewを管理できるようになりました。
破壊的変更
パッケージ化されたアプリのデフォルト
パッケージ化されたアプリは、デフォルトアプリと同じように動作するようになりました。アプリが独自のアプリケーションメニューを持っている場合を除き、デフォルトのアプリケーションメニューが作成され、アプリがイベントを処理しない限り、`window-all-closed`イベントが自動的に処理されます。
混合サンドボックス
混合サンドボックスモードがデフォルトで有効になりました。`sandbox: true`で起動されたレンダラーは、以前は混合サンドボックスモードも有効になっている場合にのみサンドボックス化されていましたが、現在は実際にサンドボックス化されるようになりました。
セキュリティの向上
セキュリティを向上させるため、`nodeIntegration`と`webviewTag`のデフォルト値は現在`false`です。
スペルチェッカーが非同期に
スペルチェックAPIは、非同期の結果を提供するように変更されました。
非推奨事項
Electron 5.0.0で新たに非推奨となったAPIで、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.setIsolatedWorldContentSecurityPolicy`、`webFrame.setIsolatedWorldHumanReadableName`、`webFrame.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のバージョンの計画されている破壊的変更については、計画されている破壊的変更に関するドキュメントをご覧ください。