破壊的変更
破壊的な変更は変更の 一つ前のメジャーバージョン についてここに文書化され、可能であれば非推奨の警告を JS コードに加えます。
破壊的変更の種別
このドキュメントでは、以下の規約によって破壊的な変更を分類しています。
- API 変更: 古いコードで例外の発生が保証されるように API が変更されました。
- 動作変更: Electron の動作が変更されましたが、例外が必ず発生する訳ではありません。
- 省略値変更: 古い省略値に依存するコードは動かなくなるかもしれませんが、必ずしも例外は発生しません。 値を明示することで以前の動作に戻すことができます。
- 非推奨: API は非推奨になりました。 この API は引き続き機能しますが、非推奨の警告を発し、将来のリリースで削除されます。
- 削除: API または機能が削除され、Electron でサポートされなくなりました。
予定されている破壊的な API の変更 (33.0)
動作変更: app
の login
の webContents
プロパティ
app
からの login
イベントの webContents
プロパティは、respondToAuthRequestsFromMainProcess
オプションで作成された ユーティリティプロセス からのリクエストに対してイベントがトリガされた場合、null
になります。
非推奨: systemPreferences.accessibilityDisplayShouldReduceTransparency
systemPreferences.accessibilityDisplayShouldReduceTransparency
プロパティは非推奨とし、代わりに同一の情報を提供し、クロスプラットフォームで動作する、新規追加の nativeTheme.prefersReducedTransparency
を推奨します。
// 非推奨
const shouldReduceTransparency = systemPreferences.accessibilityDisplayShouldReduceTransparency
// こちらで置き換えてください:
const prefersReducedTransparency = nativeTheme.prefersReducedTransparency
予定されている破壊的な API の変更 (32.0)
削除: File.path
ウェブの File
オブジェクトの非標準の path
プロパティは、レンダラー内ですべてを実行するのが一般的だった時代に、ネイティブのファイルを操作する便利な方法として Electron の初期バージョンで追加されました。 ただし、これは標準からの逸脱であり軽微なセキュリティリスクも伴うため、Electron 32.0 以降では webUtils.getPathForFile
メソッドに置き換えられました。
// 以前 (レンダラー)
const file = document.querySelector('input[type=file]')
alert(`Uploaded file path was: ${file.path}`)
// これから (レンダラー)
const file = document.querySelector('input[type=file]')
electron.showFilePath(file)
// (プリロード)
const { contextBridge, webUtils } = require('electron')
contextBridge.exposeInMainWorld('electron', {
showFilePath (file) {
// できればウェブコンテンツへの完全なファイルパスを
// 公開しないことを推奨します。
const path = webUtils.getPathForFile(file)
alert(`Uploaded file path was: ${path}`)
}
})
非推奨: WebContents
の clearHistory
, canGoBack
, goBack
, canGoForward
, goForward
, goToIndex
, canGoToOffset
, goToOffset
以前のナビゲーション関連の API は非推奨になりました。
これらの API は、ナビゲーション履歴を管理するより構造化された直感的インターフェースを提供するために、WebContents
の navigationHistory
プロパティへ移動されました。
// 非推奨
win.webContents.clearHistory()
win.webContents.canGoBack()
win.webContents.goBack()
win.webContents.canGoForward()
win.webContents.goForward()
win.webContents.goToIndex(index)
win.webContents.canGoToOffset()
win.webContents.goToOffset(index)
// こちらで置き換えてください
win.webContents.navigationHistory.clear()
win.webContents.navigationHistory.canGoBack()
win.webContents.navigationHistory.goBack()
win.webContents.navigationHistory.canGoForward()
win.webContents.navigationHistory.goForward()
win.webContents.navigationHistory.canGoToOffset()
win.webContents.navigationHistory.goToOffset(index)
予定されている破壊的な API の変更 (31.0)
削除: WebSQL
サポート
Chromium は WebSQL の上流サポートを削除し、Android のみに移行しました。 詳細については、Chromium の削除意図の議論 をご参照ください。