Zum Hauptteil springen

Electron 12.0.0

· Die Lesezeit beträgt 5 min

Electron 12.0.0 wurde veröffentlicht! Es enthält Upgrades auf Chromium 89, V8 8.9 und Node.js 14.16. Wir haben Änderungen am Remote-Modul, neue Standardwerte für contextIsolation, eine neue WebFrameMain API und allgemeine Verbesserungen hinzugefügt. Lesen Sie unten für weitere Details!


Das Electron-Team freut sich über die Veröffentlichung von Electron 12.0.0! Sie können es mit npm über npm install electron@latest installieren oder von unserer Release-Website herunterladen. Lesen Sie weiter für Details zu dieser Version und teilen Sie bitte Ihr Feedback!

Bemerkenswerte Änderungen

Stack-Änderungen

Hervorgehobene Features

  • The ContextBridge exposeInMainWorld method can now expose non-object APIs. #26834
  • Upgraded from Node 12 to Node 14. #23249
  • Added a new webFrameMain API for accessing sub-frames of a WebContents instance from the main process. #25464
  • The default values of contextIsolation and worldSafeExecuteJavaScript are now true. #27949 #27502

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

Breaking Changes

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

API-Änderungen

  • Added webFrameMain API: The webFrameMain module can be used to look up frames across existing WebContents instances. This is the main process equivalent of the existing webFrame API. More information about this new API can be found here, and in our documentation.
  • app API-Änderungen:
    • Added non-localized serviceName to 'child-process-gone' / app.getAppMetrics(). #25975
    • Added new app.runningUnderRosettaTranslation property to detect when running under rosetta on Apple silicon. #26444
    • Added exitCode to render-process-gone details (app & webContents). #27677
  • BrowserWindow API-Änderungen:
    • Added BrowserWindow.isTabletMode() API. #25209
    • Added resized (Windows/macOS) and moved (Windows) events to BrowserWindow. #26216
    • Added new system-context-menu event to allow preventing and overriding the system context menu. #25795
    • Added win.setTopBrowserView() so that BrowserViews can be raised. #27713
    • Added webPreferences.preferredSizeMode to allow sizing views according to their document's minimum size. #25874
  • contextBridge API changes:
    • Allowed ContextBridge exposeInMainWorld method to expose non-object APIs. #26834
  • display API changes:
    • Added displayFrequency property to the Display object to allow getting information about the refresh rate on Windows. #26472
  • extensions API changes:
    • Added support for some chrome.management APIs. #25098
  • MenuItem API changes:
    • Added support for showing macOS share menu. #25629
  • net API changes:
    • Added a new credentials option for net.request(). #25284
    • Added net.online for detecting whether there is currently internet connection. #21004
  • powerMonitor API changes:
    • Added powerMonitor.onBatteryPower. #26494
    • Added fast user switching event to powerMonitor on macOS. #25321
  • session API-Änderungen:
    • allowFileAccess Option zur ses.loadExtension() API hinzugefügt. #27702
    • display-capture API für session.setPermissionRequestHandler hinzugefügt. #27696
    • disabledCipherSuites Option zu session.setSSLConfig hinzugefügt. #25818
    • Added extension-loaded, extension-unloaded, and extension-ready events to session. #25385
    • session.setSSLConfig() hinzugefügt, um SSL zu konfigurieren. #25461
    • Added support for explicitly specifying direct, auto_detect or system modes in session.setProxy(). #24937
    • Serial API Unterstützung hinzugefügt. #25237
    • APIs zum Aktivieren/Deaktivieren der Rechtschreibprüfung hinzugefügt. #26276
  • shell API-Änderungen:
    • Eine neue asynchrone shell.trashItem() API wurde hinzugefügt und ersetzt die synchrone shell.moveItemToTrash(). #25114
  • webContents API-Änderungen:
    • Added a small console hint to console to help debug renderer crashes. #25317
    • Added frame and webContents properties to the details object in webRequest handlers. #27334
    • Added webContents.forcefullyCrashRenderer() to forcefully terminate a renderer process to assist with recovering a hung renderer. #25580
    • Added setWindowOpenHandler API for renderer-created child windows, and deprecate new-window event. #24517
  • webFrame API-Änderungen:
    • Rechtschreibprüfungs API zum Renderer hinzugefügt. #25060

