メインコンテンツにスキップ

Electron 8.0.0

·6分で読めます

Electron 8.0.0 がリリースされました! Chromium 80、V8 8.0、Node.js 12.13.0 へのアップグレードが含まれています。 Chrome の組み込みスペルチェッカーを追加し、さらに多くの機能が追加されています!


Electronチームは、Electron 8.0.0 のリリースを発表できることを嬉しく思います! npm で npm install electron@latest を使用してインストールするか、リリースウェブサイト からダウンロードできます。このリリースには、アップグレード、修正、および新機能が満載です。皆様がこれらを使って何を作るのか、楽しみで待ちきれません!このリリースの詳細については読み進めていただき、フィードバックがありましたら共有してください!

注目すべき変更点

スタックの変更

ハイライト機能

  • Chrome の組み込みスペルチェッカー機能の使用を実装しました。詳しくは #20692#21266 を参照してください。
  • IPC 通信で v8 の構造化クローンアルゴリズムを使用するようになりました。これは既存のロジックよりも高速で機能が豊富で、驚くことが少なく、大きなバッファや複雑なオブジェクトでパフォーマンスが 2 倍向上します。小さなメッセージの遅延には大きな影響はありません。詳しくは #20214 を参照してください。

新機能と変更の完全なリストについては、8.0.0 のリリースノート を参照してください。

破壊的変更

  • コンテキストを認識するモジュールの非推奨警告にモジュール名を表示します。#21952
    • これは、レンダラープロセスにロードされるネイティブNodeモジュールが、N-API または コンテキストを認識する モジュールであるという、将来の要件に対する継続的な作業です。完全な情報と提案されたタイムラインは、この issue で詳しく説明されています。
  • IPC経由で送信される値は、構造化クローンアルゴリズムでシリアル化されるようになりました。#20214
  • オフスクリーンレンダリングは、この機能に取り組むメンテナーがいないため、現在無効になっています。 Chromium のアップグレード中に壊れ、その後無効になりました。#20772

これらの変更と将来の変更の詳細については、計画された破壊的変更 のページをご覧ください。

APIの変更

  • app APIの変更
    • app.getApplicationNameForProtocol(url) を追加しました。#20399
    • Windows で app.showAboutPanel()app.setAboutPanelOptions(options) のサポートを追加しました。#19420
  • BrowserWindow APIの変更
    • BrowserWindow オプション hasShadow がすべてのプラットフォームで利用可能であることを示すドキュメントを更新しました #20038
    • 信号ボタンのカスタム配置を可能にするために、BrowserWindow オプションに trafficLightPosition オプションを追加しました。#21781
    • アクセス可能なウィンドウタイトルを設定するための、BrowserWindow に accessibleTitle オプションを追加しました。#19698
    • BrowserWindow.fromWebContents() は null を返すことができるようになりました #19983
    • BrowserWindow.getMediaSourceId()BrowserWindow.moveAbove(mediaSourceId) を追加しました。#18926
    • macOS で will-move イベントのサポートを追加しました。#19641
  • 以前ドキュメント化されていなかった crashReporter.getCrashesDirectory() をドキュメント化しました。#20417
  • dialog APIの変更
    • Windows のオープンダイアログでドキュメントが最近使ったドキュメントに追加されないように、dialog.showOpenDialog および dialog.showOpenDialogSyncdontAddToRecent プロパティを追加しました。#19669
    • dialog.showSaveDialog および dialog.showSaveDialogSync にプロパティのカスタマイズを追加しました。#19672
  • Notification APIの変更
    • Linux/Windows ユーザーが通知タイムアウトのタイプを設定できるように timeoutType オプションを追加しました。#20153
    • Linux 通知に緊急度を設定する urgency オプションを追加しました。#20152
  • session APIの変更
    • オプションのオプションを記述するために session.setProxy(config)session.setCertificateVerifyProc(proc) のドキュメントを更新しました。#19604
    • BrowserWindow なしでダウンロードをトリガーできるように session.downloadURL(url) を追加しました。#19889
    • session.preconnect(options)preconnect イベントを介して HTTP プリコネクトリソースヒントのサポートを追加しました。#18671
    • 辞書にカスタム単語を許可するために session.addWordToSpellCheckerDictionary を追加しました。#21297
  • macOSのshell.moveItemToTrash(fullPath[, deleteOnFail])に、moveItemToTrashが失敗した場合の動作を指定するオプションが追加されました。#19700
  • systemPreferences API の変更
    • macOS向けにsystemPreferences.getColor(color)のドキュメントが更新されました。#20611
    • systemPreferences.getMediaAccessStatus()screenメディアタイプが追加されました。#20764
  • アプリがChromiumとOSのテーマ選択をオーバーライドできるように、nativeTheme.themeSourceが追加されました。#19960
  • TouchBar API の変更
    • TouchBarButton/TouchBarLabelのアクセシビリティを向上させるために、accessibilityLabelプロパティがTouchBarButtonTouchBarLabelに追加されました。#20454
    • TouchBar関連のドキュメントが更新されました。#19444
  • tray API の変更
    • tray.displayBalloon()に、iconTypelargeIconnoSoundrespectQuietTimeという新しいオプションが追加されました。#19544
    • 既に表示されているバルーン通知を削除するtray.removeBalloon()が追加されました。#19547
    • タスクバーの通知領域にフォーカスを戻すtray.focus()が追加されました。 feat: add tray.focus() #19548
  • webContents API の変更
    • webContents API で executeJavaScriptInIsolatedWorld を公開するために、contents.executeJavaScriptInIsolatedWorld(worldId, scripts[, userGesture])が追加されました。#21190
    • 非表示のwebContentsをキャプチャするメソッドが追加されました。#21679
    • 印刷ページのヘッダーとフッターのカスタマイズを可能にするオプションが、webContents.print([options], [callback])に追加されました。#19688
    • webContents.getAllSharedWorkers()webContents.inspectSharedWorkerById(workerId)を介して、特定の共有ワーカーを検査する機能が追加されました。#20389
    • WebContents.printToPDF()でfitToPageEnabledscaleFactorオプションのサポートが追加されました。#20436
  • webview.printToPDFのドキュメントが、戻り値の型がUint8Arrayになったことを示すように更新されました。#20505

