Why the lag in Chromium versions?


#1

I see that on Windows 10 Pro 64-bit my Chrome browser now at version 49. I was excited to start using ECMAScript classes, but my (latest!) Atom 1.5.4 is way back at v8 4.5.103.29.

What’s the relationship between Chrome 49 and v8 4.5.103.29? That looks a bit old—am I reading that wrong? I thought that one of selling points of using Atom/Electron is that we would always have the latest Chromium available. Is there something on Atom I neglected to update?


#2

You can get the version of Chromium that Atom maps to by opening the Developer Tools and going to the Console tab. Once there you can enter process.versions to get a list of the versions of various components underneath Atom. Here’s the output from my recent dev version:

So, as of last night, Atom was running on the engine from Chromium v47.x.

As to “why the lag,” we only use stable versions of Chromium in Atom and Electron. Therefore, it has to be released first. Once it is released, we integrate the Chromium engine into Electron. Periodically, we update Atom to newer versions of Electron. Electron is changing quickly and changes to Node and Chromium, while they may not impact a majority of Electron users, may break functionality in Atom … which then need to be worked around. In the interest of stability, we don’t move to a new version of Electron unless we’re reasonably to very certain that it won’t break Atom for our users and package authors.

To my knowledge, we’ve never made any guarantees that Atom or Electron would be using the latest or even relatively recent builds of Chromium or Node.


#3

Well, on the Atom blog @nathansobo said, “Another great thing about writing code for Atom is the guarantee that it’s running on the newest version of Chromium.” But I would guess that was more “marketing” than policy, and should be taken with a grain of salt.

Anyway, thanks for clearing that up, @leedohm.


#4

You’re welcome. Sorry for the confusion :grinning:


#5

Yeah, I mean we’re striving to stay recent, but I may have overstated things. In that context what I meant to say is it’s more recent than the browser of some random visitor to your web application. We try to stay current but it’s not always going to be perfect.


#6

By the way, recent Node.js versions support classes in strict mode. That is to say, you should be able to use ES6 classes both in main and renderer processes (with Node integration enabled) in Atom/Electron.