Entfernte/Veraltete Änderungen

Die folgenden APIs wurden entfernt oder sind jetzt veraltet:

  • Das Modul remote wurde veraltet. Es wird durch @electron/remote ersetzt. #25293
  • Veraltete crashReporter APIs entfernt. #26709
  • Links zur Electron-Website wurden aus dem Standard-"Hilfe"-Menü in gepackten Apps entfernt. #25831

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

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

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. Der vorläufige 13.0.0 Zeitplan legt Schlüsseldaten im Entwicklungslebenszyklus von Electron 13.0 fest. 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.

Electron 11.0.0

· Die Lesezeit beträgt 3 min

Electron 11.0.0 wurde veröffentlicht! Es enthält Upgrades auf Chromium 87, V8 8.7 und Node.js 12.18.3. Wir haben Unterstützung für Apple Silicon und allgemeine Verbesserungen hinzugefügt. Lesen Sie unten für weitere Details!


Das Electron-Team freut sich über die Veröffentlichung von Electron 11.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, Fixes und neuer Unterstützung für Apples M1-Hardware.

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

  • Unterstützung für Apple M1: Am 10. November kündigte Apple seine neuen M1-Chips an, die in der kommenden Hardware enthalten sein werden. Ab Electron 11 wird Electron separate Versionen von Electron für Intel Macs (x64) und Apples kommende M1 Hardware (arm64) liefern. Sie können hier mehr darüber erfahren, wie Sie Ihre Electron-App auf Apples M1-Hardware laufen lassen. #24545
  • V8 Absturznachricht und Standortinformation zum crashReport Parameter hinzugefügt. #24771
  • Verbesserte die Leistung des Versands von breiten Objekten über die Kontextbrücke. #24671

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

Breaking Changes

  • Experimentelle APIs entfernt: BrowserView.{fromId, fromWebContents, getAllViews} und id Eigenschaft von BrowserView. #23578

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

API-Änderungen

  • app.getApplicationInfoForProtocol() API hinzugefügt, die detaillierte Informationen über die App liefert, die ein bestimmtes Protokoll behandelt. #24112
  • app.createThumbnailFromPath() API hinzugefügt, die ein Vorschaubild einer Datei mit dem Pfad einer Datei und einer maximalen Vorschaugröße zurückgibt. #24802
  • Added webContents.forcefullyCrashRenderer() to forcefully terminate a renderer process to assist with recovering a hung renderer. #25756

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

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

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 to release new major versions of Electron with new versions of those components approximately quarterly. The tentative 12.0.0 schedule maps out key dates in the Electron 12.0 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.

Continued Work for Deprecation of remote Module

We started work to remove the remote module in Electron 9. We plan to remove the remote module itself in Electron 14.

Read and follow this issue for full plans and details for deprecation.

Final Step for Requiring Native Node Modules to be Context Aware or N-API (in Electron 12)

From Electron 6 onwards, we've been laying the groundwork to require native Node modules loaded in the renderer process to be either N-API or Context Aware. Enforcing this change allows for stronger security, faster performance, and reduced maintenance workload. The final step of this plan is to remove the ability to disable render process reuse in Electron 12.

Read and follow this issue for full details, including the proposed timeline.

Apple Silicon Unterstützung

· Die Lesezeit beträgt 3 min

Welche Schritte sind erforderlich, um deine Electron-App nach der Veröffentlichung der Apple Silicon-Hardware auf dieser zum Laufen zu bringen?


Mit der Veröffentlichung von Electron 11.0.0-beta.1 liefert das Electron-Team eine Version, welche auf der neuen Apple Silicon-Hardware laufen wird, welche Ende dieses Jahres veröffentlicht werden wird. Du kannst die neueste Beta-Version entweder mit Einbindung durch npm install electron@beta oder direkt von unserer Webseite herunterladen.

Wie funktioniert das?

Ab Electron 11 werden wir für Intel Macs und Apple Silicon Macs verschiedene Versionen liefern. Vor dieser Änderung hatten wir bereits zwei Artefakte, darwin-x64 und mas-x64, geliefert, wobei Letzteres speziell für die Veröffentlichung auf dem Mac App Store ausgerichtet war. Nun liefern wir zwei weitere Artefakte, darwin-arm64 und mas-arm64, welche die entsprechenden Equivalente für Apple Silicon sind.