非推奨のAPI

以下のAPIは非推奨になりました。

  • 次のメジャーリリースバージョンで削除される前に、BrowserWindow.setVisibleOnAllWorkspaces内の非機能的なvisibleOnFullScreenオプションが非推奨になりました。#21732
  • macOSのsystemPreferences.getColor(color)alternate-selected-control-textが非推奨になりました。#20611
  • Chromiumがこの機能を削除したため、webContentswebFrame<webview> TagsetLayoutZoomLevelLimitsが非推奨になりました。#21296
  • app.allowRendererProcessReuseのデフォルト値のfalseが非推奨になりました。#21287
  • <webview>.getWebContents()がremoteモジュールに依存するため非推奨になりました。#20726

5.x.yのサポート終了

Electron 5.x.yは、プロジェクトのサポートポリシーに従い、サポートが終了しました。開発者とアプリケーションは、より新しいバージョンのElectronにアップグレードすることをお勧めします。

アプリフィードバックプログラム

私たちはテストにアプリフィードバックプログラムを引き続き利用しています。このプログラムに参加するプロジェクトは、アプリでElectronベータ版をテストします。そして、見つかった新しいバグは、安定版リリースに向けて優先的に処理されます。参加または詳細を知りたい場合は、プログラムに関するブログ投稿をご覧ください。

今後の予定

短期的には、チームがChromium、Node、V8などのElectronを構成する主要コンポーネントの開発に引き続き注力することを期待できます。リリース日に関する約束は控えたいと思いますが、計画としては、これらのコンポーネントの新しいバージョンを含むElectronの新しいメジャーバージョンを四半期ごとにリリースする予定です。仮の9.0.0スケジュールは、Electron 9の開発ライフサイクルにおける重要な日付を示しています。また、Electronのバージョン管理に関する詳細については、バージョン管理に関するドキュメントを参照してください。

今後のElectronバージョンでの計画的な破壊的変更については、計画的な破壊的変更に関するドキュメントを参照してください。

remoteモジュールの非推奨 (Electron 9以降)

深刻なセキュリティ上の問題のため、Electron 9以降でremoteモジュールの非推奨を始める計画です。非推奨の理由とその提案されたタイムラインの詳細については、この issue を読んで追跡してください。