Zum Hauptteil springen

Electron 18.0.0

· Die Lesezeit beträgt 4 min

Electron 18.0.0 wurde veröffentlicht! Es enthält Upgrades auf Chromium 100, V8 10.0und Node.js 16.13.2. Lesen Sie unten für weitere Details!


Das Electron Team freut sich über die Veröffentlichung von Electron 18.0.0! You can install it with npm via npm install electron@latest or download it from our releases website. Lesen Sie weiter für Details zu dieser Veröffentlichung und teilen Sie bitte alle Rückmeldungen, die Sie haben!

Electron Release Kadenz Änderung

Ab Electron 15 wird Electron alle 8 Wochen eine neue stabile Version veröffentlichen. Lesen Sie die Details hier.

Zusätzlich hat Electron die unterstützte Version von den letzten drei Versionen auf die letzten vier Versionen bis Mai 2022 geändert. Lesen Sie unser Versionierungsdokument für detailliertere Informationen über Versionierung in Electron. Nach Mai 2022 werden wir wieder zu den neuesten drei Versionen zurückkehren.

Bemerkenswerte Änderungen

  • ses.setCodeCachePath() API zum Setzen des Code-Cache-Verzeichnisses hinzugefügt. #33286
  • Die alte BrowserWindowProxy basierte Implementierung von window.open entfernt. Dies entfernt auch die nativeWindowOpen Option von webPreferences. #29405
  • 'focus' und 'blur' Ereignisse zu WebContents hinzugefügt. #25873
  • Ersetzungsmenürollen auf macOS hinzugefügt: showSubstitutions, toggleSmartQuotes, toggleSmartDashes, toggleTextReplacement. #32024
  • Dem app.requestSingleInstanceLock()-Flow wurde ein first-instance-ack-Ereignis hinzugefügt, mit dem Benutzer nahtlos Daten von der ersten Instanz zur zweiten Instanz übertragen können. #31460
  • Unterstützung für weitere Farbformate in setBackgroundColor hinzugefügt. #33364

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

Google Summer of Code 2022

· Die Lesezeit beträgt 2 min

Das Elektron Team freut sich mitteilen zu können, dass wir dieses Jahr zum ersten Mal am Google Summer of Code teilnehmen werden!


Was ist Google Summer of Code?

Google Summer of Code (GSoC) ist ein jährliches Mentoring-Programm, das Open-Source-Software-Projekte mit potenziellen Mitwirkenden verbindet. Früher nur für Studierende geöffnet, können sich jetzt alle ab 18 Jahren bei GSoC registrieren.

Weitere Informationen finden Sie auf der Summer of Code Homepage.

How do I sign up?

Sind Sie an einer Zusammenarbeit mit Electronic interessiert? Wenn Sie ein neuer oder Anfänger von Open-Source-Mitwirkender sind, freuen wir uns über Ihre Bewerbung!

Um als Electron-Beitragender für Google Summer of Code ausgewählt zu werden, müssen Sie eine Bewerbung einreichen. Anwendungen werden am 4. April 2022 geöffnet und schließen am 19. April 2022. Du kannst den Updates für Google folgen: Summer of Code Anwendungsrichtlinien hier.

Möchtest du dich bewerben? Schauen Sie sich zuerst die fünf Projektideen an, die wir vorbereitet haben. Alle aufgeführten Ideen sind derzeit offen für Vorschläge. Wir sind auch bereit, neue Ideen zu akzeptieren, die nicht auf der vorgeschlagenen Projektliste stehen.

Ihre Bewerbung sollte beinhalten:

  • Ihr Vorschlag, das ist ein schriftliches Dokument, das genau beschreibt, was Sie im Laufe des Sommers zu erreichen gedenken.
  • Dein Hintergrund als Entwickler. Wenn Sie einen Lebenslauf haben, geben Sie bitte ein Exemplar an, sonst teilen Sie uns Ihre Erfahrungen mit einem Schwerpunkt auf relevante technische Erfahrung mit.

Hier finden Sie eine detaillierte Anleitung zum Einreichen im Rahmen Ihrer Electron-Anwendung.

Sie können auch den -offiziellen GSoC-Studenten/Mitwirkenden Leitfaden für wichtige Tipps zur Vorbereitung Ihres Vorschlags lesen.