Was mich ich tun?

Du musst zwei Versionen deiner App veröffentlichen: eine für x64 (Intel Mac) und eine für arm64 (Apple Silicon). Die gute Nachricht ist, dass electron-packager, electron-rebuild und electron-forge bereits die arm64 -Architektur unterstützen. Solange Du die aktuellsten Versionen dieser Pakete verwendest, sollte Deine App, sobald Du die Zielarchitektur arm64 benutzt, einwandfrei funktionieren.

wir werden in Zukunft ein Paket veröffentlichen, wo du deine arm64 und x64 Apps zu einer Datei "zusammenführen" kannst. Diese Datei währe aber gigantisch und daher nicht ideal zur Veröffentlichung.

Update: Dieses Paket ist ab sofort unter @electron/universal verfügbar. Sie können es verwenden, um zwei gepackte x64 und arm64 Apps zu einem einzigen Binärprogramm zusammenzuführen.

Mögliche Probleme

Native Module

Da Sie auf eine neue Architektur abzielen, müssen Sie mehrere Abhängigkeiten aktualisieren, die zu Build-Problemen führen können. Die minimale Version bestimmter Abhängigkeiten ist unten für Ihre Referenz enthalten.

AbhängigkeitVersionsvoraussetzung
Xcode>=12.2.0
node-gyp>=7.1.0
electron-rebuild>=1.12.0
electron-packager>=15.1.0

Aufgrund dieser Abhängigkeitsversionsanforderungen müssen Sie unter Umständen bestimmte native Module reparieren/aktualisieren. Eine Anmerkung ist, dass das Xcode Upgrade eine neue Version der macOS SDK einführen wird, was zu Build-Fehlern für Ihre nativen Module führen kann.

Wie kann ich es testen?

Derzeit laufen die Anwendungen von Apple Silicon nur auf der Apple Silicon Hardware, die zum Zeitpunkt des Schreibens dieses Blogeintrags nicht kommerziell verfügbar ist. Wenn Sie ein Entwickler-Transition Kit haben, können Sie Ihre Anwendung darauf testen. Andernfalls müssen Sie auf die Veröffentlichung der Apple Silicon Hardware warten, um zu testen, ob Ihre Anwendung funktioniert.

Was ist mit Rosetta 2?

Rosetta 2 ist Apples neueste Iteration ihrer Rosetta Technologie, mit der Sie x64 Intel-Anwendungen auf ihrer neuen arm64 Apple Silicon Hardware ausführen können. Obwohl wir glauben, dass x64 Electron-Apps unter Rosetta 2 laufen werden, gibt es einige wichtige Dinge zu beachten (und Gründe, warum Sie ein natives arm64-Programm erstellen sollten).

  • Die Leistung Ihrer App wird erheblich beeinträchtigt. Electron / V8 verwendet JIT Kompilierung für JavaScript und aufgrund der Funktionsweise von Rosetta werden Sie effektiv JIT zweimal laufen lassen (einmal in V8 und einmal in Rosetta).
  • Sie verlieren den Vorteil neuer Technologien in Apple Silicon, wie zum Beispiel die erhöhte Speicherseitengröße.
  • Haben wir erwähnt, dass die Leistung signifikant beeinträchtigt sein wird?

Community Discord Server und Hacktoberfest

· Die Lesezeit beträgt 3 min

Join us for community bonding and a month-long celebration of open-source.


Hacktoberfest and Discord banner

Electron Community Discord Launch

Electron’s Outreach Working Group is excited to announce the launch of our official community Discord server!

Warum ein neuer Discord Server?

In its early days as the backbone of the Atom text editor, community discussion on the Electron framework occurred in a single channel in Atom’s Slack workspace. As time passed and the two projects were increasingly decoupled, the relevance of the Atom workspace to the Electron project decreased, and maintainer participation in the Slack channel declined in the same manner.

Up until now, we had still been redirecting our broader community to the Atom Slack workspace, even though we’ve had many reports from folks who have had trouble receiving invitations, and few of our core maintainers were frequenting the channel.

