Zum Hauptteil springen

Electron 8.0.0

· Die Lesezeit beträgt 6 min

Electron 8.0.0 wurde veröffentlicht! Es enthält Upgrades auf Chromium 80, V8 8.0 und Node.js 12.13.0. Wir haben Chromes eingebauten Rechtschreibprüfer und vieles mehr hinzugefügt!


Das Electron-Team freut sich über die Veröffentlichung von Electron 8.0.0! Sie können es mit npm über npm install electron@latest installieren oder von unserer Release-Website herunterladen. Der Release ist voll mit Upgrades, Korrekturen und neuen Features. Wir können nicht warten, was du mit ihnen baust! Lesen Sie weiter für Details zu dieser Version und teilen Sie bitte Ihr Feedback!

Bemerkenswerte Änderungen

Stack-Änderungen

Hervorgehobene Features

  • Implementierte Nutzung von Chromes eingebauter Rechtschreibprüfung. Weitere Details finden Sie in #20692 und #21266.
  • IPC-Kommunikation verwendet nun v8 strukturierten Clone Algorithmus. Dies ist schneller, funktionsfähiger und weniger überraschend als die bestehende Logik und bringt eine 2x Leistungssteigerung für große Buffer und komplexe Objekte. Die Latenz für kleine Nachrichten ist nicht signifikant betroffen. Weitere Details finden Sie in #20214.

Eine vollständige Liste der neuen Funktionen und Änderungen finden Sie in den 8.0.0 Versionshinweise.

Breaking Changes

  • Show module name in deprecation warning for context-aware modules. #21952
    • This is continued work for a future requirement that native Node modules loaded in the renderer process be either N-API or Context Aware. Vollständige Informationen und vorgeschlagene Zeitleiste sind in diesem Issue beschrieben.
  • Über IPC gesendete Werte werden nun mit dem strukturierten Clone Algorithmus serialisiert. #20214
  • Offscreen Rendering is currently disabled due to lack of a maintainer to work on this feature. It broke during the Chromium upgrade and was subsequently disabled. #20772

Weitere Informationen zu diesen und zukünftigen Änderungen finden Sie auf der geplante Änderungen Seite.

