A few months back, I mentioned that I’m using the Lacros browser full-time. Lacos is essentially the Linux version of the Chrome browser and is part of Google’s effort to decouple Chrome from ChromeOS. Today I found code that will eliminate one of my pain points using Lacros. Google intends to speed up the Lacros browser on Chromebooks so it starts quicker.
Why is this a pain point for me? To understand that, you need to understand how Google is implementing the Linux version of Chrome on Chromebooks.
Unlike the native browser in ChromeOS that we’ve had since the first Chromebooks in 2010. Lacros is, as mentioned, written to run on native Linux. And Google is beefing up the security of this browser by running it in a container, or a separate sandbox, from all other apps. This is the exact same approach Google uses to enable Linux on Chromebooks. And that works quite well.
Here’s the problem: It takes time for a Chromebook to fire up that container. More so on entry-level hardware than on the wicked fast HP Elite Dragonfly Chromebook with its 12th gen Intel CPU. Even on that device, though, it’s an issue.
When I open the Lacros browser on my Chromebook, it take a few seconds before I can actually see or use it.
So how is Google going to fix this and speed up Lacros?
The solution is quite simple, even if the coding to make it happen isn’t. As soon as you boot up your Chromebook and the login screen appears, Google will start the Lacros container in the background. The idea is that in the few seconds it takes you to type your password on PIN, the Lacros startup on Chromebooks will already be happening.
Of course, there will be a transition from Chromebooks using the Chrome browser to using Lacros. And during that time, if you don’t have Lacros enabled on your device, the container will simply shut down, hopefully before the login process completes. You’d then just click your Chrome browser icon and be none the wiser.
This approach is actually no different from how Google enables Android apps upon bootup. In fact, that caused some issues for people who don’t use Android apps. Google resolved that by lowering the priority for the Android container startup process unless you actively try to open an Android app.
I don’t yet see the experimental flag to start Lacros upon bootup on my Chromebook with the ChromeOS 105 Dev Channel. Hopefully, it arrives in the next ChromeOS update so I’m not waiting two or three seconds between opening my browser and actually using my browser.
12 Comments
arggh I can smell this going so wrong this startup thing as well the transition to lacros.
When this was first reported people were like oh yeah we’ll see this maybe Chrome OS 100 or before. Typical tech journos no real world experience.
Clearly (and hopefully ) not happening anytime soon as this must be very complex. The benefits for average user are small and just not worth the risk. Please Google get this right. I suspect this will annoy many people either when it goes wrong or just because it’ll be slow. Sure the techys will come out and say it’ll be alright, but never trust a techy is my mantra.
Why does android have to boot at startup at all? or at least give option to stop it. Talk about eating resources without permission.
Also I’m still getting old launcher on my Chromebook somedays, Google can’t be relied on, whoever did the initial Chrome OS is long gone. Imagine that happens with lacros !!?!?
I hear you but I disagree strongly on one point: “The benefits for average user are small and just not worth the risk.” I’ve already witnessed a situation where a ChromeOS exploit wasn’t patched until days after it was patched in the Chrome browser. Because I was running Lacros, which IS the Chrome browser, I got the patch before most all other Chromebooks. Decoupling the browser from the platform is a HUGE benefit in my opinion. I suspect most of the backend challenge here isn’t about getting the browser to run on Chromebooks; that just works. It’s more about migrating user data and settings from one browser version to another.
I’m so down the rabbit hole with this I forgot about security so technically you got me there 🙂
But on the other hand this kind of makes my other point that I make a lot. Chrome OS users who have gone out of their way to spend actual money with Google direct are treated as second class to Windows Chrome Users.
If they have their priorities right Chrome OS users would have got that patch before Windows Users.
Off course a gazillion Windows Chrome users more than Chrome OS and making the whole network secure makes everyone more secure. But paying customers who have put faith in Chrome OS should be treated at least as equals, not second class.
I don’t think Google have ever said why they doing LAcross (have they?) so you don’t know security is their reason anyway.
Even Windows 7 users are still getting Chrome updates that means they been getting Chrome updates for 13 years ish. But now we have to wait for Lacross to keep getting updates because Google only support us for 8 years? So why not extend that 8 years until Lacross is released??!?
Chrome OS is in beta if you look at it that way still and should be labelled as such so consumers get some truth.
Not prioritising updates on your own OS, such a joke. If Steve Jobs was working at Google heads would roll. Google don’t even know Business lesson number 1.
Does this presume that multiple accounts on Chromebooks will no longer be supported? Or is the same container used by all logged in accounts?
> And Google is beefing up the security of this browser by running it in a container, or a separate sandbox, from all other apps.
> This is the exact same approach Google uses to enable Linux on Chromebooks. And that works quite well.
I’m unsure how you determined that the LaCrOS browser is running in a container.
It is provided by a DLC service but I cannot find a container or VM & container for LaCrOS.
The executable path to LaCrOS (found in chrome://version) is under /run/imageloader/lacros-dogfood-beta/104.0.5112.48/chrome, since I am running the beta version. Other channels and versions will also be under /run/imageloader too since that’s where these DLC applications reside.
You can also look at the config scripts listed below to see how they’re launched:
/etc/init/dlcservice.conf
/etc/init/lacros-mounter.conf
/etc/init/lacros-unmounter.conf
I have not seen any container involvement anywhere. ????
Hmm… interesting information, thanks! I can’t recall where I saw (or thought I saw) the container tech was being used for Lacros. I’m going to dig around some more on this and see what I can find out. Appreciate this!
If you take a look at the ‘Technical details’ linked below it states that LaCrOS is a ‘linux-chrome binary’ and runs similarly to the ash-chrome-binary:
– https://chromium.googlesource.com/chromium/src.git/+/HEAD/docs/lacros.md#technical-details
Too bad they don’t use this for the Linux container. It’s really really slow to start…
Out of interest what do people see as slow these days?
Like to load Linux container, or Chrome on Windows etc etc.
I’ve had to use some pretty slow machines in my life, anything loading in less than 5 seconds is more than fast for me.
Because I code on all of my devices and custom build my gaming PC, I try to over-spec (or overbuild) my computers. While I can do all of my work and coding tasks on even an entry level Chromebook (and I have for testing purposes), speed is paramount to me. Far more than any other computing attribute since other shortcomings can be “fixed”. I can connect to 1440p HDR monitor if my Chromebook has a crappy or small screen. I work from home so long battery life isn’t even in my top-5 desired features. In other words, I’m spoiled. 😉 So if it takes more than a second, *maybe* 2 if I’m in a good mood, for an app to open or something to happen via an interaction, that’s slow for me.
Any clue about when Lacros will make its public deployment to stable? Google is SO slow when releasing stuff
looking for help… i enabled the flag making lacros the primary browser but not the only browser
and its not working.. i am not getting the option to select a chrome profile and have it run as a separate browser window
so i want to reverse… but when i go into flags… the lacros enable options (like enable support etc) that turned on Lacros – they are not there… and even after RESET ALL they are not there.
so i am stuck… i really dont want to do a power wash as i have four profiles that would have to be set up again…
any suggestions as to how to see all the flags?