Skip to main content


It turns out Google Chrome ships a default, hidden extension that allows code on `*.google.com` access to private APIs, including your current CPU usage

You can test it out by pasting the following into your Chrome DevTools console on any Google page:

chrome.runtime.sendMessage(
"nkeimhogjdpnpccoofpliimaahmaaome",
{ method: "cpu.getInfo" },
(response) => {
console.log(JSON.stringify(response, null, 2));
},
);

More notes here: https://simonwillison.net/2024/Jul/9/hangout_servicesthunkjs/

reshared this

in reply to Simon Willison

Interesting! Can this perhaps be used for fingerprinting? 👀
in reply to Daniel

@djh yeah, I imagine the fingerprinting risk is why they don't expose this functionality to everyone else
in reply to Simon Willison

@djh I thought it was already established that Google fingerprints you via your account. I think making it private to them keeps others from using it for fingerprinting, but I apologize if I'm missing the point.
in reply to Simon Willison

But why would Google themselves need it for fingerprint given that the control the whole browser? Or do you mean "they need it for something else but it could be used for fingerprinting by others"? @djh
in reply to Simon Willison

Good find! The next step will be to figure out how it’s used. On which websites is the extension called?
in reply to Simon Willison

isn't this just the "I agree to share usage metric" EUA we all clicked through? Or is this running even if we unselected that checkbox?
in reply to Simon Willison

Hmm, the code doesn't do anything on Cromite (github.com/uazo/cromite), perhaps the extension is removed? Because the error I get is:
"VM68:1 Uncaught
TypeError: Cannot read properties of undefined (reading 'sendMessage')
at <anonymous>:1:16
(anonymous) @ VM68:1"
in reply to Simon Willison

oh google! dont you just hate them
This entry was edited (2 weeks ago)
in reply to Simon Willison

time to complain to the EU commission about their abuse of monopoly and power such that Google will force them to open access to those APIs to any site.
in reply to Simon Willison

Not knowing how '*' is implemented, I'm concerned that it might it used on other websites matching `*.google.com`, such as https://my.malevolence.site/.google.com.
in reply to Simon Willison

That is, of course, if one still has Chrome installed in the first place. Which... no one really should.
in reply to Simon Willison

I got worried, and then I remembered that I had stopped using Chrome.
in reply to Simon Willison

For what it's worth, Edge is sufficiently 'Chromed' that it does the same there too ...
Although on a non-google site it offers me "Explain Console errors by using Copilot on Edge" :eyeroll:
in reply to Simon Willison

Yet another reason why NOBODY SHOULD BE USING THAT MULTICOLOURED PIECE OF SHIT!
in reply to Simon Willison

Seems like we could have dueling audiences here. One set could say Google should not hog my system's resources. The other could say Google should not check my system's resources.

Hopes these are not the same people ;-)

in reply to Simon Willison

All the more reason to move all Google services under *.google.com instead of dedicated domains like gmail.com, etc
in reply to Simon Willison

EDIT: @thomasp who is a sysadmin at Vivaldi has mentioned that this can be turned off in the Vivadi settings. See https://social.vivaldi.net/@thomasp/112758811705372022 for details.

@simon I can confirm this also works on @Vivaldi.

Vivaldi staff, is this the best place to report this to hopefully be fixed? Or is there a better place to do so?


@alh @Vivaldi It is already possible to turn this off in Vivaldi. Go to Settings > Privacy & Security and uncheck "Meet (was Hangouts)" under Google Extensions. You will need to restart the browser for the change to take effect.

This entry was edited (2 weeks ago)
in reply to Albano Hummel

@alh @Vivaldi It is already possible to turn this off in Vivaldi. Go to Settings > Privacy & Security and uncheck "Meet (was Hangouts)" under Google Extensions. You will need to restart the browser for the change to take effect.
in reply to Simon Willison

Not near a laptop ATM but does this CLI flag disable it --disable-component-extensions-with-background-pages

IME you can see most hidden Chrome extensions via chrome://system

in reply to Simon Willison

I'm just wondering how many things goes wrong on modern websites, if I set "*.google.com" and affiliated sites in Blocklist of my opnsense router 🤔

Google really belongs to the same category, like facebook and chinese toktik 😂

in reply to Simon Willison

for real, shut down that company... Too much control of the market. They literally can do whatever they want and people are pretty much forced to go along with it, because it's way too embeded in everyday tasks.
in reply to Simon Willison

whoa, didn't Microsoft get in trouble with hidden apis in the 90s? (although, Apple has a bunch now too... Ugh)
in reply to Simon Willison

I've been slowly moving away from corporate software for just this reason
in reply to Simon Willison

Yes, works on chrome on Google pages. Fascinating! Thank you for sharing this!
in reply to Simon Willison

Microsoft did this too, I hope Apple and Mozilla aren't doing it too...
in reply to Simon Willison

Interesting: ungoogled chromium (top) does not have the API, but regular chromium (bottom) _has_ it, too!
This entry was edited (2 weeks ago)
in reply to Simon Willison

I ain't like to speak unless I notice something is missing from a conversation. So let me say, FUCK THIS SHIT, FUCK THIS STUPID SHIT, AND FUCK THE PEOPLE WHO THOUGHT THIS WAS AN OKAY THING TO DO.

If you KNOW how to do this, you KNOW why it's important that you don't. Your boss tells you do this shit, ... maybe you see what happens if you let it rot in the backlog a bit 😇

in reply to Simon Willison

