Google ha rilasciato il suo browser solo per Windows? Non c’è problema, ci pensiamo noi, hanno detto quelli di Codeweavers : così, in due settimane circa, ecco scodellato un porting di Chrome per Mac e Linux. Si chiama Crossover Chromium , si basa in larga parte sull’omonimo progetto open source che BigG ha lanciato assieme al suo Chrome, e riesce nell’impresa che ancora manca nel repertorio di Mountain View. Ma c’è il trucco.
Non appena lanciato il programma, infatti, ci si rende immediatamente conto che qualcosa non quadra. La dimensione dell’eseguibile per Mac è di quasi 133 MB , il tempo di caricamento non è esattamente istantaneo, e c’è qualcosa di strano nell’interfaccia. La spiegazione è semplice: Crossover Chromium è in realtà un eseguibile per Windows che gira in una sorta di “macchina virtuale” Wine , la celebre applicazione utilizzata per far girare applicazioni basate su API Win32 in ambiente *nix.
Codeweavers, che altro non è che una azienda che sostiene il progetto Wine e lavora allo sviluppo di offerte professionali per il software, ha infatti ricreato una specie di micro-immagine di un sistema Windows all’interno della quale far girare l’eseguibile compilato per quella piattaforma. Il risultato è interessante: la navigazione è rapida, così come promesso dal browser, ma qua e là affiorano piccole imprecisioni per ciò che riguarda la rappresentazione delle immagini e dell’interfaccia. L’utente, poi, è costretto ad ignorare le scorciatoie da tastiera , e a ripiegare sulle più tradizionali combinazioni di tasti tipiche di Windows: niente mela+t per una nuova tab, ma soltanto ctrl+t .
Ogni tanto il tutto si blocca o, peggio ancora, si chiude inaspettatamente. Da parte sua Codeweavers ci tiene a precisare che si tratta di una semplice dimostrazione delle capacità di Wine, e dunque non c’è da stupirsi per qualche bug di questo tipo: quello che conta è aver appunto dimostrato la fattibilità dell’operazione, aver mostrato le capacità dei propri programmatori e anche, dulcis in fundo, che Chrome non è poi così lontano da mela e pinguino. Se si è in vena di provare, si può dunque dare un’occhiata a Crossover Chromium. Se invece si è in ambiente Windows, ma la voglia di sperimentare il brivido di un software quasi-alpha, si può scaricare l’ultimo gingillo messo a disposizione da Google: Google Chrome Channel Chooser è una applicazione che consente di tenere aggiornata la propria versione del browser all’ultima compilazione degli sviluppatori (Mozilla le chiama Nightly Build ), così da poter vivere prima di tutti l’ebbrezza dell’ultima feature aggiunta al software di navigazione.
Basta selezionare il cosiddetto canale “Dev” nell’interfaccia del programma per convincere la propria copia di Chrome a scaricare una sorta di beta della beta – visto che il browser di BigG è tutt’altro che una versione definitiva – e avere accesso all’attuale build 1251 : secondo quanto descritto nelle note di rilascio, questa versione corregge molti problemi incontrati dagli utenti con Flash e Silverlight, elimina il problema dell’indicizzazione dei siti accessibili dietro protocollo SSL (rischioso ad esempio per le informazioni bancarie), migliora il comportamento delle tab e della grafica vettoriale SVG e, infine, consente di provare alcuni moduli sperimentali.
Si tratta ovviamente di una versione che definire “di valutazione” è quasi un complimento: è un prodotto in lavorazione, che dunque potrebbe soffrire di bug sconosciuti e potenzialmente ancora più pericolosi di quelli che va a risolvere. Tutto questo non sarà tuttavia certo un deterrente per i più curiosi, che magari sono già andati a studiarsi le migliaia di righe di codice di cui è composto Chrome (o meglio, Chromium) per capire fino in fondo a quali fonti abbia attinto Google per la sua realizzazione.
L’hanno fatto, ad esempio, anche gli sviluppatori Microsoft : un attività in questo caso tutt’altro che disinteressata, visto che Chrome minaccia la supremazia di Internet Explorer nel comparto browser, e che ha portato alla luce un dettaglio curioso. Non solo BigG ha attinto anche al codice prodotto a Redmond e rilasciato con licenza open source, ma ha anche provveduto al reverse engineering del kernel di Windows per ottenere le specifiche di una API creata da Microsoft per rendere l’esecuzione del codice più sicura.
Lo strumento in questione si chiama Data Execution Prevention ( DEP/NX ), ed è stato introdotto ufficialmente con il SP1 di Vista, il SP3 di XP e all’interno di Windows Server 2008: prima di allora si trattava di una API non documentata ufficialmente , e che Microsoft avvisava sarebbe mutata tra una release e la successiva dei suoi OS, sconsigliandone l’utilizzo. Ma la cosa non pare aver scoraggiato i programmatori Google, ansiosi di poter rendere il proprio browser ancora più sicuro.
Così, per poter includere le stesse garanzie durante l’esecuzione anche in XP aggiornato al SP2, hanno provveduto a disassemblare il file kernel32.dll , come si legge nei commenti al codice sorgente:
“// Completely undocumented from Microsoft. You can find this information by
// disassembling Vista s SP1 kernel32.dll with your favorite disassembler.
enum PROCESS_INFORMATION_CLASS {ProcessExecuteFlags = 0x22}”
La cosa non è sfuggita agli addetti ai lavori di Redmond, che storcono un po’ il naso nel lodare le buone intenzioni di Mountain View nel rendere il suo software il più possibile sicuro. Resta qualche perplessità sul risultato complessivo, ma è indubbio che dietro a Chrome affiori un impegno sempre più intenso di Google.
Un impegno messo in luce anche dalle doti velocistiche del browser di BigG, raccontate in un test svolto da Punto Informatico i cui risultati sono disponibili nella pagina seguente. Abbiamo analizzato Google Chrome mettendolo a confronto con gli altri principali browser nell’esecuzione del codice JavaScript, per cercare di capire quale sia davvero il più veloce . Gli altri browser utilizzati nei test sono stati aggiornati all’ultima versione stabile disponibile, con l’eccezione di Internet Explorer 8 che è ancora in beta . I test utilizzati per la prova sono tre: SunSpider, Dromaeo e V8 , rilasciati dalle stesse entità che sviluppano, rispettivamente, WebKit, Gecko e Chrome.
Il benchmark SunSpider è stato già utilizzato come parametro di confronto in altri articoli apparsi su Punto Informatico . Si tratta di un test JavaScript che mette alla prova il browser su 3D, crittografia, stringhe, matematica, espressioni regolari e funzioni varie. In questo test il browser più veloce è oggi Google Chrome . Tuttavia, dettaglio non trascurabile, il test è rilasciato da WebKit , che sviluppa il codice open source del quale Chrome è estensione, anche se quest’ultimo utilizza un motore JavaScript differente.
Il SunSpider è un test di velocità e i valori vanno interpretati con la regola del less is better , ovvero un risultato minore indica prestazioni più elevate. Il più veloce è per l’appunto Google Chrome, che esegue gli script in 1654 ms medi, seguito da Firefox a 3271 ms, Safari a 4013 ed Opera a 4392 ms, mentre il più lento risulta Internet Explorer con 9192 ms.
Dromaeo è un test per Javascript rilasciato da Mozilla. Nel benchmark sono inclusi test di script DOM, assenti su SunSpider: come spiegato nel Wiki di Mozilla, DOM è “una API per i documenti HTML e XML: fornisce una rappresentazione strutturale del documento, dando la possibilità di modificarne il contenuto e la presentazione visuale. Essenzialmente, esso connette le pagine web agli script o ai linguaggi di programmazione”.
Il problema di Dromaeo è che non tutti gli script sono eseguiti correttamente nei browser, e gli script che ritornano errore vengono conteggiati a zero millisecondi. Nel nostro test, Internet Explorer 8 non riesce a portare a termine l’esecuzione degli script. Detto ciò, il browser più veloce di questa categoria è Safari .
È possibile eseguire il benchmark Dromaeo sul proprio computer con diversi browser. Ad ogni test viene associato un ID: in tal modo è possibile confrontare manualmente i propri risultati aggiungendo alla URL http://dromaeo.com/?id= gli ID dei singoli test separati da una virgola. I nostri test sono disponibili all’indirizzo http://dromaeo.com/?id=40358,40363,40352,40379 .
L’ultimo test Javascript che abbiamo eseguito proviene direttamente dai Google Labs: si tratta del benchmark V8. V8 è anche il nome del motore JavaScript di Chrome: si tratta proprio del benchmark utilizzato per “mettere a punto” il motore del browser di Big. Non deve quindi sorprendere se in questo caso Google Chrome sia spaventosamente avanti rispetto agli altri. In questo test vale la regola del bigger is better , ovvero un punteggio più alto corrisponde a prestazioni migliori.
I risultati finali dei tre test mettono in evidenza come Chrome , nonostante sia ancora molto giovane, abbia già fatto molta strada per ritagliarsi un posto di rilievo nella guerra dei browser , con ottimi risultati in praticamente tutti i test JavaScript in circolazione. Un buon lavoro risulta anche quello portato avanti da Apple e Mozilla, con Safari e Firefox, discreto quello di Opera, mentre per il nuovo browser di Microsoft la strada per raggiungere i concorrenti in questo settore appare ancora lunga.