We’re setting up this shiny new server to be a central discussion hub for the community where you can get the latest news on all things Electron.

Get in here!

So far, the server’s membership consists of a few maintainers who have been working together to set it up, but we’re so excited to chat with you all! Come ask for help, keep up to date with Electron releases, or just hang out with other developers. We’ve got a handy invite for you that’ll give you access to the server!

Hacktoberfest 2020

As a large and long-running open-source project, Electron wouldn’t have been nearly as successful without all the contributions from its community, from code submissions to bug reports to documentation changes, and much more. That’s why we believe in the importance of participating in Hacktoberfest to usher in a wider community of developers of all skill levels into the project.

Odds and ends

This year, we don’t have a wider project to give you all to work on, but we’d like to focus on opportunities to contribute across the Electron JavaScript ecosystem.

Look out for issues tagged hacktoberfest across our various repositories, including the main electron/electron repository, the electron/electronjs.org website, electron/fiddle, and electron-userland/electron-forge!

P.S. If you're feeling particularly adventurous, we also have a backlog of issues marked with help wanted tags if you're looking for more of a challenge.

Stuck? Komm mit uns chatten!

Moreover, it’s also no coincidence that the grand opening of our Discord server coincides with the largest celebration of open-source software of the year. Check out the #hacktoberfest channel to ask for help on your Hacktoberfest PR. In case you missed it, here's the invite link again!

Electron 10.0.0

· Die Lesezeit beträgt 5 min

Electron 10.0.0 wurde veröffentlicht! Es enthält Upgrades auf Chromium 85, V8 8.5 und Node.js 12.16. Wir haben einige neue API-Integrationen und Verbesserungen hinzugefügt. Lesen Sie unten für weitere Details!


Das Electron-Team freut sich über die Veröffentlichung von Electron 10.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.