Wenn du über Projektvorschläge diskutieren oder Fragen haben möchtest, schaue in unserem #gsoc-General Discord Channel aus!

References

Electron 17.0.0

· Die Lesezeit beträgt 4 min

Electron 17.0.0 wurde veröffentlicht! Es enthält Upgrades auf Chromium 98, V8 9.8 und Node.js 16.13.0. Lesen Sie unten für weitere Details!


Das Electron Team freut sich über die Veröffentlichung von Electron 17.0.0! You can install it with npm via npm install electron@latest or download it from our releases website. Lesen Sie weiter für Details zu dieser Veröffentlichung und teilen Sie bitte alle Rückmeldungen, die Sie haben!

Electron Release Kadenz Änderung

Ab Electron 15 wird Electron alle 8 Wochen eine neue stabile Version veröffentlichen. Lesen Sie die Details hier.

Zusätzlich hat Electron die unterstützte Version von den letzten drei Versionen auf die letzten vier Versionen bis Mai 2022 geändert. Lesen Sie unser Versionierungsdokument für detailliertere Informationen über Versionierung in Electron. Nach Mai 2022 werden wir wieder zu den neuesten drei Versionen zurückkehren.

Bemerkenswerte Änderungen

  • webContents.getMediaSourceId()hinzugefügt, kann mit getUserMedia verwendet werden, um einen Stream für einen WebContents zu erhalten. #31204
  • Veraltet webContents.getPrinters() und führt webContents.getPrintersAsync() ein. #31023
  • desktopCapturer.getSources ist jetzt nur im Hauptprozess verfügbar. #30720

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

Spectron Deprecation Notice

· Die Lesezeit beträgt 2 min

Spectron will be deprecated on February 1st, 2022.


Beginning in February 2022, Spectron will be officially deprecated by the Electron team.

Why Deprecate Spectron?

While Spectron has consistently put out new releases for each new version of Electron, the project has had very little maintenance and improvements for well over a year, and currently has no full-time maintainers. With the remote module moving outside of Electron core and into an external module in Electron 14, Spectron will require a major rewrite to continue working reliably.

After reviewing several available options for Spectron's continued maintenance, the Electron team has decided to deprecate Spectron in 2022.

Deprecation Timeline

The following is our planned deprecation timeline:

  • November 2021 - January 2022: The Electron team will continue to accept pull requests from the community.
  • January 2022: A final version of announcement warning about Spectron's deprecation will be released.
  • February 1, 2022: Spectron's repo will be marked as "archived". No more pull requests will be accepted.

Following February 1st, 2022, Electron will continue to leave the Spectron repo up indefinitely, so that others are welcome to fork or use the existing code for their projects. We hope this will help provide a longer transition to any projects that may still depend on Spectron.

Alternatives to Spectron

If you're currently using Spectron in your project and would like to migrate to an alternative testing solution, you can read our guide for automated testing here.

We currently have several other recommended alternatives to Spectron, including Playwright and WebDriverIO. Official tutorials for each option can be found in our Automated Testing documentation.

What's Next

We here on the Electron team appreciate you using Spectron and Electron. We understand that many of you depend on Spectron for testing your apps, and we want to make this transition as painless for you as possible. Thank you for choosing Electron!

Electron 16.0.0

· Die Lesezeit beträgt 4 min

Electron 16.0.0 wurde veröffentlicht! Es enthält Upgrades auf Chromium 96, V8 9.6und Node.js 16.9.1. Lesen Sie unten für weitere Details!


Das Electron Team freut sich über die Veröffentlichung von Electron 16.0.0! You can install it with npm via npm install electron@latest or download it from our releases website. Lesen Sie weiter für Details zu dieser Veröffentlichung und teilen Sie bitte alle Rückmeldungen, die Sie haben!

Electron Release Kadenz Änderung

Ab Electron 15 wird Electron alle 8 Wochen eine neue stabile Version veröffentlichen. Lesen Sie die Details hier.

