本文へスキップ

Electron 9.0.0

·4分間の読書

Electron 9.0.0がリリースされました!Chromium 83、V8 8.3、Node.js 12.14へのアップグレードが含まれています。スペルチェッカー機能にいくつかの新しいAPI統合を追加し、PDFビューアを有効にするなど、多くの機能強化が施されています!


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

注目すべき変更点

スタックの変更

ハイライト機能

  • スペルチェッカー機能の複数の改善。詳細は#22128#22368を参照してください。
  • Linuxでのウィンドウイベントハンドラの効率性の向上。#23260
  • PDFビューアの有効化。#22131

新機能と変更点の完全なリストについては、9.0.0リリースノートを参照してください。

破壊的変更

  • enableRemoteModule: trueなしでremoteを使用する場合の非推奨警告。#21546
    • これは、remoteモジュールの非推奨化とユーザーランドへの移動計画の最初のステップです。その理由の詳細と非推奨化の提案されたタイムラインについては、このissueを参照して追跡できます。
  • デフォルトでapp.enableRendererProcessReuseをtrueに設定。#22336
    • これは、レンダラープロセスでロードされたネイティブNodeモジュールがN-APIまたはコンテキスト認識のいずれかである必要があるという将来の要件に対する継続的な取り組みです。完全な情報と提案されたタイムラインは、このissueに詳しく説明されています。
  • IPCを介してJavaScript以外のオブジェクトを送信すると、例外がスローされるようになりました。#21560
    • この動作はElectron 8.0で非推奨になりました。Electron 9.0では、古いシリアル化アルゴリズムが削除され、そのようなシリアル化できないオブジェクトを送信すると、「オブジェクトを複製できませんでした」というエラーがスローされるようになりました。

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

APIの変更

  • shell APIの変更
    • shell.openItem APIは、非同期shell.openPath APIに置き換えられました。提案
  • session APIの変更
    • 辞書内のカスタム単語をリストするためのsession.listWordsFromSpellCheckerDictionary APIを追加しました。#22128
    • 辞書内のカスタム単語を削除するためのsession.removeWordFromSpellCheckerDictionary APIを追加しました。#22368
    • 基本的なサービスワーカー情報にアクセスし、サービスワーカーからコンソールログを受信するためのsession.serviceWorkerContext APIを追加しました。#22313
  • app APIの変更
    • macOSでアプリが強制的にフォーカスを取得できるように、app.focus()に新しいforceパラメータを追加しました。#23447
  • BrowserWindow APIの変更
    • BrowserWindowの一部のgetter/setterペアへのプロパティアクセスをサポートしました。#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にアップグレードすることをお勧めします。

今後の予定

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

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

contextIsolationのデフォルトをfalseからtrueに変更(Electron 10以降)

contextIsolationを有効にしない場合、レンダラープロセスで実行されているコードは、Electronの内部処理やアプリのプリロードスクリプトに非常に簡単にアクセスできます。そのコードは、Electronが制限したい特権的なアクションを実行する可能性があります。

このデフォルトを変更することで、Electronアプリのデフォルトのセキュリティが向上し、アプリは意図的に安全でない動作を選択する必要があります。Electron 10.0では、現在のcontextIsolationのデフォルト(false)は非推奨となり、Electron 12.0で新しいデフォルト(true)に変更されます。

contextIsolation、その簡単な有効化方法、およびセキュリティ上の利点の詳細については、専用のコンテキスト分離に関するドキュメントを参照してください。