Electron 9.0.0
Electron 9.0.0 がリリースされました! これには Chromium 83
、V8 8.3
、Node.js 12.14
へのアップグレードが含まれています。 スペルチェッカー機能や PDF ビュアーなど、いくつかの新しい API 統合を追加しました。
Electron チームは、Electron 9.0.0 のリリース発表にワクワクしています! npm install electron@latest
から npm でインストールするか、リリースウェブサイト からダウンロードできます。 このリリースには、アップグレード、修正、新機能が含まれています。 新機能たちと共に何を作るのか、楽しみにしています! このリリースの詳細については下に続きます。是非ご意見をお聞かせください!
注目すべき変更
累積的変更
- Chromium
83.0.4103.64
- Node.js
12.14.1
- V8
8.3
注目の機能
- スペルチェッカー機能に複数の改善をしました。 詳細は #22128 と #22368 を参照してください。
- Linux におけるウインドウイベントハンドラの効率を改善しました。 #23260.
- PDF ビュアーを有効にしました。 #22131.
新機能と変更の完全なリストは、9.0.0 リリースノート を参照してください。
破壊的変更
enableRemoteModule: true
なしでremote
を使用する場合に非推奨の警告が出るようになりました。 #21546- これは
remote
モジュールを非推奨にしユーザーランドへ移行する計画の第一段階です。 この Issue を読んで経緯を知ってください。この Issue では、理由を説明し非推奨化予定のタイムラインを提案しています。
- これは
app.enableRendererProcessReuse
の省略値を true にしました。 #22336- IPC で非 JavaScript オブジェクトを送信すると、例外が送出されるようになりました。 #21560
- この動作は、Electron 8.0 ではあまり価値がありませんでした。 Electron 9.0 からは、旧シリアライズアルゴリズムが削除されました。先ほどのシリアライズ不可能なオブジェクトを送信すると、"object could not be cloned" (オブジェクトを複製できませんでした) というエラーが送出されます。
これらの変更と将来の変更の詳細については、予定されている破壊的な変更 のページを参照してください。
API の変更
shell
API の変更:shell.openItem
API は非同期のshell.openPath API
に置き換えられました。 提案内容
session
API の変更:app
API の変更:- macOS の
app.focus()
に新しく force パラメータを追加し、アプリが強制的にフォーカスを取得できるようにしました。 #23447
- macOS の
BrowserWindow
API の変更:BrowserWindow
の一部のゲッター/セッターのペアがプロパティアクセスに対応しました。 #23208
非推奨となった API
以下の API は非推奨化または削除されました。
shell.openItem
API は非推奨となり、非同期のshell.openPath API
に置き換えられました。- Electron 8.0 で非推奨となっていた
<webview>.getWebContents
は、削除されました。 - Electron 8.0 で非推奨となっていた
webFrame.setLayoutZoomLevelLimits
は、削除されました。
6.x.y サポート終了
Electron 6.x.y はプロジェクトの サポートポリシー に則りサポート終了となりました。 開発者とアプリケーションは新しいバージョンの Electron にアップグレードすることを推奨します。
次回予告
短期的には、Chromium、Node、V8 といった Electron を構成する主要コンポーネントの開発に遅れないでチームが注力し続けるでしょう。 リリース日について約束しないように注意していますが、予定では約四半期ごとに新しいメジャーバージョンの Electron を、各コンポーネントの新しいバージョンに対してリリースします。 仮 10.0.0 スケジュール では、Electron 10.0 開発ライフサイクルの主要な日付を示してあります。 また、Electron のバージョン管理の詳細については バージョン管理のドキュメントを参照 してください。
今後のバージョンの Electron で予定されている破壊的な変更の詳細については、予定されている破壊的な変更のドキュメントを参照してください。
contextIsolation
の既定値を false
から true
に変更 (Electron 10 から)
contextIsolation がないと、レンダラープロセスで実行されているコードは Electron の内部やアプリのプリロードスクリプトに簡単にアクセスできてしまいます。 そういったコードは、Electron が制限したい特権的なアクションを実行できてしまいます。
この既定値の変更は、Electron アプリのデフォルトのセキュリティが向上し、アプリによっては意図的に安全でない動作を選択することになります。 Electronは、Electron 10.0にある 現在のコンテキストのデフォルトの contextIsolation
を、Electron 12.0の新しいデフォルト(true
) に変更します。
のcontextIsolationisolation
の詳細について、特に簡単に有効にする方法とセキュリティ上の利点をコンテキスト分離文書を参照してください。