Zusätzlich hat Electron die unterstützte Version von den letzten drei Versionen auf die letzten vier Versionen bis Mai 2022 geändert. Lesen Sie unser Versionierungsdokument für detailliertere Informationen über Versionierung in Electron. Nach Mai 2022 werden wir wieder zu den neuesten drei Versionen zurückkehren.

Bemerkenswerte Änderungen

  • Unterstützt nun die WebHID API. #30213
  • Datenparameter zu app.requestSingleInstanceLock hinzufügen, um Daten zwischen Instanzen zu teilen. #30891
  • Übergeben Sie securityOrigin an Medienberechtigungen Request-Handler. #31357
  • commandLine.removeSwitch hinzugefügt. #30933

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

Ein ruhiger Ort (Dez'21)

· Die Lesezeit beträgt 2 min

Das Electron-Projekt wird für den Monat Dezember 2021 pausieren und dann im Januar 2022 in voller Geschwindigkeit zurückkehren.

über GIPHY


Was im Dezember gleich sein wird

  1. Bei Bedarf werden Tages- und andere wichtige sicherheitsrelevante Veröffentlichungen veröffentlicht. Sicherheitsvorfälle sollten über SECURITY.md gemeldet werden.
  2. Code of Conduct Berichte und Moderation werden fortgesetzt.

Was wird im Dezember anders sein

  1. Keine neuen Beta oder Stable Releases im Dezember. Keine nächtlichen Veröffentlichungen für die letzten beiden Dezemberwochen.
  2. Mit wenigen Ausnahmen, keine Pull-Request Reviews oder Merges.
  3. Keine Updates für Issue-Tracker auf Repositories.
  4. Keine Discord Debugging-Hilfe von Betreuern.
  5. Keine Updates für Inhalte der sozialen Medien.

Warum passiert das?

Kurz gesagt, während die Betreuer zufrieden sind und sich mit dem Projekt beschäftigen, ist DIE WELT MÜDE. Der Dezember ist ein ruhiger Monat für die meisten Firmen, deshalb wollen wir unseren Betreuern die Möglichkeit geben, sich wieder aufzuladen. Wir ermutigen andere Projekte, ähnliche Maßnahmen in Erwägung zu ziehen.

Sollte ich über die Zukunft von Electron besorgt sein?

Nein. Wir sind in der Lage, diesen Schritt zu gehen, weil das Projekt in guter Form ist. Alle freuen sich auf 2022, und wir erwarten gute Dinge!

Electron 15.0.0

· Die Lesezeit beträgt 4 min

Electron 15.0.0 wurde veröffentlicht! Es enthält Upgrades auf Chromium 94, V8 9.4und Node.js 16.5.0. Wir haben API-Updates zu window.open, bug fixes und allgemeinen Verbesserungen hinzugefügt. Lesen Sie unten für weitere Details!


Das Electron Team freut sich über die Veröffentlichung von Electron 15.0.0! You can install it with npm via npm install electron@latest or download it from our releases website. Lesen Sie weiter für Details zu dieser Veröffentlichung und teilen Sie bitte alle Rückmeldungen, die Sie haben!

Electron Release Kadenz Änderung

Ab Electron 15 wird Electron alle 8 Wochen eine neue stabile Version veröffentlichen. Lesen Sie die Details hier.

Zusätzlich wird Electron unterstützte Versionen von den neuesten drei Versionen auf die neuesten vier Versionen bis Mai 2022 umstellen. Lesen Sie unser Versionierungsdokument für detailliertere Informationen über Versionierung in Electron.

Bemerkenswerte Änderungen

  • nativeWindowOpen: true ist nicht mehr experimentell und ist nun die Standardeinstellung.
  • safeStorage string-Verschlüsselungs-API hinzugefügt. #30430
  • 'frame-created' Ereignis zu WebContents hinzugefügt, welches abgibt, wenn ein Frame auf der Seite erstellt wird. #30801
  • edge Info zum BrowserWindow will-resize Event hinzugefügt. #29199

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

Electron 14.0.0

· Die Lesezeit beträgt 7 min

Electron 14.0.0 wurde veröffentlicht! Es enthält Upgrades auf Chromium 93 und V8 9.3. Wir haben mehrere API-Updates, Bugfixes und allgemeine Verbesserungen hinzugefügt. Lesen Sie unten für weitere Details!


Das Electron Team freut sich über die Veröffentlichung von Electron 14.0.0! You can install it with npm via npm install electron@latest or download it from our releases website. Lesen Sie weiter für Details zu diesem Release und teilen Sie bitte Ihr Feedback!

Electron Release Kadenz Änderung

Ab September 2021 mit Electron 15 wird Electron alle 8 Wochen eine neue große stabile Version veröffentlichen. Lesen Sie die Details hier. Electron 15 will begin beta on September 1, 2021 and stable release will be on September 21, 2021. Sie finden die öffentliche Timeline von Electron hier. Additionally, Electron will be changing supported versions from latest three versions to latest four versions until May 2022. See see our versioning document for more detailed information about versioning in Electron.

Bemerkenswerte Änderungen

  • Standard geändert: nativeWindowOpen wird nun standardmäßig auf true gesetzt. (see docs)
  • Unterfenster erben nicht mehr die Optionen des BrowserWindow Konstruktors von ihren Eltern. #28550
  • Added new session.storagePath API to get the path on disk for session-specific data. #28665
  • Added process.contextId used by @electron/remote. #28007
  • Unterstützung für experimentelle Cookie-Verschlüsselung hinter einer Electron Fuse hinzugefügt. #29492

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

WebView2 and Electron

· Die Lesezeit beträgt 6 min

Over the past weeks, we’ve received several questions about the differences between the new WebView2 and Electron.

Both teams have the expressed goal of making web-tech the best it can be on the Desktop, and a shared comprehensive comparison is being discussed.

Electron and WebView2 are fast-moving and constantly evolving projects. We have assembled a brief snapshot of similarities and differences between Electron and WebView2 as they exist today.


Architecture Overview

Electron and WebView2 both build from the Chromium source for rendering web content. Strictly speaking, WebView2 builds from the Edge source, but Edge is built using a fork of the Chromium source. Electron does not share any DLLs with Chrome. WebView2 binaries hard link against Edge (Stable channel as of Edge 90), so they share disk and some working set. See Evergreen distribution mode for more info.

Electron apps always bundle and distribute the exact version of Electron with which they were developed. WebView2 has two options in distribution. You can bundle the exact WebView2 library your application was developed with, or you can use a shared-runtime version that may already be present on the system. WebView2 provides tools for each approach, including a bootstrapping installer in case the shared runtime is missing. WebView2 is shipped inbox starting with Windows 11.

Applications that bundle their frameworks are responsible for updating those frameworks, including minor security releases. For apps using the shared WebView2 runtime, WebView2 has its own updater, similar to Chrome or Edge, that runs independent of your application. Updating the application's code or any of its other dependencies is still a responsibility for the developer, same as with Electron. Neither Electron nor WebView2 is managed by Windows Update.

Both Electron and WebView2 inherit Chromium’s multi-process architecture - namely, a single main process that communicates with one-or-more renderer processes. These processes are entirely separate from other applications running on the system. Every Electron application is a separate process tree, containing a root browser-process, some utility processes, and zero or more render processes. WebView2 apps that use the same user data folder (like a suite of apps would do), share non-renderer processes. WebView2 apps using different data folders do not share processes.

  • ElectronJS Process Model:

    ElectronJS Process Model Diagram

  • WebView2 Based Application Process Model:

    WebView2 Process Model Diagram

Read more about WebView2’s process model and Electron’s process model here.

Electron provides APIs for common desktop application needs such as menus, file system access, notifications, and more. WebView2 is a component meant to be integrated into an application framework such as WinForms, WPF, WinUI, or Win32. WebView2 does not provide operating system APIs outside the web standard via JavaScript.

Node.js is integrated into Electron. Electron applications may use any Node.js API, module, or node-native-addon from the renderer and main processes. A WebView2 application does not assume which language or framework the rest of your application is written in. Your JavaScript code must proxy any operating system access through the application-host process.

Electron strives to maintain compatibility with the web API, including APIs developed from the Fugu Project. We have a snapshot of Electron’s Fugu API compatibility. WebView2 maintains a similar list of API differences from Edge.

Electron has a configurable security model for web content, from full-access to full-sandbox. WebView2 content is always sandboxed. Electron has comprehensive security documentation on choosing your security model. WebView2 also has security best practices.

The Electron source is maintained and available on GitHub. Applications can modify can build their own brands of Electron. The WebView2 source is not available on GitHub.

Quick Summary:

ElectronWebView2
Build DependencyChromiumEdge
Source Available on GitHubJaNein
Shares Edge/Chrome DLLsNeinYes (as of Edge 90)
Shared Runtime Between ApplicationsNeinOptional
Application APIsJaNein
Node.jsJaNein
SandboxOptionalImmer
Requires an Application FrameworkNeinJa
Unterstützte PlattformenMac, Win, LinuxWin (Mac/Linux planned)
Process Sharing Between AppsNieOptional
Framework-Updates verwaltet vonAnwendungWebView2

Performance Discussion

When it comes to rendering your web content, we expect little performance difference between Electron, WebView2, and any other Chromium-based renderer. We created scaffolding for apps built using Electron, C++ + WebView2, and C# + WebView2 for those interested to investigate potential performance differences.

There are a few differences that come into play outside of rendering web content, and folks from Electron, WebView2, Edge, and others have expressed interest in working on a detailed comparison including PWAs.

Inter-Process Communication (IPC)

There is one difference we want to highlight immediately, as we believe it is often a performance consideration in Electron apps.

In Chromium, the browser process acts as an IPC broker between sandboxed renderers and the rest of the system. While Electron allows unsandboxed render processes, many apps choose to enable the sandbox for added security. WebView2 always has the sandbox enabled, so for most Electron and WebView2 apps IPC can impact overall performance.

Even though Electron and WebView2 have a similar process models, the underlying IPC differs. Communicating between JavaScript and C++ or C# requires marshalling, most commonly to a JSON string. JSON serialization/parsing is an expensive operation, and IPC-bottlenecks can negatively impact performance. Starting with Edge 93, WV2 will use CBOR for network events.

Electron supports direct IPC between any two processes via the MessagePorts API, which utilize the structured clone algorithm. Applications which leverage this can avoid paying the JSON-serialization tax when sending objects between processes.

Zusammenfassung

Electron and WebView2 have a number of differences, but don't expect much difference with respect to how they perform rendering web content. Ultimately, an app’s architecture and JavaScript libraries/frameworks have a larger impact on memory and performance than anything else because Chromium is Chromium regardless of where it is running.

Special thanks to the WebView2 team for reviewing this post, and ensuring we have an up-to-date view of the WebView2 architecture. They welcome any feedback on the project.

Neue Electron Veröffentlichungs-Kadenz

· Die Lesezeit beträgt 6 min

Ab September 2021 wird Electron alle 8 Wochen eine neue stabile Version veröffentlichen.


In 2019, Electron moved to a 12 week release cycle to match Chromium's 6 week release cycle. Recently, both Chrome and Microsoft announced changes that made us reconsider Electron's current release cadence:

  1. Chromium plans to release a new milestone every 4 weeks, starting with Chrome 94 on September 21st, 2021. This release cadence also adds a new Extended Stable option every 8 weeks, which will contain all updated security fixes.

  2. The Microsoft Store will require Chromium-based apps to be no older than within 2 major versions. As an example, if the latest released major version of Chromium is 85, any browser based on Chromium must be on at least Chromium version 83 or higher. This rule includes Electron apps.

Beginning in September 2021, Electron will release a new major stable version every 8 weeks, to match Chromium's 8 week Extended Stable releases.

Our first release with Chromium Extended Stable will be Electron 15 on September 21st, 2021.

Knowing that a release cadence change will impact other downstream applications, we wanted to let our developer community know as soon as possible. Read on for more details about our 2021 release schedule.

Electron 15: Temporäre Alpha

Given that our original Electron 15 release targeted a non-Extended Stable version (Chromium's Extended Stable versions are based on their even-numbered versions), we needed to change our original target release date. However, an Electron app must use the most recent 2 major versions of Chromium to be accepted to the Microsoft Store, which made waiting for two Chromium versions untenable.

With these two requirements, our team faced a timing dilemma. Moving Electron 15 to include Chromium M94 would allow app developers to get on the very first Extended Stable version of Chromium; however, it would also shorten the beta-to-stable cycle to only 3 weeks.

To help with this switchover, Electron will offer a temporary alpha build, only for the Electron 15 release. This alpha build will allow developers more time to test and plan for an Electron 15 release, with a more stable build than our current nightlies.

The alpha channel build will ship for Electron 15 on July 20th, 2021. It will transition to a beta release on September 1st, 2021 with a stable release target of September 21st, 2021. Subsequent Electron releases will not have alpha releases.

2021 Plan für Veröffentlichungen

Unten ist unser aktueller Release-Zeitplan für 2021:

ElectronChromeAlpha VeröffentlichungenBeta-VeröffentlichungenStabile VeröffentlichungenStabiler Zyklus (Wochen)
E13M91-2021-Mar-052021-May-2512
E14M93-2021-May-262021-Aug-3114
E15M942021-Jul-202021-Sep-012021-Sep-219 (enthält Alpha)
E16M96-2021-Sep-222021-Nov-168
E17M98-2021-Nov-172022-Feb-0111

Adding the alpha channel extends the development time before Electron 15's launch from 3 weeks to 9 weeks - closer to our new 8 week cycle, while still meeting the requirements for Windows Store submission.

To further help app developers, for the remainder of 2021 until May 2022, we will also be extending our supported versions policy from the latest 3 versions to the latest 4 versions of Electron. That means that even if you can't immediately alter your upgrade schedule, older versions of Electron will still receive security updates and fixes.

Bedenken ausräumen

There's a reason we're publishing this post well before this release cycle change is scheduled. We know that a faster release cycle will have a real impact on Electron apps - some of which may already find our major release cadence aggressive.

Wir haben versucht, die folgenden Anliegen zu berücksichtigen:

❓ Warum überhaupt diese Änderung vornehmen? Warum nicht die 12 Wochen Kadenz behalten?

To deliver the most up-to-date versions of Chromium in Electron, our schedule needs to track theirs. More information around Chromium's release cycle can be found here.

Additionally, the current 12 week release cadence would be untenable with the Microsoft Store's new submission requirements. Even apps on the latest stable version of Electron would experience a roughly two week period where their app may be rejected under the new security requirements.

Every new Chromium release contains new features, bug fixes / security fixes, and V8 improvements. We want you, as app developers, to have these changes in a timely manner, so our stable release dates will continue to match every other Chromium stable release. As an app developer, you'll have access to new Chromium and V8 features and fixes sooner than before.

❓ The existing 12 week release schedule already moves quickly. What steps are the team taking to make upgrading easier?

One advantage of more frequent releases is having smaller releases. We understand that upgrading Electron's major versions can be difficult. We hope that smaller releases will introduce fewer major Chromium and Node changes, as well as fewer breaking changes, per release.

❓ Wird es für zukünftige Electron-Versionen eine Alpha-Version geben?

Es gibt derzeit keine Pläne, eine dauerhafte Alpha-Version zu unterstützen. Diese Alpha ist nur für Electron 15 gedacht, um den Entwicklern bei der Aktualisierung in der verkürzten Release-Periode zu helfen.

❓ Wird Electron die Anzahl der unterstützten Versionen verlängern?

We will be extending our supported version policy from the latest three versions to the latest four versions of Electron until May 2022, with the release of Electron 19. After Electron 19 is released, we'll return to supporting the latest three major versions, as well as the beta and nightly releases.

E13 (Mai'21)E14 (Aug'21)E15 (Sep'21)E16 (Nov'21)E17 (Feb'22)E18 (Mär'22)E19 (Mai'22)
13.x.y14.x.y15.x.y16.x.y17.x.y18.x.y19.x.y
12.x.y13.x.y14.x.y15.x.y16.x.y17.x.y18.x.y
11.x.y12.x.y13.x.y14.x.y15.x.y16.x.y17.x.y
----12.x.y13.x.y14.x.y15.x.y--

Fragen?

📨 Wenn du Fragen oder Bedenken hast, schreibe uns bitte eine E-Mail an info@electronjs.org oder treten sie unserem Discord bei. We know this is a change that will impact many apps and developers, and your feedback is very important to us. Wir möchten gern Ihre Meinung hören!