Electron 14.0.0がリリースされました!Chromium 93とV8 9.3へのアップグレードが含まれています。いくつかのAPI更新、バグ修正、および一般的な改善を追加しました。詳細は以下をご覧ください!
Electronチームは、Electron 14.0.0のリリースを発表できることを嬉しく思います!npm install electron@latestでnpmを使用してインストールするか、リリースウェブサイトからダウンロードできます。このリリースに関する詳細については読み進めてください。フィードバックがあれば共有してください!
注目すべき変更点
Electronリリース頻度の変更
2021年9月、Electron 15から開始し、Electronは8週間ごとに新しいメジャー安定版をリリースします。詳細はこちらをご覧ください。Electron 15は2021年9月1日にベータ版を開始し、安定版は2021年9月21日にリリースされます。Electronのパブリックタイムラインはこちらをご覧ください。さらに、Electronはサポートされるバージョンを最新の3バージョンから最新の4バージョンに変更します(2022年5月まで)。Electronのバージョニングに関する詳細については、バージョニングドキュメントをご覧ください。
スタックの変更点
- Chromium 93
- Node.js 14.17.0
- V8 9.3
注目機能
- デフォルトの変更: nativeWindowOpenはデフォルトでtrueになりました。(ドキュメントを参照)
- 子ウィンドウは、親ウィンドウからBrowserWindowの構築オプションを継承しなくなりました。#28550
- セッション固有のデータのディスク上のパスを取得するための新しいsession.storagePathAPIを追加しました。#28665
- @electron/remoteで使用される- process.contextIdを追加しました。#28007
- Electron Fuseの背後にある実験的なCookie暗号化サポートを追加しました。#29492
新機能と変更の完全なリストについては、14.0.0リリースノートを参照してください。
破壊的変更
以下は、Electron 14で導入された破壊的変更です。これらと将来の変更に関する詳細情報は、計画されている破壊的変更ページにあります。
削除済み: app.allowRendererProcessReuse
セキュリティ、パフォーマンス、保守性の向上のため、Chromiumのプロセスモデルにより密接に連携させる計画の一環として、app.allowRendererProcessReuseプロパティは削除されました。
詳細については、#18397を参照してください。
削除済み: Browser Windowのアフィニティ
セキュリティ、パフォーマンス、保守性の向上のため、Chromiumのプロセスモデルにより密接に連携させる計画の一環として、新しいBrowserWindowを構築する際のaffinityオプションは削除されました。
詳細については、#18397を参照してください。
APIの変更: window.open()
オプションパラメータframeNameは、ウィンドウのタイトルを設定しなくなりました。この動作は、windowNameパラメータについてネイティブドキュメントで説明されている仕様に従うようになりました。
このパラメータを使用してウィンドウのタイトルを設定していた場合は、代わりにwin.setTitle(title)メソッドを使用できます。
削除済み: worldSafeExecuteJavaScript
worldSafeExecuteJavaScriptは代替手段なしに削除されました。このプロパティが有効な状態でコードが動作することを確認してください。Electron 12以降、デフォルトで有効になっています。
webFrame.executeJavaScriptまたはwebFrame.executeJavaScriptInIsolatedWorldのいずれかを使用している場合、この変更の影響を受けます。これらのメソッドは同じ値渡しセマンティクスを使用するため、どちらかのメソッドによって返される値がContext Bridge APIでサポートされていることを確認する必要があります。
デフォルトの変更: nativeWindowOpenのデフォルトはtrueになりました
Electron 14より前は、window.openはデフォルトでBrowserWindowProxyを使用するようにシムされていました。これは、他の非互換性の中でも、window.open('about:blank')が同期的にスクリプト可能な子ウィンドウを開くために機能しなかったことを意味します。nativeWindowOpenは実験的ではなくなり、デフォルトになりました。
詳細については、Electronのwindow.openのドキュメントを参照してください。
削除済み: 親ウィンドウから継承するBrowserWindowConstructorOptions
Electron 14より前は、window.openで開かれたウィンドウは、transparentやresizableなどのBrowserWindowコンストラクタオプションを親ウィンドウから継承していました。Electron 14から、この動作は削除され、ウィンドウは親からBrowserWindowコンストラクタオプションを継承しなくなりました。
代わりに、setWindowOpenHandlerを使用して新しいウィンドウのオプションを明示的に設定してください。
webContents.setWindowOpenHandler((details) => {
  return {
    action: 'allow',
    overrideBrowserWindowOptions: {
      
    },
  };
});
削除済み: additionalFeatures
new-windowおよびdid-create-windowイベントのWebContentsの非推奨となったadditionalFeaturesプロパティは削除されました。new-windowは位置引数を使用するため、引数は存在しますが、常に空の配列[]になります。(注:new-windowイベント自体は既に非推奨となっており、setWindowOpenHandlerに置き換えられています)。ウィンドウ機能のベアナキーは、オプションオブジェクトで値trueを持つキーとして表示されるようになりました。
webContents.on('did-create-window', (window, details) => {
  if (details.additionalFeatures.includes('my-key')) {
    
  }
});
webContents.on('did-create-window', (window, details) => {
  if (details.options['my-key']) {
    
  }
});
削除済み: remoteモジュール
Electron 12で非推奨となったremoteモジュールは、Electron自体から削除され、個別のパッケージ@electron/remoteに抽出されました。@electron/remoteモジュールは、メインプロセスからレンダラプロセスにJavaScriptオブジェクトをブリッジします。これにより、レンダラプロセスで利用可能なかのように、メインプロセスのみのオブジェクトにアクセスできます。これはremoteモジュールの直接的な代替手段です。移行手順と参照については、モジュールのREADMEを参照してください。
APIの変更
- ウィンドウがフォーカス可能かどうかを判断するためのBrowserWindow.isFocusable()メソッドを追加しました。#28642
- WebFrameMain.visibilityStateインスタンスプロパティを追加しました。#28706
- setWindowOpenHandlerで登録されたウィンドウオープンハンドラに渡されるdetailsオブジェクトに- disposition、- referrer、- postBodyを追加しました。#28518
- @electron/remoteで使用される- process.contextIdを追加しました。#28007
- Electron Fuseの背後にある実験的なCookie暗号化サポートを追加しました。#29492
- webRequestリスナの詳細に対する不足していた- resourceType変換を追加しました:- font、- ping、- cspReport、- media、- webSocket。#30050
- セッション固有のデータのディスク上のパスを取得するための新しいsession.storagePathAPIを追加しました。#28665
- macOSでWindowsコントロールオーバーレイのサポートを追加しました。#29986
- --log-file=.../path/to/file.logを使用してChromiumのログをファイルに送信するサポートを追加しました。また、最初のJSティック中にコマンドラインスイッチを追加することで、JavaScriptからログを有効にすることも可能になりました。#29963
- Node.js cryptoでdes-ede3暗号のサポートを追加しました。#27897
- コンテキストブリッジオブジェクトを変更できるContextBridgeMutability機能を追加しました。#27348
削除/非推奨の変更
以下のAPIは削除されたか、非推奨になりました。
- Electron 12で非推奨となったremoteモジュールは削除されました。#25734
- 子ウィンドウは、親ウィンドウからBrowserWindowの構築オプションを継承しなくなりました。#28550
- new-windowおよび- did-create-windowWebContentsイベントから非推奨の- additionalFeaturesプロパティを削除しました。#28548
- 非推奨のapp.allowRendererProcessReuseとBrowserWindowのaffinityオプションを削除しました。#26874
- crashReporter.startの- submitURLオプションは、- uploadToServerが false の場合、必須引数ではなくなりました。#28105
11.x.y のサポート終了
プロジェクトのサポートポリシーに従い、Electron 11.x.y のサポートは終了しました。開発者とアプリケーションは、新しいバージョンの Electron にアップグレードすることをお勧めします。
今後の予定
短期的に、Chromium、Node.js、V8を含むElectronを構成する主要コンポーネントの開発を継続することに重点を置く予定です。リリース日に関する約束は慎重に行いますが、これらのコンポーネントの新しいバージョンを含むElectronの新しいメジャーバージョンのリリースを四半期ごとに計画しています。
今後の Electron バージョンで予定されている破壊的変更については、予定されている破壊的変更を参照してください。