API-Änderungen

  • app API-Änderungen:
    • app.getApplicationNameForProtocol(url) hinzugefügt. #20399
    • Unterstützung für app.showAboutPanel() und app.setAboutPanelOptions(options) unter Windows hinzugefügt. #19420
  • BrowserWindow API-Änderungen:
    • Aktualisierte Dokumentation, um festzustellen, dass BrowserWindow Optionen hasShadow auf allen Plattformen verfügbar ist #20038
    • Added trafficLightPosition option to BrowserWindow options to allow custom positioning for traffic light buttons. #21781
    • Added accessibleTitle option to BrowserWindow for setting the accessible window title #19698
    • BrowserWindow.fromWebContents() can now return null #19983
    • Added BrowserWindow.getMediaSourceId() and BrowserWindow.moveAbove(mediaSourceId). #18926
    • Unterstützung für will-move Event auf macOS hinzugefügt. #19641
  • Vorher undokumentierte crashReporter.getCrashesDirectory() dokumentiert. #20417
  • dialog API-Änderungen:
    • Added dontAddToRecent property to dialog.showOpenDialog and dialog.showOpenDialogSync to prevent documents from being added to recent documents on Windows in open dialogs. #19669
    • Objektanpassung zu dialog.showSaveDialog und dialog.showSaveDialogSync hinzugefügt. #19672
  • Notification API-Änderungen:
    • timeoutType Option hinzugefügt, damit Linux/Windows-Benutzer die Art der Benachrichtigungs-Timeout festlegen können. #20153
    • Added urgency option to set urgency on Linux notifications. #20152
  • session API-Änderungen:
    • Updated documentation on session.setProxy(config) and session.setCertificateVerifyProc(proc) to note optional options. #19604
    • Added session.downloadURL(url) to allow to triggering downloads without a BrowserWindow. #19889
    • Added support for HTTP preconnect resource hints via session.preconnect(options) and the preconnect event. #18671
    • Added session.addWordToSpellCheckerDictionary to allow custom words in the dictionary #21297
  • Option auf shell.moveItemToTrash(fullPath[, deleteOnFail]) auf macOS hinzugefügt, um festzulegen, was passiert, wenn moveItemToTrash fehlschlägt. #19700
  • systemPreferences API-Änderungen:
    • systemPreferences.getColor(color) Dokumentation für macOS aktualisiert. #20611
    • Medientyp screen zu systemPreferences.getMediaAccessStatus() hinzugefügt. #20764
  • Added nativeTheme.themeSource to allow apps to override Chromium and the OS's theme choice. #19960
  • TouchBar API-Änderungen:
    • Added accessibilityLabel property to TouchBarButton and TouchBarLabel to improve TouchBarButton/TouchBarLabel accessibility. #20454
    • Updated TouchBar related documentation #19444
  • tray API-Änderungen:
    • Added new options to tray.displayBalloon(): iconType, largeIcon, noSound and respectQuietTime. #19544
    • Added tray.removeBalloon(), which removes an already displayed balloon notification. #19547
    • Added tray.focus(), which returns focus to the taskbar notification area. feat: add tray.focus() #19548
  • webContents API-Änderungen:
    • contents.executeJavaScriptInIsolatedWorld(worldId, scripts[, userGesture]) hinzugefügt, um executeJavaScriptInIsolatedWorld auf der WebContents API zu enthüllen. #21190
    • Methoden zum Erfassen eines versteckten webContents hinzugefügt. #21679
    • Added options to webContents.print([options], [callback]) to enable customization of print page headers and footers. #19688
    • Added ability to inspect specific shared workers via webContents.getAllSharedWorkers() and webContents.inspectSharedWorkerById(workerId). #20389
    • Added the support of fitToPageEnabled and scaleFactor options in WebContents.printToPDF(). #20436
  • Updated webview.printToPDF documentation to indicate return type is now Uint8Array. #20505

Veraltete APIs

Die folgenden APIs sind jetzt veraltet:

  • Deprecated the nonfunctional visibleOnFullScreen option within BrowserWindow.setVisibleOnAllWorkspaces prior to its removal in the next major release version. #21732
  • Deprecated alternate-selected-control-text on systemPreferences.getColor(color) for macOS. #20611
  • Deprecated setLayoutZoomLevelLimits on webContents, webFrame, and <webview> Tag because Chromium removed this capability. #21296
  • The default value of false for app.allowRendererProcessReuse is now deprecated. #21287
  • Deprecated <webview>.getWebContents() as it depends on the remote module. #20726

Ende der Unterstützung für 5.x.y

Electron 5.x.y hat das Ende des Supports gemäß der Unterstützungsrichtlinien erreicht. Developers and applications are encouraged to upgrade to a newer version of Electron.

App Feedback Programm

We continue to use our App Feedback Program for testing. Projects who participate in this program test Electron betas on their apps; and in return, the new bugs they find are prioritized for the stable release. If you'd like to participate or learn more, check out our blog post about the program.

What's Next

In the short term, you can expect the team to continue to focus on keeping up with the development of the major components that make up Electron, including Chromium, Node, and V8. Although we are careful not to make promises about release dates, our plan is release new major versions of Electron with new versions of those components approximately quarterly. The tentative 9.0.0 schedule maps out key dates in the Electron 9 development life cycle. Also, see our versioning document for more detailed information about versioning in Electron.

For information on planned breaking changes in upcoming versions of Electron, see our Planned Breaking Changes doc.

Deprecation of remote Module (Starting in Electron 9)

Due to serious security liabilities, we are beginning plans to deprecate the remote module starting in Electron 9. You can read and follow this issue that details our reasons for this and includes a proposed timeline for deprecation.