In der Version Electron 10 haben wir auch eine Änderung an unseren Release-Notizen vorgenommen. Um es einfacher zu machen, was in Electron 10 brandneu ist und was sich zwischen Electron 10 und früheren Versionen geändert haben könnte, haben wir nun auch Änderungen enthalten, die an Electron 10 eingeführt wurden, aber auf frühere Versionen zurückportiert wurden. Wir hoffen, dass dies es Apps einfacher macht, neue Funktionen und Fehlerbehebungen beim Upgrade von Electron zu finden.

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

  • Added contents.getBackgroundThrottling() method and contents.backgroundThrottling property. [#21036]
  • Exposed the desktopCapturer module in the main process. #23548
  • Can now check if a given session is persistent by calling the ses.isPersistent() API. #22622
  • Resolve network issues that prevented RTC calls from being connected due to network IP address changes and ICE. (Chromium issue 1113227). #24998

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

Breaking Changes

  • Standardwert von enableRemoteModule auf false geändert. #22091
    • This is part of our plans for deprecating the remote module and moving it to userland. You can read and follow this issue that details our reasons for this and includes a proposed timeline for deprecation.
  • Changed the default value of app.allowRendererProcessReuse to true. #22336 (Also in Electron 9)
    • This will prevent loading of non-context-aware native modules in renderer processes.
    • You can read and follow this issue that details our reasons for this and includes a proposed timeline for deprecation.
  • Fixed the positioning of window buttons on macOS when the OS locale is set to an RTL language (like Arabic or Hebrew). Frameless window apps may have to account for this change while styling their windows. #22016

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

API-Änderungen

  • Session: Can now check if a given session is persistent by calling the ses.isPersistent() API. #22622
  • Contents: Added contents.getBackgroundThrottling() method and contents.backgroundThrottling property. #21036

Veraltete APIs

Die folgenden APIs sind jetzt veraltet oder entfernt:

  • Die veraltete currentlyLoggingPath Eigenschaft von netLog wurde entfernt. Zusätzlich gibt netLog.stopLogging den Pfad zur aufgezeichneten Log nicht mehr zurück. #22732
  • Deprecated uncompressed crash uploads in crashReporter. #23598

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

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

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 11.0.0 schedule maps out key dates in the Electron 11.0 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.

Continued Work for Deprecation of remote Module (in Electron 11)

We started work to remove the remote module in Electron 9 and we're continuing plans to remove the remote module. In Electron 11, we plan to continue refactor work for implementing WeakRef as we have done in Electron 10. Please read and follow this issue for full plans and details for deprecation.

Final Step for Requiring Native Node Modules to be Context Aware or N-API (in Electron 12)

Edit: Originally, this blog post stated that we would disable renderer process reuse in Electron 11. Disabling renderer process reuse has now been pushed to Electron 12.

From Electron 6 onwards, we've been laying the groundwork to require native Node modules loaded in the renderer process to be either N-API or Context Aware. Enforcing this change allows for stronger security, faster performance, and reduced maintenance workload. The final step of this plan is to remove the ability to disable render process reuse in Electron 12. Read this issue for full details including the proposed timeline.

Electron becomes an OpenJS Foundation Impact Project

· Eine Minute Lesezeit

At OpenJS World this morning, we announced that Electron has officially graduated from the OpenJS Foundation's incubation program, and is now an OpenJS Foundation Impact Project.

Electron entered incubation in December of 2019, at the last OpenJS Foundation global conference in Montreal. We're excited to take a larger role in the JavaScript community as an Impact Project, and continue our partnership with the OpenJS Foundation.


Learning more

You can read up on the foundation, its mission, and its members on the OpenJSF website. The OpenJS Foundation is host to a number of open source JavaScript projects including jQuery, Node.js, and webpack. It's supported by 30 corporate and end-user members, including GoDaddy, Google, IBM, Intel, Joyent, and Microsoft.

Electron is an open–source framework for building cross-platform desktop applications with web technologies. To learn more about the humans behind Electron and how they work together, take a look at our Governance page.

To get started with Electron itself, take a peek at our documentation.

Google Season of Docs

· Die Lesezeit beträgt 2 min

Electron ist stolz darauf, an der zweiten Auflage der Initiative "Season of Docs" von Google teilzunehmen die Mentoren von Open-Source-Organisationen mit technischen Autoren kombiniert, um die Projektdokumentation zu verbessern.


What is Season of Docs?

Season of Docs logo

Season of Docs is a program that fosters collaboration between technical writers and open source communities to the benefit of both parties. Open source maintainers utilize the writer's technical writing expertise to improve the structure and content of their documentation, while the technical writer is introduced to an open-source community under the guidance of its mentors. Learn more about it on the Google's Season of Docs website.

For our first time participating in the program, we'll be mentoring a single technical writer who will be working alongside Electron's Ecosystem Working Group to reshape large parts of our documentation. You can learn more about the timeline of the whole project here.

How do I sign up?

Are you interested in collaborating with us as a technical writer? First, get familiar with Google's tech writer guide for this year's program, and check out the two project idea drafts that we have prepared.

In order to be selected as Electron's technical writer for Season of Docs, candidates will need to apply on the Google Season of Docs website during the Technical Writer Application phase that is running from June 8 to July 9..

Your application should include a proposal, which is a written document that describes in detail what you plan to achieve on the Electron docs over the course of 3 months. This proposal can either develop on one of the starting points mentioned in our Project Idea doc, or can be something entirely new. Don't know where to start? You can check out last year's list of accepted proposals for inspiration.

Aside from the proposal, we'll also be looking at your background as a technical writer. Please include a copy of your resume with an emphasis on relevant writing experience, as well as technical writing samples (these samples could be existing documentation, tutorial, blog posts, etc.)

If you want to discuss project proposals, shoot us an email at season-of-docs@electronjs.org and we can chat from there!

References

Electron 9.0.0

· Die Lesezeit beträgt 4 min

Electron 9.0.0 wurde veröffentlicht! Es enthält Upgrades auf Chromium 83, V8 8.3und Node.js 12.14. Wir haben einige neue API-Integrationen für unsere Rechtschreibprüfung, den aktivierten PDF-Viewer und vieles mehr hinzugefügt!


Das Electron Team freut sich über die Veröffentlichung von Electron 9.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

  • Mehrere Verbesserungen der Rechtschreibprüfungs-Funktion. Weitere Details finden Sie in #22128 und #22368.
  • Verbesserte Fenster-Event-Handler Effizienz unter Linux. #23260.
  • PDF-Viewer aktivieren. #22131.

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

Breaking Changes

  • Veraltet-Warnung bei Verwendung von remote ohne enableRemoteModule: true. #21546
    • Dies ist der erste Schritt in unseren Plänen für die Entfernung des remote Moduls und der Wechsel zu userland. You can read and follow this issue that details our reasons for this and includes a proposed timeline for deprecation.
  • Standardmäßig app.enableRendererProcessReuse auf true gesetzt. #22336
    • 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.
  • Das Senden von nicht-JavaScript-Objekten über IPC wirft nun eine Exception aus. #21560
    • Dieses Verhalten wurde in Electron 8.0 veraltet. In Electron 9.0, the old serialization algorithm has been removed, and sending such non-serializable objects will now throw an "object could not be cloned" error.

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

API-Änderungen

  • shell API-Änderungen:
    • The shell.openItem API has been replaced with an asynchronous shell.openPath API. proposal
  • sessionAPI changes:
    • Added session.listWordsFromSpellCheckerDictionary API to list custom words in the dictionary. #22128
    • Added session.removeWordFromSpellCheckerDictionary API to remove custom words in the dictionary. #22368
    • Added session.serviceWorkerContext API to access basic service worker info and receive console logs from service workers. #22313
  • app API-Änderungen:
    • Added a new force parameter to app.focus() on macOS to allow apps to forcefully take focus. #23447
  • BrowserWindow API-Änderungen:
    • Added support for property access to some getter/setter pairs on BrowserWindow. #23208

Veraltete APIs

Die folgenden APIs sind jetzt veraltet oder entfernt:

  • shell.openItem API is now depreciated, and replaced with an asynchronous shell.openPath API.
  • <webview>.getWebContents, which was deprecated in Electron 8.0, is now removed.
  • webFrame.setLayoutZoomLevelLimits, which was deprecated in Electron 8.0, is now removed.

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

Electron 6.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.

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. Der vorläufige 10.0.0 Zeitplan legt Schlüsseldaten im Electron 10.0 Entwicklungsszyklus fest. 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.

Ändern Sie die Voreinstellung von contextIsolation von false auf true (Start in Electron 10)

Without contextIsolation, any code running in a renderer process can quite easily reach into Electron internals or an app's preload script. That code can then perform privileged actions that Electron wants to keep restricted.

Changing this default improves the default security of Electron apps, so that apps will need to deliberately opt in to the insecure behaviour. Electron will depreciate the current default of contextIsolation in Electron 10.0, and change to the new default (true) in Electron 12.0.

For more information on contextIsolation, how to enable it easily and it's security benefits please see our dedicated Context Isolation Document.

Bevorstehende Electron-Veröffentlichungen

· Eine Minute Lesezeit

Electron pausiert vorübergehend wichtige Veröffentlichungen


Was ist los?

Unser Haupt-Release-Kadenz-Zeitplan bewegt sich im Sperrschritt mit dem von Chromium, und das Chromium-Projekt hat vor kurzem die Entscheidung getroffen, seine Veröffentlichungen zu pausieren aufgrund von angepassten Arbeitszeiten. Das bedeutet, dass Electron für die Dauer von Chromiums veränderter Kadenz auch vorübergehend neue Hauptversionen anhalten wird.

Wir glauben, dass unsere beste Wahl darin besteht, Chromiums Fußstapfen zu folgen, und so wird sich das Electron-Team in der Zwischenzeit auf Vollzeit-Arbeit an Bugfixes, Sicherheit, Performance und Stabilität umstellen.

Wir wollen sicherstellen, dass sowohl unsere Betreuer als auch das Wohlergehen unserer Verbraucher in dieser Zeit Priorität haben. So freuen wir uns über Ihr Feedback und auf die Rückkehr zu unserem regulären Release-Zeitplan.

Für weitere Updates folgen Sie bitte unserem Twitter-Konto.

Bearbeitet (2020-03-30): Electron 9 stable zielt auf Chromium M83 und wird am 19. Mai 2020 freigegeben, als Antwort auf Chromiums Ankündigung das M82 stabile Datum zu überspringen und das M83 stabile Datum anzupassen.

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.