原文
主な変更点
- ライブラリの更新
| ライブラリ | Electron 7 | 更新情報 | Electron 6 |
|---|---|---|---|
| Chromium | 78.0.3905.1 | 78, 77 | 76.0.3809.146 |
| V8 | 7.8 | 7.8, 7.7 | 7.6 |
| Node.js | 12.8.1 | 12.8.1, 12.8, 12.7, 12.6, 12.5 | 12.4.0 |
-
非同期な呼び出し・受け取りスタイルなIPC
ipcRenderer.invoke()ipcMain.handle()を追加。remoteモジュールではなくこちらを使うことを強く推奨します。 詳細な情報は "Electron’s ‘remote’ module considered harmful (原文)" をご覧ください。 #18449 -
OSのカラースキーム・テーマを読み取ることのできる
nativeThemeAPIを追加しました。#19758 #20486 -
より正確な定義を生成する新しいTypeScript型情報ジェネレーターに変更しました。もしビルドが失敗するならこれが原因かもしれません #18103
破壊的変更
より詳細な情報と将来の変更予定を知りたい場合は Planned Breaking Changes (原文) を参照してください。
- 削除された非推奨なAPI
-
Promiseを返却できる各種APIからコールバックスタイルなオーバーロードを削除#17907 -
Tray.setHighlightMode()(macOS). #18981 -
app.enableMixedSandbox()#17894 app.getApplicationMenu()app.setApplicationMenu()powerMonitor.querySystemIdleState()powerMonitor.querySystemIdleTime()webFrame.setIsolatedWorldContentSecurityPolicy()webFrame.setIsolatedWorldHumanReadableName()- webFrame.setIsolatedWorldSecurityOrigin()` #18159
-
- クリア済みのキャッシュ内容を
Session.clearAuthCache()でフィルタリングすることはもはや有りません。 #17970 - MacOSにおけるネイティブなUI (メニュー・ダイアログ等々) はユーザーがダークモードを利用している場合、自動的に切り替わるようになりました。#19226
-
electronモジュールではなく@electron/getモジュールを使うように変更しました。サポートされている後方互換の下限はNode 8です。 -
electron.asarは生成されなくなります。このファイルの有無に依存するスクリプトは更新しなければなりません。#18577
新機能
-
netLog.startLogging()はPromiseを返却します。このPromiseはnetLogが記録を開始した際にresolveされます。 - 全ての非同期な
webContentsおよび<webview>のメソッドはPromiseを返却するようになります。 #18792 - MacOSで
always-on-top-changedイベントが発行されるようになりました。#19462 - Handoffユーザーアクティビティを向こうにせずにユーザーをinactiveとしてマークできる
app.resignCurrentActivity()を追加しました。#18659 - netLog APIに
captureModeとmaxFileSizeオプションを追加しました。 #19215 -
creationTime・sandboxed・integrityLevelをapp.getAppMetrics()の出力に追加しました。 #18718 - 失敗・成功・キャンセルを区別するために
webContents.print()コールバックにfailureReasonパラメーターを追加しました。 #19000 -
getBounds()メソッドをBrowserViewに追加しました。 #19370 - GPUの情報が更新されるタイミングで都度発火する
gpu-info-updateイベントをappに追加しました。 #18250 -
memoryをapp.getAppMetrics()に追加しました。 #18831 -
process.getBlinkMemoryInfo()を追加しました。 #17762 -
webFrame・webContents・<webview>にremoveInsertedCSS()を追加しました。 #16579 - ユーザーが(クロスオリジンな)
iframe内でマウスホイールを使用してズームした際に発火するzoom-changedイベントをwebContentsに追加しました。(iframeにフォーカスがある場合に限ります) #17747 - Catalina (MacOS)での互換性を維持するために
Trayをカスタムビューからネイティブビューへ移行しました。 #18981 - MacOSにおいて
MenuItem.toolTipが使えるようになりました。 #19099 -
webContents.print()にカスタマイズオプションを追加しました。 #18984 - ファイルが競合した際の挙動を指定するハンドラを
app.moveToApplicationsFolderに追加しました。 #18916 - GPUプロセスにおける
ELECTRON_DEFAULT_ERROR_MODEのサポートを追加しました。 #17728 -
remoteモジュールをリモートコンテンツを伴って仕様する場合にセキュリティー警告を出すようにしました。 #18822 -
webFrame.insertCSS()でCSS originをサポートしました。 #19268 -
HTTPに於けるResource HintsのPreconnectをサポートしました。 #19952 - MacOS Mojaveに於いていくつかの
NSVisualEffectMaterialsを追加しました。 #19073 - Windowsに於いて
TrayAPIがmouse-moveイベントをサポートするようになりました。#19265 - Windowsに於いて
systemPreferences.isDarkMode()をサポートするようになりました。 #19217 - MacOSに於いて
systemPreferences.isHighContrastColorScheme()APIをサポートするようになりました。 #19331 -
video要素がpicture-in-pictureをサポートするようになりました。 #19914 - MacOSの
BrowserWindowに於いて開店したmulti-touchをサポートするようになりました。 #19294 - Linuxに於いて
Aboutパネルに作者の情報を表示できるようになりました #18964 - 引数無しで
contentTracing.stopTracing()を呼び出した際の挙動が空文字を与えて呼び出した場合を同じになりました。(トレース情報は一時ファイルに書き出されます) #18411 - Windowを最前面に持って来る際にタスクバーの後ろに隠れたままに出来るようにしました。 #18982
- W3CのReporting Apiを有効にしました。 #18255
-
NSNotification.objectをsystemPreferences.subscriptionNotificationのコールバックに渡すようになりました。 #19110 - MacOSに於いて
BrowserWindow.setFocusableが使えるようになりました。 #19033 - 親
BrowserWindowに於いてnodeIntegrationInSubFramesを有効化しない限り、Rendererプロセス上のcross-originなフレームはSandBox化されるようになりました。 #18650 -
ELECTRON_SKIP_BINARY_DOWNLOAD=1をセットすることでElectronのバイナリをダウンロードする挙動をスキップ出来るようになりました。 #17627 -
netLog.currentlyLoggingPathは非推奨になりました。 #18289 - Windowsに於けるArnノードのヘッダーファイル群をチェックサムに追加しました。 #20261
プロパティの変更
-
webContentのプリミティブな getter / setterは単なるプロパティに置き換えられました。 #18998 -
badgeCountはappモジュールのプロパティになりました。 #17363 -
app.nameはプロパティになりました。 #17701 -
nativeImage.templateImageはnativeImageのprototypeプロパティになりました。 #18124 -
appLevelAppearanceはsystemPreferencesのプロパティになりました。 #18477 -
autoHideMenuBarはBrowserWindowのインスタンスプロパティになりました。 #18555 -
savePathはDownloadItemのインスタンスプロパティになりました。 #18677 -
closable・fullscreenable・maximizable・minimizable・movable・resizableはBrowserWindowのprototype@ウロパティになりました. #18618
修正点
- ローカル接続時に於いて"Node integration with remote content" 及び "loading insecure content" の警告は抑制さレルようになりました。 #18814
-
ELECTRON_RUN_AS_NODEはNodeのオプションとV8のフラグを正しく解釈するようになりました。(--expose_gc等) #19403 - Linuxに於いて
gtk_disable_setlocale()に関する警告を修正しました。 #20012 -
MenuItemsに於けるtriggeredByAcceleratorイベントの挙動を修正しました。 #18865 -
window.print()がクラッシュする問題を修正しました。 #19728 - 手動で印刷をキャンセルした際にクラッシュする問題と
deviceNameが機能していない問題を修正しました。 #19668 - 連続してトレイのポップアップを呼び出すとクラッシュする問題を修正しました。 #18999
- MacOSに於いてモーダルウィンドウをクローズする際に
closeイベントが発火しない問題を修正しました。 #19014 - MacOSに於いてNodeのサブプロセス上でクラッシュレポーターの
addExtraParameter・removeExtraParameterメソッドがundefinedになる問題を修正しました。 #15790 -
desktopCapturerがリークしていた問題を修正しました。 #20280 -
<webview>にsrcを設定する挙動が遅すぎる問題を解決しました。 #18990 - いくつかの場合において
document.visibilityStateが正しくなく、win.show()・win.hide()のステートが正しく更新されない問題を修正しました。 #20134 -
input[type=file]要素に於けるwebkitdirectory属性のサポートを修正しました。 #18343 - Windowsに於けるデバッグログの挙動を修正しました。 #18199
-
contextIsolationを有効にしている場合、Node.jsのグローバル要素(process・Buffer等々)はグローバルスコープ(global)から削除されなくなりました。 #18967 - サンドボックス化したレンダラープロセスのNon-absoluteなセッションにおいてプリロードスクリプトが無視されていた問題を修正しました。 #19066
- ログのパスを探索失敗した際に
getPath('logs')がより分かりやすいエラーを投げるように修正しました。 #19514 -
web-contents-created・browser-window-createdがEventではなくからのオブジェクトを送出していた問題を修正しました。 #19465 -
app.on('ready')の最中、即座にnetLog.startLogging()を呼び出すと音もなく死んでいた問題を修正しました。 - いくつかのモジュールを
app.on('ready')イベントより前で要求していたことによる副作用を修正しました。 #17496
ドキュメント
4.x系のサポート終了
プロジェクトポリシーに従ってElectron4.x系はサポートが終了しました。開発者の皆さんはより新しいバージョンへの更新を頑張ってください。
終わりに
英語の勉強も兼ねてElectron v7.0.0のリリースノートを翻訳してみました。
できうる限り正確に翻訳しているつもりですが、僕の脳内辞書には限りがあるので指摘等ありましたらぶん投げていただけると幸いです。