原文
主な変更点
- ライブラリの更新
ライブラリ | 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のカラースキーム・テーマを読み取ることのできる
nativeTheme
APIを追加しました。#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に於いて
Tray
APIが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系のサポート終了
プロジェクトポリシーに従ってElectron
4.x系はサポートが終了しました。開発者の皆さんはより新しいバージョンへの更新を頑張ってください。
終わりに
英語の勉強も兼ねてElectron v7.0.0のリリースノートを翻訳してみました。
できうる限り正確に翻訳しているつもりですが、僕の脳内辞書には限りがあるので指摘等ありましたらぶん投げていただけると幸いです。