Uno degli sviluppatori della piattaforma JavaScript Deno, che gestisce il catalogo dei pacchetti JSR.io, ha notato una discriminazione nel motore del browser Chromium riguardo alla fornitura di funzionalità aggiuntive ai servizi Google, non disponibili per altri siti senza l'installazione di un'estensione specifica. Si tratta dell'estensione integrata hangout_services, che è attiva per impostazione predefinita e non appare nell'elenco delle estensioni funzionanti nel browser.
L'estensione fornisce funzioni per ottenere informazioni sul carico della CPU e della GPU nel contesto di singole schede e dell'intero sistema, nonché sul consumo di memoria nel sistema. L'API fornita dall'estensione è aperta solo alle richieste provenienti dai sottodomini "google.com". L'estensione è preinstallata in Chrome, in varie versioni di Chromium, Microsoft Edge, Brave e probabilmente in altri browser basati sul motore Chromium.
L'offerta di un'estensione integrata è percepita come una concorrenza sleale e una violazione del principio di fornitura di un'API unica per tutti i siti, poiché grazie all'estensione i servizi Google ottengono un vantaggio competitivo accedendo a informazioni sul funzionamento del sistema, non disponibili per i servizi di altre aziende. Ad esempio, il servizio Google Meet può adattare il funzionamento in base al carico del sistema dell'utente, mentre in Zoom e in altri servizi è necessaria l'installazione di un'estensione esterna con conferma delle autorizzazioni fornite (per i servizi Google tale funzionalità è disponibile di default).
I dati forniti dall'estensione vengono visualizzati nel servizio meet.google.com nel pannello "Troubleshooting". Per verificare la presenza dell'estensione hangout_services, è possibile cercare l'ID "nkeimhogjdpnpccoofpliimaahmaaome" nel file resources.pak fornito con Chrome, e per controllarne l'attività è necessario aprire qualsiasi sito collegato a dominio google.com, e inviare a quell'estensione una richiesta dalla console degli strumenti per sviluppatori web: chrome.runtime.sendMessage('nkeimhogjdpnpccoofpliimaahmaaome', {method: 'cpu.getInfo'}, response => {console.log(JSON.stringify(response, null, 2));});
$ strings /opt/google/chrome/resources.pak | grep -A 10 "nkeimhogjdpnpccoofpliimaahmaaome" // ID estensione: nkeimhogjdpnpccoofpliimaahmaaome "key": "....", "name": "Google Hangouts", // Nota: Aggiorna sempre il numero di versione quando questo file viene aggiornato. Chrome // attiva l'aggiornamento delle preferenze dell'estensione all'aumento della versione. "version": "1.3.21", "manifest_version": 2, "externally_connectable": { "matches": [ "https://*.google.com/*" ]
Fonte: opennet.ru