Default extensions are a place where Google has done some real damage to the web, and those of us working on platform have been grumpy for more than a decade that this and the Docs Offline nonsense continues to persist.

In both cases, it fell to other teams (not the Hangouts or Docs peeps) to build replacement APIs; e.g.:

https://chromestatus.com/feature/5597608644968448

This entry was edited (2 weeks ago)
in reply to Simon Willison

"nkeimhogjdpnpccoofpliimaahmaaome!" I exclaimed, upon learning of this.
in reply to Simon Willison

Soooooo.... anyone still think that this was a good idea that browser companies all dumped their own engines and that all modern browsers nowadays use the same engine? Asking for a friend.
in reply to Simon Willison

Article says "via chromium" implying it's in base chromium. Does @Vivaldi have this vulnerability as well?
This entry was edited (2 weeks ago)
in reply to Simon Willison

Can't help but wonder if UnGoogled Chromium has this taken care of...🤔 I'd like to hope so, but I can't assume.
in reply to BeAware :veriweed:

I think most browsers and nearly all phones apps send this type of data to for profit analytic companies

Our law makers ​:blobcatsleep:

in reply to Ozzy

@ozzy Now I'm wanting a comparison of "phone home" data sent from our browsers without our knowledge. Someone get on it!

Resource usage is almost useless info, in my opinion. Don't see what they can do with that, that would be nefarious, maybe someone can enlighten me?

However, they can fuck off out of my apps via API. NOPE.

Are other browsers like FireFox really taking this info as well?😬

@Ozzy
in reply to BeAware :veriweed:

duckduckgo have this tracking thing for android that shows how apps are using and sending data
in reply to Simon Willison

I tried to share the above link on my Facebook page and Facebook immediately flagged it as spam and removed it.
This entry was edited (2 weeks ago)
in reply to rRonald rRedball

@rredball that's really weird! I tried sharing that just now on my own account and it didn't block it, maybe it didn't like that it was a reply with a URL but no text?
in reply to Simon Willison

As if there weren't enough reasons to *not* use Chrome.
in reply to Simon Willison

from what I've heard on the Xitter, this is mostly used to debug performance issues. What's scummy is that they only enable it on their domain, which comes off as anti-competitive.

I imagine they'll get in trouble with the court for this, because it's clearly giving them an unfair advantage.

in reply to Simon Willison

slightly off-topic, but is ChatGPT using imgur to host their pictures? This is what I see when I open your shared conversation
in reply to Tymscar :linux:

@Tymscar something has gone very wrong there - shouldn't be any images in that post at all, it looks like this for me
in reply to Simon Willison

thats so much more peculiar then? Is this some sort of a leak?
in reply to Simon Willison

I can confirm #Microsoft didn't remove this for #Edge
```
{
"value": {
"archName": "x86_64",
"features": [
"mmx",
"sse",
"sse2",
"sse3",
"ssse3",
"sse4_1",
"sse4_2",
"avx"
],
"modelName": "12th Gen Intel(R) Core(TM) i7-12800H",
"numOfProcessors": 20,
"processors": [ <cut>],
"temperatures":
[] }
}
```
(tested with Edge 126.0.2592.87 on https://www.google.com)
in reply to Simon Willison

Throws an error message here on Chromium from the Debian "testing" repository. I was logged into my gmail account while doing so.
in reply to Simon Willison

Why people use Chrome is just baffling. It's not even good apart from great raw numbers in JS benchmarks and that's it. You don't need Chrome to be logged into all their services at once as some seem to believe.
in reply to Simon Willison

Following people were surprised:

I stopped using Google services many years ago. I haven't "googled" anything in years.

in reply to Simon Willison

Just to confirm the command line flag does disable this extension e.g.

open -a "Google Chrome Canary" --args --disable-component-extensions-with-background-pages

One screenshot is with the flag, one as default

(Core Web Vitals Visualiser is an extension I installed rather than one that's bundled with Chrome)

This entry was edited (2 weeks ago)
in reply to Simon Willison

Huh. Having worked on a product that was in many ways a YouTube competitor, I can say that this would have been modestly useful. This seems relevant: https://www.americanbar.org/content/dam/aba/publications/antitrust/magazine/2023/vol-38-issue-1/antitrust-and-self-preferencing.pdf
in reply to Simon Willison

Hmm, my Chromium 126 does not even allow me to access the `chrome.runtime` API from any page. It is also mentioned that this API is for extensions and content scripts, aka not for plain pages.
in reply to waldi

@waldi not even on a www.google.com page? I can't access chrome.runtime on other sites but it works for me on Google pages
in reply to Simon Willison

I did a quick test round. It seems to be any chromium based browser. Brave as well as Edge has it. 😡
in reply to Simon Willison

If I disable this in Brave settings it removes the fingerprinting for that profile? The settings language in Brave suggests it might break sharing in other tools like Zoom (web only?) or Teams (web only?). Thanks!
Many of clients use Google products like Drive and Chat. So, sort of stuck often time. It's really too bad because many google products are useful that they have to muck it all up with their trust (as in confidence in and faith in) breaking practices.
in reply to Simon Willison

friendly reminder that you need root access to fully remove Google from many android phones and tablets and that root access generally voids your warranty. That said, most warranties don't last longer than a couple years so if you've had your phone for 2 or more years then you likely have little to lose by ripping your *.google.com applications out and replacing them with much more secure applications.

If you don't want to do that, the paid version of #netguard can at least lock down your phone's network traffic app by app and web address by web address.