Π Π΅Π»ΠΈΠ· Electron 5.0.0, ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ создания ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° Π±Π°Π·Π΅ Π΄Π²ΠΈΠΆΠΊΠ° Chromium

ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½ Ρ€Π΅Π»ΠΈΠ· ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Electron 5.0.0, которая прСдоставляСт самодостаточный Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠΉ Π² качСствС основы ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Chromium, V8 ΠΈ Node.js. Π—Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π½ΠΎΠΌΠ΅Ρ€Π° вСрсии связано с ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ Π΄ΠΎ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ‹ Chromium 73, ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Node.js 12 ΠΈ JavaScript-Π΄Π²ΠΈΠΆΠΊΠ° V8 7.3. Π Π°Π½Π΅Π΅ оТидавшССся ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ 32-разрядных систСм Linux ΠΏΠΎΠΊΠ° ΠΎΡ‚Π»ΠΎΠΆΠ΅Π½ΠΎ ΠΈ выпуск
5.0 Π² Ρ‚ΠΎΠΌ числС доступСн Π² 32-разрядных сборках.

Π‘Ρ€Π΅Π΄ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² API, спСцифичных для Electron:

  • Π’ API ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ асинхронных ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², Ρ€Π°Π½Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ… callback-Π²Ρ‹Π·ΠΎΠ²Ρ‹, Π² Ρ„ΠΎΡ€ΠΌΡƒ Π½Π° основС ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° Promise. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Promise Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π² Cookies API ΠΈ Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Π°Ρ… app.getFileIcon, contentTracing.[getCategories| startRecording| stopRecording], debugger.sendCommand,
    shell.openExternal, webContents.[loadFile| loadURL| zoomLevel| zoomFactor] ΠΈ win.capturePage;

  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ получСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ систСмных Ρ†Π²Π΅Ρ‚Π°Ρ… Π²
    macOS, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π²Ρ‹Π·ΠΎΠ²Ρ‹ systemPreferences.getAccentColor,
    systemPreferences.getColor ΠΈ systemPreferences.getSystemColor;

  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° функция process.getProcessMemoryInfo, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π°Ρ статистику ΠΎ ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠΈ памяти Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΌ процСссом;
  • Π’ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ «remote», ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ IPC-ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ для взаимодСйствия ΠΌΠ΅ΠΆΠ΄Ρƒ процСссом отрисовки Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ страницы ΠΈ основным процСссом, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ возмоТности ΠΏΠΎ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ Π²Π½Π΅ΡˆΠ½ΠΈΡ… запросов для получСния ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ контроля Π·Π° ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ΠΌ ΠΊ IPC. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ² Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° для Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² remote.getBuiltin, remote.getCurrentWindow, remote.getCurrentWebContents ΠΈ webview.getWebContents;
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ управлСния нСсколькими экзСмплярами BrowserViews ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° BrowserWindow;
  • Π’ ΡƒΠΏΠ°ΠΊΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π² ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ прилоТСниях обСспСчСно Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ мСню прилоТСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Π΄Π°ΠΆΠ΅ Ссли ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ явно Π½Π΅ опрСдСляСт Π΄Π°Π½Π½ΠΎΠ΅ мСню ΠΈ Π½Π΅ добавляСт ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ события закрытия ΠΎΠΊΠ½Π°;
  • Активирован ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΡΠΌΠ΅ΡˆΠ°Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ sandbox-изоляции, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΈ процСсс отрисовки запускаСтся Π² sandbox;
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° пСрСмСнная окруТСния «ELECTRON_DISABLE_SANDBOX» для ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ sandbox-изоляции, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ссли ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Ρ‚Π°ΠΊ запускаСтся Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅ Π½Π° Π±Π°Π·Π΅ Docker;
  • Для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ бСзопасности ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ настройки nodeIntegration ΠΈ webviewTag;
  • API ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΎΡ€Ρ„ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ (Spellchecker) ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Ρ‘Π½ Π½Π° Π½Π΅Π±Π»ΠΎΠΊΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π΅ΠΆΠΈΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ возвращаСтся Π² асинхронном Ρ€Π΅ΠΆΠΈΠΌΠ΅;
  • ΠžΠ±ΡŠΡΠ²Π»Π΅Π½Ρ‹ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΌΠΈ ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΡƒΠ΄Π°Π»Π΅Π½Ρ‹ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ выпускС:
    исполняСмыС Ρ„Π°ΠΉΠ»Ρ‹ mksnapshot для arm ΠΈ arm64, ServiceWorker Π² WebContents, Π²Ρ‹Π·ΠΎΠ²Ρ‹ webFrame.setIsolated*, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ прямого Π²Ρ‹Π·ΠΎΠ²Π° ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ electron.screen,
    child_process,
    fs,
    os ΠΈ path (Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· remote.require с использованиСм ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Π² ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ WebContents).

Напомним, Ρ‡Ρ‚ΠΎ Electron позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π»ΡŽΠ±Ρ‹Π΅ графичСскиС прилоТСния с использованиСм Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π½Ρ‹Ρ… Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ, Π»ΠΎΠ³ΠΈΠΊΠ° Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… опрСдСляСтся Π½Π° JavaScript, HTML ΠΈ CSS, Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π° Ρ‡Π΅Ρ€Π΅Π· систСму Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΉ. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ доступны ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Node.js, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹ΠΉ API для формирования Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ², ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, создания контСкстных мСню, ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ с систСмой Π²Ρ‹Π²ΠΎΠ΄Π° ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ, манипуляции ΠΎΠΊΠ½Π°ΠΌΠΈ, взаимодСйствия с подсистСмами Chromium.

Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ web-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° Π±Π°Π·Π΅ Electron ΠΏΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ Π² Π²ΠΈΠ΄Π΅ самодостаточных исполняСмых Ρ„Π°ΠΉΠ»ΠΎΠ², Π½Π΅ привязанных ΠΊ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Ρƒ. ΠŸΡ€ΠΈ этом Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π·Π°Π±ΠΎΡ‚ΠΈΡ‚ΡŒΡΡ ΠΎ ΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ прилоТСния для Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ, Electron обСспСчит Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ сборки для всСх систСм, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… Π² Chromium. Electron Ρ‚Π°ΠΊΠΆΠ΅ прСдоставляСт срСдства для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ автоматичСской доставки ΠΈ установки ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ (обновлСния ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΊΠ°ΠΊ с ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ сСрвСра, Ρ‚Π°ΠΊ ΠΈ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ с GitHub).

Из ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, построСнных Π½Π° Π±Π°Π·Π΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Electron ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ Atom, ΠΏΠΎΡ‡Ρ‚ΠΎΠ²Ρ‹ΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Nylas, инструмСнтарий для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Git GitKraken, систСма Π°Π½Π°Π»ΠΈΠ·Π° ΠΈ Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ SQL-запросов Wagon, систСма вСдСния Π±Π»ΠΎΠ³ΠΎΠ² WordPress Desktop, BitTorrent-ΠΊΠ»ΠΈΠ΅Π½Ρ‚ WebTorrent Desktop, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρ‹ ΠΊ Ρ‚Π°ΠΊΠΈΠΌ сСрвисам, ΠΊΠ°ΠΊ Skype, Signal, Slack, Basecamp, Twitch, Ghost, Wire, Wrike, Visual Studio Code ΠΈ Discord. ВсСго Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Electron прСдставлСно 760 ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Для упрощСния Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½ΠΎΠ²Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½ Π½Π°Π±ΠΎΡ€ Ρ‚ΠΈΠΏΠΎΠ²Ρ‹Ρ… дСмонстрационных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΊΠΎΠ΄Π° для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru