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

Electron 12.0.0

·5 分で読めます

Electron 12.0.0 がリリースされました!Chromium 89、V8 8.9、Node.js 14.16 へのアップグレードが含まれています。remote モジュールへの変更、contextIsolation の新しいデフォルト、新しい webFrameMain API、および一般的な改善を追加しました。詳細については、以下をお読みください!


Electron チームは、Electron 12.0.0 のリリースを発表できることを嬉しく思います!npm を使用して npm install electron@latest でインストールするか、リリースウェブサイトからダウンロードできます。このリリースに関する詳細については、引き続きお読みください。また、フィードバックがあれば共有してください!

注目すべき変更点

スタックの変更

注目の機能

  • ContextBridge exposeInMainWorld メソッドで、オブジェクト以外の API を公開できるようになりました。#26834
  • Node 12 から Node 14 にアップグレードしました。#23249
  • メインプロセスから WebContents インスタンスのサブフレームにアクセスするための新しい webFrameMain API を追加しました。#25464
  • contextIsolationworldSafeExecuteJavaScript のデフォルト値が true になりました。#27949 #27502

新機能と変更の完全なリストについては、12.0.0 のリリースノートをご覧ください。

破壊的な変更

これらの変更および将来の変更に関する詳細については、計画された破壊的な変更ページをご覧ください。

API の変更

  • webFrameMain API の追加:webFrameMain モジュールを使用して、既存の WebContents インスタンス全体でフレームを検索できます。これは、既存の webFrame API のメインプロセス相当です。この新しい API の詳細については、こちら、およびドキュメントをご覧ください。
  • app API の変更
    • 非ローカライズの serviceName'child-process-gone' / app.getAppMetrics() に追加しました。#25975
    • Apple Silicon で rosetta の下で実行されている場合を検出するための新しい app.runningUnderRosettaTranslation プロパティを追加しました。#26444
    • exitCoderender-process-gone の詳細 (app & webContents) に追加しました。#27677
  • BrowserWindow API の変更
    • BrowserWindow.isTabletMode() API を追加しました。#25209
    • resized (Windows/macOS) および moved (Windows) イベントを BrowserWindow に追加しました。#26216
    • システムのコンテキストメニューを防止およびオーバーライドできるようにするための新しい system-context-menu イベントを追加しました。#25795
    • BrowserView を上げることができるように、win.setTopBrowserView() を追加しました。#27713
    • ドキュメントの最小サイズに応じてビューのサイズを変更できるように、webPreferences.preferredSizeMode が追加されました。#25874
  • contextBridge API の変更
    • ContextBridge の exposeInMainWorld メソッドで、オブジェクトではない API を公開できるようになりました。#26834
  • display API の変更
    • Windows でリフレッシュレートに関する情報を取得できるように、Display オブジェクトに displayFrequency プロパティが追加されました。#26472
  • extensions API の変更
    • 一部の chrome.management API のサポートが追加されました。#25098
  • MenuItem API の変更
    • macOS の共有メニューの表示がサポートされました。#25629
  • net API の変更
    • net.request() に新しい credentials オプションが追加されました。#25284
    • インターネット接続が現在存在するかどうかを検出するための net.online が追加されました。#21004
  • powerMonitor API の変更
    • powerMonitor.onBatteryPower が追加されました。#26494
    • macOS の powerMonitor に、高速ユーザー切り替えイベントが追加されました。#25321
  • session API の変更
    • ses.loadExtension() API に allowFileAccess オプションが追加されました。#27702
    • session.setPermissionRequestHandlerdisplay-capture API が追加されました。#27696
    • session.setSSLConfigdisabledCipherSuites オプションが追加されました。#25818
    • sessionextension-loaded, extension-unloaded, extension-ready イベントが追加されました。#25385
    • SSL を設定できるように、session.setSSLConfig() が追加されました。#25461
    • session.setProxy()direct, auto_detect, system モードを明示的に指定できるようになりました。#24937
    • Serial API のサポートが追加されました。#25237
    • スペルチェッカーを有効/無効にする API が追加されました。#26276
  • shell API の変更
    • 同期的な shell.moveItemToTrash() に代わる、新しい非同期の shell.trashItem() API が追加されました。#25114
  • webContents API の変更
    • レンダラーのクラッシュをデバッグするのに役立つ、コンソールへの小さなヒントが追加されました。#25317
    • webRequest ハンドラーの詳細オブジェクトに frame および webContents プロパティが追加されました。#27334
    • ハングしたレンダラーの回復を支援するために、レンダラープロセスを強制終了する webContents.forcefullyCrashRenderer() が追加されました。#25580
    • レンダラーが作成した子ウィンドウ用の setWindowOpenHandler API が追加され、new-window イベントは非推奨になりました。#24517
  • webFrame API の変更
    • レンダラーにスペルチェック API が追加されました。#25060

削除/非推奨となった変更

以下の API は削除されたか、非推奨となりました。

  • remote モジュールを非推奨にしました。これは @electron/remote に置き換えられます。#25293
  • 非推奨の crashReporter API が削除されました。#26709
  • パッケージ化されたアプリのデフォルトの「ヘルプ」メニューから、Electron の Web サイトへのリンクが削除されました。#25831

9.x.y のサポート終了

Electron 9.x.y は、プロジェクトのサポートポリシーに従い、サポート終了となりました。開発者およびアプリケーションは、新しいバージョンの Electron にアップグレードすることを推奨します。

今後の予定

短期的な目標としては、Chromium、Node、V8 を含む Electron を構成する主要コンポーネントの開発に遅れないようにすることに引き続き注力していきます。リリース日に関する約束は控えていますが、Electron の新しいメジャーバージョンを、これらのコンポーネントの新しいバージョンとともに、四半期ごとにリリースする予定です。暫定的な 13.0.0 のスケジュールでは、Electron 13.0 の開発ライフサイクルにおける主要な日付が示されています。また、Electron のバージョン管理に関する詳細については、バージョン管理に関するドキュメントを参照してください。

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