Electron 14.0.0
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は2022年5月まで、サポートされるバージョンを最新の3バージョンから最新の4バージョンに変更します。Electronのバージョニングに関するドキュメントで、Electronのバージョニングに関する詳細情報をご覧ください。
スタックの変更
- Chromium
93
- Node.js
14.17.0
- V8
9.3
注目機能
- デフォルトの変更:
nativeWindowOpen
は、デフォルトでtrue
になります。(ドキュメントを参照) - 子ウィンドウは、親からBrowserWindowの構築オプションを継承しなくなりました。#28550
- セッション固有のデータのディスク上のパスを取得するための新しい
session.storagePath
APIを追加しました。#28665 @electron/remote
で使用されるprocess.contextId
を追加しました。#28007- Electron Fuseの背後にある実験的なCookie暗号化サポートを追加しました。#29492
新機能と変更点の完全なリストについては、14.0.0リリースノートを参照してください。
破壊的変更
以下は、Electron 14で導入された破壊的変更です。これらと今後の変更の詳細については、計画されている破壊的変更ページをご覧ください。
削除済み:app.allowRendererProcessReuse
セキュリティ、パフォーマンス、保守性の向上のため、Chromiumのプロセスモデルにより緊密に連携する計画の一環として、app.allowRendererProcessReuse
プロパティが削除されました。
詳細については、#18397を参照してください。
削除済み:ブラウザウィンドウの関連付け
セキュリティ、パフォーマンス、保守性の向上のため、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
のキーとして表示されるようになります。
// Removed in Electron 14
// Triggered by window.open('...', '', 'my-key')
webContents.on('did-create-window', (window, details) => {
if (details.additionalFeatures.includes('my-key')) {
// ...
}
});
// Replace with
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
インスタンスプロパティを追加しました。#28706setWindowOpenHandler
で登録されたウィンドウオープンハンドラーに渡されるdetailsオブジェクトに、disposition
、referrer
、postBody
を追加しました。#28518@electron/remote
で使用されるprocess.contextId
を追加しました。#28007- Electron Fuseの背後にある実験的なCookie暗号化サポートを追加しました。#29492
webRequest
リスナーの詳細について、不足していたresourceType
変換を追加しました:font
、ping
、cspReport
、media
、webSocket
。#30050- セッション固有のデータのディスク上のパスを取得するための新しい
session.storagePath
APIを追加しました。#28665 - macOSでWindowsコントロールオーバーレイのサポートを追加しました。#29986
--log-file=.../path/to/file.log
を使用してChromiumのログをファイルに書き出すサポートを追加しました。また、最初のJSティック中にコマンドラインスイッチを追加することで、JavaScriptからログを有効にすることも可能になりました。#29963- node cryptoでdes-ede3暗号のサポートを追加しました。#27897
- コンテキストブリッジオブジェクトを変更できる
ContextBridgeMutability
機能を追加しました。#27348
削除/非推奨の変更
以下のAPIは削除されたか、非推奨になりました。
- Electron 12で非推奨になった
remote
モジュールが削除されました。#25734 - 子ウィンドウは、親からBrowserWindowの構築オプションを継承しなくなりました。#28550
new-window
およびdid-create-window
WebContentsイベントから非推奨のadditionalFeatures
プロパティを削除しました。#28548- 非推奨の
app.allowRendererProcessReuse
およびBrowserWindowのaffinity
オプションを削除しました。#26874 uploadToServer
がfalseの場合、crashReporter.start
のsubmitURL
オプションは必須引数ではなくなりました。#28105
11.x.yのサポート終了
プロジェクトのサポートポリシーに従って、Electron 11.x.yのサポートが終了しました。開発者とアプリケーションは、新しいバージョンのElectronへのアップグレードを推奨します。
今後の予定
短期的に、Chromium、Node、V8を含むElectronを構成する主要コンポーネントの開発を継続することに重点を置く予定です。リリース日については約束できませんが、これらのコンポーネントの新しいバージョンを含むElectronの新しいメジャーバージョンのリリースを四半期ごとに行う予定です。
今後のElectronのバージョンの計画されている破壊的変更については、計画されている破壊的変更を参照してください。