Перейти к основному содержанию

Electron becomes an OpenJS Foundation Impact Project

· Одна мин. чтения

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

· 3 мин. прочитано

Electron имеет честь участвовать во второй версии инициативы "Google's Season of Docs", которая соединяет менторов из open source организаций с техническими писателями для улучшения документации проектов.


Что такое "Season of Docs"?

Season of Docs logo

"Season of Docs" это программа, которая способствует сотрудничеству между техническими писателями и сообществами с открытым исходным кодом в интересах обеих сторон. 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.

Как зарегистрироваться?

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!

Ссылки

Electron 9.0.0

· 5 мин. прочитано

Electron 9.0.0 вышел! Он включает обновления Chromium 83, V8 8.3 и Node.js 12.14. We've added several new API integrations for our spellchecker feature, enabled PDF viewer, and much more!


Команда Electron рада объявить о выпуске Electron 9.0.0! You can install it with npm via npm install electron@latest or download it from our releases website. The release is packed with upgrades, fixes, and new features. We can't wait to see what you build with them! Continue reading for details about this release, and please share any feedback you have!

Notable Changes

  • Multiple improvements to the spellchecker feature. See more details in #22128 and #22368.
  • Improved window events handler efficiency on Linux. #23260.
  • Enable PDF viewer. #22131.

See the 9.0.0 release notes for a full list of new features and changes.

Будущие релизы Electron

· Одна мин. чтения

Electron временно приостанавливает основные релизы


Что происходит?

Наш график выхода основных версий будет приостановлен вместе с Chromium, так как проект Chromium принял решение о приостановке своих релизов из-за скорректированных графиков работы. Это значит, что на время приостановки Chromium, Electron также приостановит выпуск новых основных версий.

Мы считаем, что наш лучший выбор — это следовать по стопам Chromium, и так в то же время команда Electron переместится на полную работу по исправлению ошибок, безопасности, производительности и стабильности.

Мы хотим, чтобы благополучие как наших сопровождающих, так и наших потребителей было в приоритете в это время, поэтому мы приветствуем ваши отзывы и с нетерпением ждем возвращения к нашему регулярному графику выпуска.

Пожалуйста, подпишитесь на наш Twitter аккаунт для получения обновлений.

Дополнение (2020-03-30): Electron 9 будет использовать Chromium M83 и будет выпущен 19 Мая, 2020, в ответ на Объявление Chromium'а о пропуске стабильной даты M82 и изменении даты для M83.

Electron 8.0.0

· 7 мин. прочитано

Electron 8.0.0 вышел! Он включает обновления Chromium 80, V8 8.0 и Node.js 12.13.0. Мы добавили встроенную в Chrome проверку орфографии и многое другое!


Команда Electron рада объявить о выпуске Electron 8.0.0! You can install it with npm via npm install electron@latest or download it from our releases website. The release is packed with upgrades, fixes, and new features. We can't wait to see what you build with them! Continue reading for details about this release, and please share any feedback you have!

Notable Changes

  • Implemented usage of Chrome's built-in spellchecker feature. See more details in #20692 and #21266.
  • IPC communication now uses v8's Structured Clone Algorithm. This is faster, more featureful, and less surprising than the existing logic, and brings about a 2x performance boost for large buffers and complex objects. Задержка для небольших сообщений немного изменена. See more details in #20214.

See the 8.0.0 release notes for a full list of new features and changes.

Electron joins the OpenJS Foundation

· 2 мин. прочитано

At Node+JS Interactive in Montreal, the OpenJS Foundation announced that it accepted Electron into the Foundation's incubation program. The Foundation is committed to supporting the healthy growth of the JavaScript ecosystem and web technologies by providing a neutral organization to host and sustain projects, as well as collaboratively fund activities for the benefit of the community at large.

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.

This is an exciting move for Electron, and we see it as a next step in our evolution as an open-source project.


What this means for developers

Electron joining the OpenJS Foundation does not change how Electron is made, released, or used — and does not directly affect developers building applications with Electron. Even though Electron was originally created at GitHub in 2013, it is currently maintained by a number of organizations and individuals. In 2019, Electron codified its governance structure and invested heavily into formalizing how decisions affecting the entire project are made. We believe that having multiple organizations and developers investing in and collaborating on Electron makes the project stronger.

Lifting Electron up from being owned by a single corporate entity and moving it into a neutral foundation focused on supporting the web and JavaScript ecosystem is a natural next step as we mature as an open-source project.

Learning more

You can read up on the foundation, its mission, and its members on the OpenJSF website. For more information and quotes about the acceptance of Electron into the OpenJSF incubation program, check out the official press release. 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.

Chromium WebAudio Vulnerability Fix (CVE-2019-13720)

· 2 мин. прочитано

A High severity vulnerability has been discovered in Chrome which affects all software based on Chromium, including Electron.

This vulnerability has been assigned CVE-2019-13720. Подробнее об этом можно прочитать в блоге Chrome.

Please note that Chrome has reports of this vulnerability being used in the wild so it is strongly recommended you upgrade Electron as soon as possible.


