Aller au contenu principal

Electron 12.0.0

· 7 mins de lecture

Electron 12.0.0 est disponible ! Cette version inclut les mises à jour vers Chromium 89, V8 8.9, et Node.js 14.16. Nous avons changé le module distant, ajouté des nouvelles valeurs par défaut pour contextIsolation, ajouté une nouvelle API webFrameMain, et effectué des améliorations générales. Lisez la suite ci-dessous pour plus de détails !


La team Electron est excitée d'annoncer la sortie de Electron 12.0.0 ! Vous pouvez l'installer avec npm via npm install electron@latest ou le télécharger depuis notre site web des versions. Continuez de lire pour plus de détails sur cette version, et s'il vous plaît, partagez vos commentaires et remarques !

Changements de la Stack

Changements notables

  • La méthode exposeInMainWorld de ContextBridge peut maintenant exposer des APIs non-objets. #26834
  • Mise à niveau de Node 12 à Node 14. #23249
  • Ajout d'une nouvelle API webFrameMain pour accéder aux sous-fenêtres d'une instance WebContents depuis le processus principal. #25464
  • Les valeurs par défaut de contextIsolation et de worldSafeExecuteJavaScript sont maintenant true. #27949 #27502

Voir les notes de version 12.0.0 pour une liste complète des nouvelles fonctionnalités et des modifications.

Changements majeurs avec rupture de compatibilité

Vous trouverez plus d’informations sur ces changements et les changements futurs sur la pagechangements de rupture prévus.

Changements d'API

  • Ajout de l'API webFrameMain : Le module webFrameMain peut être utilisé pour voir les fenêtres existantes à travers les instances WebContents. C'est l'équivalent de l'API webFrame existante pour le processus principal. Plus d'informations à propos de cette nouvelle API peuvent être trouvées ici, et dans notre documentation.
  • app API changes:
    • Ajout de serviceName non localisé à 'child-process-gone' / app.getAppMetrics(). #25975
    • Ajout d’une nouvelle propriété app.runningUnderRosettaTranslation pour détecter l’exécution sous rosetta sur Apple silicone. #26444
    • Ajout de exitCode aux détails render-process-gone (app & webContents). #27677
  • BrowserWindow API changes:
    • Ajout de l'API BrowserWindow.isTabletMode(). #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:
    • Ajout de la prise en charge de l'affichage du menu de partage macOS. #25629
  • net API changes:
    • Ajout d'une nouvelle option credentials pour net.request(). #25284
    • Ajout de net.online pour détecter s'il existe actuellement une connexion Internet. #21004
  • powerMonitor API changes:
    • Ajout de powerMonitor.onBatteryPower. #26494
    • Added fast user switching event to powerMonitor on macOS. #25321
  • session API changes:
    • Ajout de l'option allowFileAccess à l'API ses.loadExtension(). #27702
    • Added display-capture API for session.setPermissionRequestHandler. #27696
    • Ajout d'une option disabledCipherSuites à session.setSSLConfig. #25818
    • Added extension-loaded, extension-unloaded, and extension-ready events to session. #25385
    • Added session.setSSLConfig() to allow configuring SSL. #25461
    • Added support for explicitly specifying direct, auto_detect or system modes in session.setProxy(). #24937
    • Added Serial API support. #25237
    • Added APIs to enable/disable spell checker. #26276
  • shell API changes:
    • Added a new asynchronous shell.trashItem() API, replacing the synchronous shell.moveItemToTrash(). #25114
  • webContents API changes:
    • 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 changes:
    • Added spellcheck API to renderer. #25060

Modifications: éléments supprimés et dépréciés

Les API suivantes ont été supprimées ou sont désormais dépréciées :

  • Déprécié le module remote. Il est remplacé par @electron/remote. #25293
  • Suppression des API crashReporter dépréciées. #26709
  • Suppression des liens vers le site Web Electron du menu "Aide" par défaut dans les applications packagées. #25831

Fin du support pour 9.x.y

Electron 9.x.y a atteint sa limite pour le support conformément à la politique d'assistance du projetpolitique d'assistance. Nous encourageons les développeurs à mettre à jour vers une version plus récente d'Electron et de faire de même avec leurs applications.

Et maintenant ?

À court terme, vous pouvez compter sur l’équipe pour continuer a se concentrer sur le développement des principaux composants qui composent Electron, notamment Chromium, Node et V8. Bien que nous veillions à ne pas faire de promesses à propos des dates de publication, notre plan est la sortie de nouvelles versions majeures d'Electron avec de nouvelles versions de ces composants environ un trimestre. Le planning escompté de la version 13.0.0 planning défini les dates clés du cycle de vie de développement d'Electron 13.0. Aussi, regardez notre document de versioning pour plus d'informations sur le versioning dans Electron.

Pour des informations sur les changements de rupture prévus dans les versions à venir d'Electron, regardez notre documentation sur les changements de rupture planifiés.