Hey Chromies!
There’s a little something for everyone this week. The Chrome browser was updated to version 110, for example. I hit the high points of what’s new in this release. And most of the features will trickle down to ChromeOS 110 when that arrives, which should be soon.
Speaking of ChromeOS 110, I’m already looking ahead at version 111. This week, I dug around in the Beta Channel of that software. Lo and behold, I found the new custom keyboard shortcuts application for Chromebooks. It’s not fully functional yet but I show you what it looks like and how you’ll be able to use it.
And for the more technically inclined, I end this week’s newsletter with some interesting information on CPU affinity. More specifically, how Google will be adding it to ChromeOS for virtual machine performance boosts.
Lastly, my regular, weekly thanks goes out to subscribers that bought me a coffee. If you get value from this newsletter and want to say thanks, click the button below. As always, that’s never required but sincerely appreciated!
Cheers,
kct
This week’s most read post on About Chromebooks
ChromeOS 111 Shows A Complete Look At Custom Keyboard Shortcuts
The latest ChromeOS 111 Beta Channel has a little surprise in it. I got my first look at custom keyboard shortcuts on a Chromebook after the update. It may have arrived in an earlier version, but this is the first time I noticed it.
We knew this was coming. Back in October I reported on an updated keyboard shortcuts app for ChromeOS. And at that time, there was a video demo of an early iteration thanks to Chrome Story. With ChromeOS 111, the custom keyboard shortcuts app is fully fleshed out, although when I create custom shortcuts, they don’t actually work yet.
The new custom keyboard shortcuts app in ChromeOS 111
Here’s what the new keyboard shortcuts app will eventually look like, pending any changes from this ChromeOS 111 iteration. Accessing it uses the current process of Settings -> Device -> Keyboard -> View Keyboard Shortcuts. Note that I have some experimental flags enabled to see it, which I’ll share in a bit.
Each shortcut is pre-mapped to default values here. Interestingly, the Launcher key, er, the Everything key, is listed as a “meta” key here.
While all of the shortcuts show a lock icon to the right, clicking it opens up the interface to add or modify your own custom keyboard shortcuts. Below, I’m adding the “alt + l” (as in launcher) to dock a window to the left.
At the moment, I don’t see a way to delete the defaults, although there’s a button to restore them. Presumably then, you will be able to modify or remove a default keyboard shortcut.
How to enable custom keyboard shortcuts
Since the new interface doesn’t yet allow usage of new keyboard shortcuts, you might not want to bother with it. However, for those that do, here are the experimental flags that I enabled in the latest ChromeOS 111 Beta Channel.
chrome://flags#improved-keyboard-shortcuts
chrome://flags#enable-shortcut-customization-app
chrome://flags#enable-shortcut-customization
Here’s what’s in the now available Chrome 110 Release
The latest iteration of Google’s Chrome browser is now generally available, bringing a number of fixes and features to macOS, Linux, and Windows. The Chrome 110 release includes 15 security fixes and several new features. Here’s what’s in the now-available Chrome 110 release, currently rolling out.
Chrome 110 release language translation options
As shown below in an image from gHacks, Chrome 110 gives more user control over language translation. You can now enable or disable always-on translation directly in the Chrome 110 Settings page, under the Languages menu. Previously, these options were only available in the browser’s Translate UI bubble.
Easier ways to change compromised passwords in Chrome 110
The Google Password Manager is steadily gaining useful features and the latest makes it easier to change potentially compromised passwords. When compromised passwords are detected you won’t just be notified in the Password Manager. You’ll also see links to the websites the password is used for. Clicking the links will take you a password change page for those websites.
Biometric protection for passwords in the Chrome 110 release
If your device has biometric hardware such as a fingerprint sensor, you can use it to secure your passwords in Chrome 110. Specifically, you can enable the biometric protection as required for auto-filling saved passwords.
Cookie information from extensions
To help protect against malicious extensions, Chrome 110 will now gather telemetry data from cookie information extension requests. Google will use that data on its servers to improve detection of malicious and policy violating extensions.
Chrome Headless mode upgrades in the Chrome 110 release
This feature isn’t really for most typical Chrome browser users, but it’s important for developers, service providers and device makers. Chrome Headless mode is a version of Chrome that can run on a server/ without a graphical user interface. Like I said: It’s not for most people.
For Chrome 110, Google says it has “rebuilt Headless mode so that it’s much closer to Chrome’s regular mode. This provides more consistent experiences, including respecting enterprise policies when in Headless mode.” Chrome Headless Mode first arrived with Chrome 57, so an overhaul might have been overdue.
12 new or updated Chrome Enterprise policies
If you use the Chrome browser in a managed work environment, your IT admins have 12 new and/or updated Chrome Enterprise policies to limit your activities keep you safe and productive. Among the more interesting ones relates to Chrome 110 for iOS and iPadOS. The policy can restrict users from seeing the iOS App Store Rating promo. Admins can disable this so that it never appears or enable it so that it shows up no more than one time per year.
Is this really an issue or Google just exerting some control? Anyway, I think managed Chrome browser users will better appreciate the ShowCastSessionsStartedByOtherDevices policy, which does what it implies: Shows media controls for Google Cast sessions started by other devices on the local network. Take that annoying co-worker who’s playing Gregorian Chant tunes way too loud in the office.
This new ChromeOS change could boost VM performance on Chromebooks
Google is working on a new code change for ChromeOS that could boost VM performance on Chromebooks. ChromeOS uses a custom VM, or virtual machine, to run Linux on Chromebooks, as well as for Android apps. The change would enable CPU affinity, which is a way to constrain or enable the VM to use certain processors on a multi-core Chromebook.
What’s changing for VM performance on Chromebooks
Here’s the description of the code change:
When –host-cpu-topology flag is specified, crosvm will create 1:1 affinity masks between host CPUs and VM’s vCPUs. Extend this mechanims to also pass the cluster IDs and CPU capacity information to the guest.
There are a few things to unpack here.
First, the code change is specific to crosvm, which, if you’re not familiar with, is the custom VM monitor that Google created specifically for ChromeOS. It’s very lightweight compared to typical virtual machines that you may be familiar with, such as Parallels Desktop, QEMU or VirtualBox.
Any time you open Linux on a Chromebook, for example, crosvm executes to create a VM. Inside that VM, Linux runs in a container which helps add more security between Linux and the ChromeOS system. Both the VM and the container do add overhead since the CPUs are running a virtualized, or software-based, computer instance.
What is CPU affinity?
So, what is CPU affinity and how could it affect the VM running on Chromebooks? Essentially, CPU affinity is a way to optimize and balance the CPU cores between its regular operating system and a virtual one.
Given that Chromebooks use multi-core processors, CPU affinity can allocate a greater number of cores for the two systems. It can also reduce or limit the cores if that’s required. However, I don’t think that’s the main reason for this code change.
I’m also over-simplifying this a bit to aid in understanding. There’s quite a bit going on at the system level with regards to CPU affinity and task scheduling.
This is an older Linux forum post from 2008 about CPU affinity but the principle still applies on the benefits:
One of these useful linux utilities is called taskset which allows setting the cpu affinity of a process. This is just a fancy way of saying bonding a process to a specific set of cpu(s). Why would you want to do this? The short answer is Load balancing. With multicore cpus becoming the de facto standard, there are some very practical uses of this when it comes to virtualization.
On a typical multicore cpu today, each core has enough power to easily run a physical machine so you can see the practical application of this; pin a virtual machine to a cpu core. This is applicable for most applications. If your application needs more cpu cycles you can scale up by pinning your virtual machine to multiple cores.
Let’s talk about cores!
Think of it this way, using the Framework Chromebook. It has a 12th gen Intel Core i5 processor with 12 cores. All of the running tasks are spread out among the cores as needed, to balance performance and efficiency. The above image shows how much each individual CPU core is in use.
You can see the various tasks are spread out between the many CPU cores. In that example, I’m just using ChromeOS for web browsing.
Here’s what happens when I start doing something in Linux, which is running in a VM on the Chromebook:
You can see that two of the physical CPU cores are handling most of the load for the VM and Linux at that point in time. That kind of seems like a waste of resources when there are plenty of other cores to balance out the load.
How CPU affinity could boost VM performance on Chromebooks
With CPU affinity enabled and configured on a Chromebook, constraints on how many cores used for the VM can be adjusted. That would allow the VM to enjoy the same performance and efficiency optimizations as ChromeOS itself.
Instead of the VM using just a few CPU cores, for example, half of them could essentially be devoted to ChromeOS. The other half could be focused on the VM tasks. Note that even with CPU affinity, a physical CPU core can never be fully allocated to a virtual machine.
According to Parallels, this approach could provide a 20 percent performance boost; at least for that company’s VM product:
If your physical server has several processors installed, you can bind a virtual machine or Container to specific CPUs so that only these CPUs are used to handle the processes running in the virtual machine or Container. The feature of binding certain processes to certain CPUs is known as CPU affinity. Establishing CPU affinity between virtual machines and Containers and physical processors can help you increase your system performance up to 20%.
Obviously, without more details specific to crovm , and since I can’t currently test performance of this upcoming change now, I don’t know how much of a performance boost CPU affinity may bring. It’s definitely something I will test once the change is made, however.
And if I recall correctly, Google is leveraging its effort on crosvm for all virtualized activities on Chromebooks. So it’s possible, likely even, that Android apps could gain some performance here too.
That’s all for this week!
Yup, I let you all down this week — I had said a week ago that I’d have my review of the HP Chromebook x360 13b completed. Obviously, that didn’t happen!
I didn’t plan to spend so much time sprucing up my resume and creating some cover letters for a pair of job openings. (I didn’t get either one of them - BOO!) So my goal in the next 48 hours is to wrap up that review. And maybe get a new job too, but that’s out of my hands, to a point!
Even if that does happen, I have no intention of stopping the blog or newsletter. This is still my main passion although I split my time between Chromebook coverage and continuing my coding education.
Until next time,
Keep on Chromebookin’!
Hmm... I'm still on version 109 in the Chrome browser. When I checked for updates it says I'm up to date. 😕