Scope

This affects any Electron application that may run third-party or untrusted JavaScript.

Mitigation

Affected apps should upgrade to a patched version of Electron.

We've published new versions of Electron which include fixes for this vulnerability:

Electron 7.0.1 automatically included the fix from upstream, before the announcement was made. Electron 8 is similarly unaffected. The vulnerability did not exist in Electron 5, so that version is also unaffected.

Further Information

This vulnerability was discovered by Anton Ivanov and Alexey Kulaev at Kaspersky Labs and reported to the Chrome team. Запись в блоге Chrome находится здесь.

Чтобы узнать больше о лучших методах обеспечения безопасности приложений Electron, смотрите наш учебник по безопасности.

Please file a GitHub Security Advisory if you wish to report a vulnerability in Electron.

Electron 7.0.0

· 4 мин. прочитано

Electron 7.0.0 вышел! В него включены обновления до Chromium 78, V8 7.8 и Node.js 12.8.1. Мы добавили Windows на Arm 64, быстрый метод IPC, новую родную тему API и многое другое!


Команда Electron рада объявить о выпуске Electron 7.0.0! You can install it with npm via npm install electron@latest or download it from our releases website. The release is packed with upgrades, fixes, and new features. We can't wait to see what you build with them! Continue reading for details about this release, and please share any feedback you have!

Notable Changes

  • Stack Upgrades:

    StackVersion in Electron 6Version in Electron 7What's New
    Chromium76.0.3809.14678.0.3905.177, 78
    V87.67.87.7, 7.8
    Node.js12.4.012.8.112.5, 12.6, 12.7, 12.8, 12.8.1
  • Added Windows on Arm (64 bit) release. #18591, #20112

  • Added ipcRenderer.invoke() and ipcMain.handle() for asynchronous request/response-style IPC. These are strongly recommended over the remote module. See this "Electron’s ‘remote’ module considered harmful" blog post for more information. #18449

  • Added nativeTheme API to read and respond to changes in the OS's theme and color scheme. #19758, #20486

  • Switched to a new TypeScript Definitions generator. The resulting definitions are more precise; so if your TypeScript build fails, this is the likely cause. #18103

See the 7.0.0 release notes for a longer list of changes.

Критические изменения

More information about these and future changes can be found on the Planned Breaking Changes page.

  • Removed deprecated APIs:
    • Callback-based versions of functions that now use Promises. #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() no longer allows filtering the cleared cache entries. #17970
  • Native interfaces on macOS (menus, dialogs, etc.) now automatically match the dark mode setting on the user's machine. #19226
  • Updated the electron module to use @electron/get. The minimum supported node version is now Node 8. #18413
  • The file electron.asar no longer exists. Any packaging scripts that depend on its existence should be updated. #18577

End of Support for 4.x.y

Electron 4.x.y has reached end-of-support as per the project's support policy. Developers and applications are encouraged to upgrade to a newer version of Electron.

Программа отзывов

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.

Что дальше

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

Electron 6.0.0

· 6 мин. прочитано

Команда Electron рада объявить о выпуске Electron 6.0.0! You can install it with npm via npm install electron@latest or download it from our releases website. The release is packed with upgrades, fixes, and new features. We can't wait to see what you build with them! Continue reading for details about this release, and please share any feedback you have!


What's New

Today marks a first for the Electron project: this is the first time we've made a stable Electron release on the same day as the corresponding Chrome stable release! 🎉

Much of Electron's functionality is provided by the core components of Chromium, Node.js, and V8. Electron keeps up-to-date with these projects to provide our users with new JavaScript features, performance improvements, and security fixes. Each of these packages has a major version bump in Electron 6:

This release also includes improvements to Electron's APIs. The release notes have a more complete list, but here are the highlights:

Promisification / Промисификация

Electron 6.0 continues the modernization initiative started in 5.0 to improve Promise support.

These functions now return Promises and still support older callback-based invocation:

  • contentTracing.getCategories() #16583
  • contentTracing.getCategories() #16583
  • contentTracing.getTraceBufferUsage() #16600
  • contents.executeJavaScript() #17312
  • cookies.flushStore() #16464
  • cookies.get() #16464
  • cookies.remove() #16464
  • cookies.set() #16464
  • dialog.showCertificateTrustDialog() #17181
  • inAppPurchase.getProducts() #17355
  • inAppPurchase.purchaseProduct()#17355
  • netLog.stopLogging() #16862
  • session.clearAuthCache() #17259
  • session.clearCache() #17185
  • session.clearHostResolverCache() #17229
  • session.clearStorageData() #17249
  • session.getBlobData() #17303
  • session.getCacheSize() #17185
  • session.resolveProxy() #17222
  • session.setProxy() #17222
  • webContents.hasServiceWorker() #16535
  • webContents.printToPDF() #16795
  • webContents.savePage() #16742
  • webFrame.executeJavaScript() #17312
  • webFrame.executeJavaScriptInIsolatedWorld() #17312
  • webviewTag.executeJavaScript() #17312

