Electron v7.0.0 リリースノート[和訳]


原文

主な変更点

  • ライブラリの更新
ライブラリ 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
  • Windows Armアーキテクチャ (64 bit) リリースを追加. #18591, #20112

  • 非同期な呼び出し・受け取りスタイルな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にcaptureModemaxFileSizeオプションを追加しました。 #19215
  • creationTimesandboxedintegrityLevelapp.getAppMetrics()の出力に追加しました。 #18718
  • 失敗・成功・キャンセルを区別するためにwebContents.print()コールバックにfailureReasonパラメーターを追加しました。 #19000
  • getBounds()メソッドをBrowserViewに追加しました。 #19370
  • GPUの情報が更新されるタイミングで都度発火するgpu-info-updateイベントをappに追加しました。 #18250
  • memoryapp.getAppMetrics()に追加しました。 #18831
  • process.getBlinkMemoryInfo()を追加しました。 #17762
  • webFramewebContents<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.objectsystemPreferences.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
  • badgeCountappモジュールのプロパティになりました。 #17363
  • app.nameはプロパティになりました。 #17701
  • nativeImage.templateImagenativeImageのprototypeプロパティになりました。 #18124
  • appLevelAppearancesystemPreferencesのプロパティになりました。 #18477
  • autoHideMenuBarBrowserWindowのインスタンスプロパティになりました。 #18555
  • savePathDownloadItemのインスタンスプロパティになりました。 #18677
  • closablefullscreenablemaximizableminimizablemovableresizableBrowserWindowのprototype@ウロパティになりました. #18618

修正点

  • ローカル接続時に於いて"Node integration with remote content" 及び "loading insecure content" の警告は抑制さレルようになりました。 #18814
  • ELECTRON_RUN_AS_NODENodeのオプションとV8のフラグを正しく解釈するようになりました。(--expose_gc等) #19403
  • Linuxに於いてgtk_disable_setlocale()に関する警告を修正しました。 #20012
  • MenuItemsに於けるtriggeredByAcceleratorイベントの挙動を修正しました。 #18865
  • window.print()がクラッシュする問題を修正しました。 #19728
  • 手動で印刷をキャンセルした際にクラッシュする問題とdeviceNameが機能していない問題を修正しました。 #19668
  • 連続してトレイのポップアップを呼び出すとクラッシュする問題を修正しました。 #18999
  • MacOSに於いてモーダルウィンドウをクローズする際にcloseイベントが発火しない問題を修正しました。 #19014
  • MacOSに於いてNodeのサブプロセス上でクラッシュレポーターのaddExtraParameterremoveExtraParameterメソッドがundefinedになる問題を修正しました。 #15790
  • desktopCapturerがリークしていた問題を修正しました。 #20280
  • <webview>srcを設定する挙動が遅すぎる問題を解決しました。 #18990
  • いくつかの場合においてdocument.visibilityStateが正しくなく、win.show()win.hide()のステートが正しく更新されない問題を修正しました。 #20134
  • input[type=file]要素に於けるwebkitdirectory属性のサポートを修正しました。 #18343
  • Windowsに於けるデバッグログの挙動を修正しました。 #18199
  • contextIsolationを有効にしている場合、Node.jsのグローバル要素(processBuffer等々)はグローバルスコープ(global)から削除されなくなりました。 #18967
  • サンドボックス化したレンダラープロセスのNon-absoluteなセッションにおいてプリロードスクリプトが無視されていた問題を修正しました。 #19066
  • ログのパスを探索失敗した際にgetPath('logs')がより分かりやすいエラーを投げるように修正しました。 #19514
  • web-contents-createdbrowser-window-createdEventではなくからのオブジェクトを送出していた問題を修正しました。 #19465
  • app.on('ready')の最中、即座にnetLog.startLogging()を呼び出すと音もなく死んでいた問題を修正しました。
  • いくつかのモジュールをapp.on('ready')イベントより前で要求していたことによる副作用を修正しました。 #17496

ドキュメント

4.x系のサポート終了

プロジェクトポリシーに従ってElectron4.x系はサポートが終了しました。開発者の皆さんはより新しいバージョンへの更新を頑張ってください。

終わりに

英語の勉強も兼ねてElectron v7.0.0のリリースノートを翻訳してみました。
できうる限り正確に翻訳しているつもりですが、僕の脳内辞書には限りがあるので指摘等ありましたらぶん投げていただけると幸いです。