ΠΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½Π° Π²Π΅ΡΡΠΈΡ Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° Electron 28.0.0, ΠΊΠΎΡΡΠΎ ΠΏΡΠ΅Π΄Π»Π°Π³Π° ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»Π½Π° ΠΎΡΠ½ΠΎΠ²Π° Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΠΌΠ½ΠΎΠ³ΠΎΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½ΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈΡΠ΅ Chromium, V8 ΠΈ Node.js. ΠΠ½Π°ΡΠΈΡΠ΅Π»Π½Π°ΡΠ° ΠΏΡΠΎΠΌΡΠ½Π° Π² Π½ΠΎΠΌΠ΅ΡΠ° Π½Π° Π²Π΅ΡΡΠΈΡΡΠ° Π΅ ΡΠ²ΡΡΠ·Π°Π½Π° Ρ Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ° Π΄ΠΎ ΠΊΠΎΠ΄ΠΎΠ²Π°ΡΠ° Π±Π°Π·Π° Π½Π° Chromium 120, ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° Node.js 18.18.2 ΠΈ JavaScript Π΄Π²ΠΈΠ³Π°ΡΠ΅Π»Ρ V8 12.0.
Π‘ΡΠ΅Π΄ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ Π² Π½ΠΎΠ²ΠΎΡΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅:
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° JavaScript ΠΌΠΎΠ΄ΡΠ»ΠΈ ESM (ECMAScript Modules), ΡΡΠ·Π΄Π°Π΄Π΅Π½ΠΈ ΡΡΠ³Π»Π°ΡΠ½ΠΎ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡΡΠ° ECMAScript 6 ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠΈΠΌΠΈ Π² Π±ΡΠ°ΡΠ·ΡΡΠ½ΠΈ ΡΠ΅Π± ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ (ΠΏΡΠ΅Π΄ΠΈ Π² Electron ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ Π° ΡΠ°ΠΌΠΎ ΠΌΠΎΠ΄ΡΠ»ΠΈ CommonJS, ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΈ Π·Π° Node.js). ΠΠΎΠ΄ΡΠ»ΠΈΡΠ΅ ESM ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΈ Π² ΡΠ°ΠΌΠΈΡ Electron, ΠΊΠ°ΠΊΡΠΎ ΠΈ Π² ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π°ΡΠΈ Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° API UtilityProcess. ΠΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° ESM ΠΌΠΎΠ΄ΡΠ»ΠΈ Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΈ Π² ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ° Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ ΠΈ ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Electron Forge.
- ΠΠ° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° Linux Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°ΡΠ° Π½Π° ΡΡΠ΅Π΄Π°ΡΠ° ELECTRON_OZONE_PLATFORM_HINT, ΠΊΠΎΡΡΠΎ ΡΠ»Π΅ΡΠ½ΡΠ²Π° Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° Wayland Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° Electron (ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·Π±Π΅Π³Π½Π΅ Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ΡΠΎ Π½Π° ΡΠ»Π°Π³Π° "βozone-platform-hint" Π² .desktop ΡΠ°ΠΉΠ»Π°).
- Π ΠΎΠ±Π΅ΠΊΡΠ° Display ΡΠ° Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΡΠ° detected, maximumCursorSize ΠΈ nativeOrigin.
- ΠΠ°ΡΡΡΠΎΠΉΠΊΠ°ΡΠ° WebContents.backgroundThrottling ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π΅ ΠΏΡΠΎΠΌΠ΅Π½Π΅Π½Π° Π½Π° ΡΡΠΎΠΉΠ½ΠΎΡΡ "false", ΠΊΠΎΡΡΠΎ Π΄Π΅Π°ΠΊΡΠΈΠ²ΠΈΡΠ° ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΡΠ΅ΡΡΠΎΡΠ°ΡΠ° Π½Π° ΠΊΠ°Π΄ΡΠΈΡΠ΅ ΠΏΡΠΈ ΠΏΠΎΠΊΠ°Π·Π²Π°Π½Π΅ Π½Π° ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ ΡΡΠ΅Π· ΠΎΠ±Π΅ΠΊΡΠ° BrowserWindow.
- ΠΡΠ΅ΠΌΠ°Ρ Π½Π°ΡΠΈ ΡΠ° ΠΌΠ΅ΡΠΎΠ΄ΠΈΡΠ΅ BrowserWindow.setTrafficLightPosition (Π²ΠΌΠ΅ΡΡΠΎ Π½Π΅Π³ΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° BrowserWindow.setWindowButtonPosition), BrowserWindow.getTrafficLightPosition (Π²ΠΌΠ΅ΡΡΠΎ Π½Π΅Π³ΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° BrowserWindow.getWindowButtonPosition), ipcRenderer.sendTo (Π²ΠΌΠ΅ΡΡΠΎ Π½Π΅Π³ΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° MessageChannel) ΠΈ app.runningUnderRosettaTranslation (Π²ΠΌΠ΅ΡΡΠΎ Π½Π΅Π³ΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° app.runningUnderARM64Translation). Π‘ΠΏΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° ΡΡΠ±ΠΈΡΠΈΡ scroll-touch-[begin|end|edge] Π΅ ΠΎΠΊΠΎΠ½ΡΠ°ΡΠ΅Π»Π½ΠΎ.
ΠΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° Electron ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° Π²ΡΡΠΊΠ°ΠΊΠ²ΠΈ Π³ΡΠ°ΡΠΈΡΠ½ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° Π±ΡΠ°ΡΠ·Π΅ΡΠ½ΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, ΡΠΈΡΡΠΎ Π»ΠΎΠ³ΠΈΠΊΠ° Π½Π° ΡΠ°Π±ΠΎΡΠ° ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Ρ Ρ JavaScript, HTML ΠΈ CSS, Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡΡΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΡΠ°Π·ΡΠΈΡΠ΅Π½Π° ΡΡΠ΅Π· ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π° Π΄ΠΎΠ±Π°Π²ΠΊΠΈ. ΠΠ° ΡΠ°Π·ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ° ΠΌΠΎΠ΄ΡΠ»ΠΈ Π½Π° Node.js, ΠΊΠ°ΠΊΡΠΎ ΠΈ ΡΠ°Π·ΡΠΈΡΠ΅Π½ API Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° Π½Π°ΡΠΈΠ²Π½ΠΈ Π΄ΠΈΠ°Π»ΠΎΠ·ΠΈ, ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΠΈ ΠΌΠ΅Π½ΡΡΠ°, ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ ΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π·Π° ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡ, ΠΌΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠΎΠ·ΠΎΡΡΠΈ ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠΈΡΠ΅ Π½Π° Chromium.
Π ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Ρ ΡΠ΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° Electron ΡΠ΅ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Ρ ΠΏΠΎΠ΄ ΡΠΎΡΠΌΠ°ΡΠ° Π½Π° ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»Π½ΠΈ ΠΈΠ·ΠΏΡΠ»Π½ΠΈΠΌΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΈ ΠΎΡ Π±ΡΠ°ΡΠ·ΡΡΠ°. Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΡΡ Π½Π΅ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΠΏΡΠΈΡΠ΅ΡΠ½ΡΠ²Π° Π·Π° ΠΏΡΠ΅Π½ΠΎΡΠΈΠΌΠΎΡΡΡΠ° Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π·Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈ, ΡΡΠΉ ΠΊΠ°ΡΠΎ Electron ΠΏΡΠ΅Π΄Π»Π°Π³Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½Π΅ Π·Π° Π²ΡΠΈΡΠΊΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ, ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Π½ΠΈ ΠΎΡ Chromium. Electron ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π·Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΠ½Π΅ ΠΈ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½Π΅ Π½Π° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ (ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡΡΠ° ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΠ½ΠΈ ΠΊΠ°ΠΊΡΠΎ ΠΎΡ ΠΎΡΠ΄Π΅Π»Π΅Π½ ΡΡΡΠ²ΡΡ, ΡΠ°ΠΊΠ° ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ ΠΎΡ GitHub).
Π‘ΡΠ΅Π΄ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡΠ°, ΠΈΠ·Π³ΡΠ°Π΄Π΅Π½ΠΈ Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° Electron, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΎΡΠ±Π΅Π»Π΅ΠΆΠΈΠΌ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ° Atom, ΠΏΠΎΡΠ΅Π½ΡΠΊΠΈΡ ΠΊΠ»ΠΈΠ΅Π½Ρ Mailspring, ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ° Π·Π° ΡΠ°Π±ΠΎΡΠ° Ρ Git GitKraken, ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π·Π° Π±Π»ΠΎΠ³ΠΎΠ²Π΅ WordPress Desktop, BitTorrent ΠΊΠ»ΠΈΠ΅Π½ΡΠ° WebTorrent Desktop, ΠΊΠ°ΠΊΡΠΎ ΠΈ ΠΎΡΠΈΡΠΈΠ°Π»Π½ΠΈΡΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠΈ Π·Π° ΡΡΠ»ΡΠ³ΠΈ ΠΊΠ°ΡΠΎ Skype, Signal, Slack, Basecamp, Twitch, Ghost, Wire, Wrike, Visual Studio Code ΠΈ Discord. Π ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡΠ° Electron ΡΠ° ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ°Π½ΠΈ 756 ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ° ΡΠ»Π΅ΡΠ½ΡΠ²Π°Π½Π΅ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° Π½ΠΎΠ²ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΅ ΠΏΠΎΠ΄Π³ΠΎΡΠ²Π΅Π½ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΈ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π²ΠΊΠ»ΡΡΠ²Π°ΡΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠΈ Π·Π° ΠΊΠΎΠ΄ Π·Π° ΡΠ΅ΡΠ°Π²Π°Π½Π΅ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π·Π°Π΄Π°ΡΠΈ.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