These functions now have two forms, synchronous and Promise-based asynchronous:

  • dialog.showMessageBox()/dialog.showMessageBoxSync() #17298
  • dialog.showOpenDialog()/dialog.showOpenDialogSync() #16973
  • dialog.showSaveDialog()/dialog.showSaveDialogSync() #17054

These functions now return Promises:

Electron Helper (Renderer).app, Electron Helper (GPU).app and Electron Helper (Plugin).app

In order to enable the hardened runtime, which restricts things like writable-executable memory and loading code signed by a different Team ID, special code signing entitlements needed to be granted to the Helper.

To keep these entitlements scoped to the process types that require them, Chromium added three new variants of the Helper app: one for renderers (Electron Helper (Renderer).app), one for the GPU process (Electron Helper (GPU).app) and one for plugins (Electron Helper (Plugin).app).

Folks using electron-osx-sign to codesign their Electron app shouldn't have to make any changes to their build logic. If you're codesigning your app with custom scripts, you should ensure that the three new Helper applications are correctly codesigned.

In order to package your application correctly with these new helpers you need to be using electron-packager@14.0.4 or higher. If you are using electron-builder you should follow this issue to track support for these new helpers.

Критические изменения

  • This release begins laying the groundwork for a future requirement that native Node modules loaded in the renderer process be either N-API or Context Aware. The reasons for this change are faster performance, stronger security, and reduced maintenance workload. Read the full details including the proposed timeline in this issue. This change is expected to be completed in Electron v11.

  • net.IncomingMessage headers have changed slightly to more closely match Node.js behavior, particularly with the value of set-cookie and how duplicate headers are handled. #17517.

  • shell.showItemInFolder() now returns void and is an asynchronous call. #17121

  • Apps must now explicitly set a log path by calling the new function app.setAppLogPath() before using app.getPath('log'). #17841

End of Support for 3.x.y

Per our support policy, 3.x.y has reached end of life. Developers and applications are encouraged to upgrade to a newer version of Electron.

Программа отзывов

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.

Что дальше

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

New Electron Release Cadence

· 3 мин. прочитано

::info ⚡ Обновление (2021-07-14): Мы продвигаемся еще быстрее!

В 3 квартале 2021 года команда Chrome увеличила частоту выпуска с каждых 6 недель до каждых 4 недель. Релизы Electron последовали этому примеру. Пожалуйста, прочитайте обновленную 8-недельную каденцию сообщении в блоге для получения более актуальной информации!

:::

🎉 Electron собирается выпускать новую стабильную версию каждые 12 недель! 🎉


⚡️ Вау, это быстро! Но зачем?

Проще говоря, Chromium не останавливает доставку, так что Electron тоже не собирается замедляться.

Релизы Chromium выпускаются в соответствии с 6-недельным графиком. 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.

🚀 Почему каждые 12 недель?

Каждые 6 недель выходит новый выпуск Chromium с новыми функциями, исправлениями ошибок/исправлениями безопасности и улучшениями V8. Пользователи Electron громко и ясно заявляли о своевременном внесении этих изменений, поэтому мы скорректировали даты выпуска стабильной версии, чтобы она соответствовала всем остальным стабильным выпускам Chromium. Во-первых, Electron v6.0.0 будет включать M76, и его стабильный выпуск запланирован на July 30, 2019, в тот же день выпуска, что и Chromium M76.

Что это значит для меня и моего приложения Electron?

Вы получите доступ к новым функциям и исправлениям Chromium и V8 раньше, чем раньше. Главное, вы также будете знать когда грядут эти новые изменения, так что вы сможете планировать с большей информацией, чем раньше.

Команда Electron продолжит поддерживать последние три основные версии. Например, когда v6.0.0 станет стабильной 30 июля 2019 года, мы будем поддерживать v6.x, v5.x и v4.x, в то время как v3.x достигнет End-Of-Life.

💬 Программа отзывов

Пожалуйста, рассмотрите возможность присоединиться к нашей Программе отзывов о приложениях чтобы помочь нам с тестированием наших бета-версий и стабилизацией. 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.

Краткая история релизов Electron

Решения относительно стабильных выпусков до v3.0.0 не следовали графику. В проект добавлены внутренние расписания v3.0.0 и v4.0.0. Ранее в этом году мы решили опубликовать наш стабильный релиз впервые в Electron v5.0.0. Объявление о датах выхода нашей стабильной версии было воспринято в целом положительно, и мы рады продолжить делать это для будущих выпусков.

Чтобы лучше оптимизировать эти усилия, связанные с обновлением, наши обновления и релизы рабочой группы были созданы в рамках нашей системы управление. Они позволили нам лучше расставить приоритеты и делегировать эту работу, что, как мы надеемся, станет более очевидным с каждым последующим выпуском.

Вот где наша новая каденция поставит нас по сравнению с каденцией Chromium:

line graph comparing Electron versus Chromium versions

📨 Если у вас есть вопросы, пожалуйста, напишите нам на info@electronjs.org.