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.storagePath
APIを追加しました。#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.storagePath
APIを追加しました。#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-window
WebContentsイベントから非推奨の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 バージョンで予定されている破壊的変更については、予定されている破壊的変更を参照してください。