Uno sguardo d'insieme su Internet Explorer 9.0

Nei giorni scorsi, contemporaneamente al lancio della versione finale di Internet Explorer 9.
Uno sguardo d'insieme su Internet Explorer 9.0

Nei giorni scorsi, contemporaneamente al lancio della versione finale di Internet Explorer 9.0, vi abbiamo presentato le caratteristiche principali del nuovo browser targato Microsoft. A distanza di un anno dalla pubblicazione della prima “platform preview“, Internet Explorer 9.0 (IE9) fa mostra di sé presentandosi come un prodotto che non ha nulla a che vedere con le versioni precedenti del browser. IE9 sembra rappresentare, per Microsoft, un nuovo punto di partenza più che un’evoluzione delle release precedenti.
E’ innegabile come il browser del colosso di Redmond avesse perso ampiamente terreno rispetto ai software concorrenti sia dal punto di vista delle quote di mercato (la fetta di utenti che navigano il web utilizzando Internet Explorer si è drasticamente ridotta rispetto a qualche anno fa) sia in termini di funzionalità. Uno dei prodotti che, più di recente, ha contribuito a smuovere le acque è stato sicuramente Google Chrome, grazie ad una filosofia sin da subito orientata agli aggiornamenti frequenti (i detrattori contestano il rilascio, giudicato troppo ravvicinato, di nuove major release), all’utilizzo di un’interfaccia essenziale, di un motore di rendering solido, di un motore JavaScript veloce e del meccanismo di sandboxing. Statistiche alla mano, Chrome sembra aver catalizzato l’interesse sia di utenti provenienti da Internet Explorer, sia di alcuni di coloro che si sono affidati da Mozilla Firefox. “Il panda rosso” mira a riconquistare a breve fette di mercato proponendo la quarta versione di Firefox il cui ritardo ha sicuramente influenzato il quadro globale.

Gli sviluppatori di IE9, quindi, hanno innanzi tutto voluto concentrarsi sugli aspetti storicamente di maggior sofferenza per il browser Microsoft. In primis, quindi, gli sforzi hanno fatto perno sulla necessità di sviluppare un prodotto veloce. La rapidità con la quale vengono caricate le pagine web può infatti oggi fare davvero la differenza tra un software e l’altro. Le pagine Internet sono infatti sempre più dense di codice JavaScript utilizzato per la realizzazione di applicazioni web interattive. In tali situazioni la pagina web non viene ricaricata ma si ha un costante dialogo fra client e server (e viceversa): i dati sono scambiati in modalità asincrona ed il loro caricamento rapido è sempre più spesso di fondamentale importanza per garantire all’utente un’esperienza d’uso adeguata.
Le pagine web, inoltre, sono sempre più ricche di animazioni, di video e di contenuti multimediali. Le nuove specifiche alla base di HTML5 cavalcano tale tendenza introducendo tag e meccanismi “inediti” che consentono di realizzare applicazioni “alla moda” scrivendo molto meno codice.
I tecnici Microsoft, negli eventi che hanno accompagnato il lancio di IE9, hanno voluto porre l’accento su come il browser sia stato costruito proprio attorno ad HTML5.

Più che sciorinare tutte le funzionalità di IE9, concentriamoci sulle novità salienti che – esaminando il comportamento degli altri produttori di browser – ben evidenziano quali siano le tendenze e verso quali direzioni si stia guardando con sempre maggior convinzione.

Interfaccia ridotta ai minimi termini ed integrazione del browser con il desktop.
Si tratta di un aspetti cari a molti vendor che Microsoft, con IE9, ha deciso di cavalcare con decisione. Basti pensare che l'”intestazione” del browser di Redmond (l’area solitamente invasa da barre degli strumenti, barra degli URL, pulsanti di navigazione, menù,…) si è ridotta – se non abbiamo contato male – ad appena 63 pixel: praticamente la stessa dimensione dell’area superiore di Google Chrome. Un cambiamento radicale rispetto al passato che evidenzia un apprezzamento per la strada tracciata dai tecnici di Mountain View.
La barra di stato, in IE9, non esiste più e tutti i pulsanti presenti nelle precedenti release (fatta eccezione per gli evidenti “avanti” ed “indietro“) sono stati rimossi. Nella parte destra della barra degli strumenti sono stati aggiunti tre piccoli pulsanti coi quali è possibile interagire con le varie funzionalità del browser.

Il concetto è quello di lasciare maggiore spazio possibile alle pagine web che, eventualmente, possono diventare applicazioni desktop. Sì perché con la crescente complessità delle applicazioni fruibili online, Microsoft – così come altri produttori – intendono dare loro dignità di un software “desktop”.
A tal proposito, IE9 ha introdotto la possibilità di utilizzare “pinning” e “jump lists“: si tratta di due caratteristiche proprie di Windows 7 che consentono di interfacciarsi con la barra delle applicazioni del sistema operativo, solitamente esposta – in orizzontale – in calce allo schermo. Con IE9, applicazioni web o semplici siti web possono essere inseriti nella barra delle applicazioni di Windows 7 (“pinning“). Chi sviluppa siti web, inoltre, può aggiungere elenchi personalizzati (“jump lists“), richiamabili dall’utente cliccando col tasto destro del mouse sull’icona mostrata nella barra delle applicazioni. Tali liste possono puntare a specifiche sezioni del sito web ed essere eventualmente aggiornate in modo dinamico.
Altre funzionalità accessorie introdotte con IE9 consentono ai webmaster di visualizzare, ad esempio, un’icona lampeggiante nella barra delle applicazioni (si pensi ad un servizio webmail che può così informare l’utente all’arrivo di un nuovo messaggio) od una serie di controlli aggiuntivi (ad esempio per aumentare od abbassare il volume, nel caso in cui la pagina web contenga una creatività in grado di riprodurre dei brani musicali).
Il tutto è possibile grazie alle nuove API JavaScript supportate da IE9 che, tuttavia, non sono compatibili con gli altri browser web. Viene infatti caldamente consigliato l’utilizzo di un semplice codice JavaScript che, in primis, permetta di verificare se la funzionalità “pinning” sia supportata dal browser in uso. In caso affermativo, si potranno usare le varie API disponibili; diversamente, il codice JavaScript seguente non sarà eseguito in modo tale da non ingenerare errori con i vari browser “alternativi”.
Di “pinning” e “jump lists” abbiamo iniziato a parlare in quest’articolo.

Le varie schede di navigazione vengono aperte, in IE9, a destra della barra degli indirizzi. Se il comportamento non fosse di proprio gradimento, è possibile posizionarle più sotto, cliccando su di esse con il tasto destro del mouse quindi scegliendo il comando Visualizza schede su una riga separata.

Inoltre, seguendo la via segnata dai browser concorrenti, anche in IE9 è adesso possibile trascinare le schede fuori dalla finestra di lavoro in modo da aprire il contenuto dei siti web all’interno di nuove finestre.
Interessante notare come, durante la fase di trascinamento, eventuali video in corso di riproduzione continuino ad essere riprodotti senza interruzioni:

Per aprire rapidamente una nuova scheda, è possibile ricorrere alla combinazione di tasti CTRL+T, comune anche agli altri browser (in alternativa, si può cliccare su una qualunque scheda aperta con il tasto destro del mouse e scegliere Nuova scheda).
Anche in IE9, premendo CTRL+T è possibile ottenere l’elenco dei siti web più visitati, richiamare le schede aperte nell’ultima sessione di lavoro (link Riapri ultima sessione) o quelle da poco chiuse (Riapri schede chiuse).
Da qui è possibile avviare anche una sessione in modalità privata (“InPrivate browsing“). Si tratta della cosiddetta “modalità incognito” impiegata anche dagli altri browser web: attivandola (un’esplicita indicazione viene aggiunta nella barra degli indirizzi), IE9 non memorizzerà i dati relativi alla sessione di esplorazione, inclusi cookie, file temporanei di Internet, cronologia ed altre informazioni. Navigando sul web con “InPrivate”, vengono disattivate tutte le estensioni e le barre degli strumenti addizionali.

Sicurezza e tutela della privacy

IE9, spiega Microsoft, è stato ideato per sfruttare le tecnologie presenti in Windows Vista e Windows 7. Lanciando IE 9 prima e l’utilità Process Explorer (ved. questa pagina per il download) di SysInternals (da tempo acquisita dal colosso di Redmond) poi, si può verificare come IE9 utilizzi più processi.
Il processo di IE9 che si occupa del caricamento delle pagine web viene eseguito con un “integrity level” basso. Ciò significa che le pagine caricate non possono scrivere su tutta una serie di cartelle di sistema ma possono farlo solo, ad esempio, all’interno dela cache del browser.

Per rendersene conto, basta cliccare su una delle colonne di Process Explorer con il tasto destro del mouse, scegliere la voce Select columns quindi spuntare la casella Integrity Level dalla scheda Process image:

Così facendo, dopo aver premuto il pulsante OK, comparirà la nuova colonna Integrity. Qui è possibile, per ciascun processo, verificare il livello di integrità col quale viene eseguito.
L’altro processo utilizzato da IE9 (livello di integrità “medio”) è quello con cui l’utente interagisce ossia lo “scheletro” del browser.
Una così netta separazione è stata implementata per difendere l’utente da quei malware che tentano di eseguirsi fuori dal contesto di esecuzione del browser web, cercando di infettare il sistema operativo mediante una serie di interventi su aree importanti di Windows.

Confermato, poi, il più stretto legame con due tecnologie – DEP e ASLR – introdotte nelle versioni più recenti di Windows. Di entrambe abbiamo spesso parlato. DEP (“Data Execution Prevention“) evita che codice malevole venga eseguito da aree di memoria marcate come aree dati (attacchi buffer overflow) mentre la seconda (“Address space layout randomization“) fa sì che gli eseguibili e le DLL possano essere caricate in differenti posizioni della memoria. Grazie all’impiego di ASLR, si evita quindi che una libreria possa essere caricata sempre nella stessa posizione scongiurando attacchi basati sulla conoscenza delle specifiche celle di memoria nelle quali avviene il caricamento.
Ecco alcuni nostri articoli dedicati alle funzionalità DEP e ASLR:
– Data Execution Prevention
– Address space layout randomization

IE9 migliora la protezione nei confronti del cosiddetto social engineered malware ossia rispetto a quei componenti pericolosi che si diffondono sfruttando, in prima battuta, trappole preparate per gli utenti meno attenti e scrupolosi. Il nuovo SmartScreenFilter di IE9 si appoggia a componenti locali (elenchi di URL sicuri e liste di siti web noti come rischiosi) impiegando simultaneamente anche motori online per avvertire gli utenti circa la potenziale pericolosità di un link. Il browser di Microsoft utilizza anche alcuni algoritmi per l’analisi degli URL indicando agli utenti quelli sospetti.

Debutta invece nella nona versione di Internet Explorer SmartScreen Application Reputation, un meccanismo che si occupa di verificare la “bontà” dei file che vengono scaricati mediante il browser. Si tratta di un sistema che mira a valutare, di volta in volta, la “reputazione” di un download: il browser, innanzi tutto, verifica se il file disponga o meno di una firma digitale. In caso affermativo, soprattutto se questa è nota e non appare contraffatta, IE9 non visualizza alcun messaggio d’allerta. Diversamente, si attinge ai database online per controllare se il file prelevato sia comunque noto ed apprezzato da parte degli utenti.

Da ultimo, IE9 contiene alcune funzionalità per la protezione della privacy (menù Strumenti, Protezione da monitoraggio) che consente di evitare che i propri “movimenti” online possano essere monitorati da parte di siti web che utilizzano particolari espedienti. Facendo in modo che un’immagine, salvata sui server dell’azienda “X”, venga inserita su molti siti web, anche estremamente differenti l’uno dall’altro, è possibile tracciare un profilo dell’utente stabilendo da quali pagine la stessa immagine è stata via a via caricata. La funzionalità “Protezione da monitoraggio” di IE9 consente di prendere in mano proprio tale problematica.

Sempre dal menù Sicurezza, è possibile disattivare temporaneamente – in qualunque momento – il caricamento di tutti i controlli ActiveX presenti nelle pagine web.

Aspetto prestazionale e supporto di HTML5

Performance: si punta sull’accelerazione hardware
Per velocizzare il caricamento delle pagine web e l’interazione dell’utente con le stesse, gli sviluppatori di IE9 si sono concentrati essenzialmente su due aspetti: miglioramento del motore JavaScript ed accelerazione hardware.
A tal proposito, Microsoft ha lanciato un sito web (raggiungibile cliccando qui) che, se “navigato” con IE9 permette di saggiare molte delle novità del browser relativamente all’ottimizzazione delle prestazioni ed al supporto di HTML5.
Cliccando sui vari esempi proposti, è possibile verificare che cosa può essere in grado di fare un browser più moderno (con riferimento, quindi, non solo ad IE9 ma anche ai browser concorrenti).
Questa è un’interessante demo che evidenzia cosa è possibile fare utilizzando solamente le nuove specifiche di HTML5 e CSS3 senza ricorrere ad alcun plugin esterno. Un’altra applicazione degna di nota è quella realizzata dal museo nazionale cinese e raggiungibile cliccando qui.
FishIETank” è un’applicazione realizzata con HTML5 che i tecnici Microsoft hanno quasi voluto assurgere a benchmark.

I tantissimi esempi “pubblicizzati” dai portavoce di Microsoft hanno un duplice obiettivo: da un lato offrire agli utenti progetti concreti che sottolineino gli innegabili grandi passi avanti compiuti sul versante performance (esecuzione di codice JavaScript e utilizzo delle risorse della GPU per l’accelerazione hardware) e dall’altro evidenziare le enormi potenzialità di HTML5 e CSS3.
Ovviamente, si ricorda da Microsoft, le performance ottenibili sono direttamente influenzate dalla “pulizia” del codice e dall’abilità del programmatore nel mettere a punto, ad esempio, codice JavaScript. A tal proposito, viene ricordato di porre massima attenzione quanto si sviluppa codice JavaScript: come semplice indicazione, ad esempio, gli assegnamenti delle variabili dovrebbero essere ridotti al minimo. Uno dei più frequenti errori di programmazione consiste nell’effettuare accessi ripetuti alla struttura della pagina (DOM) con conseguenti assegnamenti di variabili che risultano del tutto superflui e dannosi in termini prestazionali.

Molto interessante l’aggiunta in IE9 dell’inedita “developer toolbar“. Richiamabile premendo il tasto F12, consente agli sviluppatori di analizzare il codice delle pagine web con la possibilità di estrarre, immediatamente, i vari riferimenti agli script ed ai fogli di stile richiamati.
Tra gli strumenti messi a disposizione c’è la scheda Rete che cosnente di monitorare (pulsante Avvia cattura) tutte le operazioni effettuate dalla pagina web e dagli elementi da essa invocati.

La “developer toolbar” di IE9 somiglia da vicino a Firebug, apprezzata estensione di Mozilla Firefox con la differenza che quest’ultima, ricordano i tecnici Microsoft, viene eseguita nel medesimo contesto del browser essendo stato sviluppata, essa stessa, in JavaScript.

Supporto di HTML5

Rispetto alle precedenti versioni di IE9, il nuovo browser Microsoft è sicuramente molto più aderente agli standard e guarda con convinzione alle specifiche di HTML5. Come avevamo spiegato in questo articolo, HTML5 non è ancora pienamente maturo (si parla di un’approvazione in via definitiva solo nel 2014; ved. questa notizia) ma tutti i produttori di browser, cogliendo l’importanza delle nuove caratteristiche si sono da tempo organizzati per abbracciare le nuove specifiche. IE9 “fa proprie” solo quelle che hanno raggiunto un buon grado di maturità e, nel sito IETestdrive, vengono appunto forniti molteplici esempi di applicazioni pratiche. Ed è proprio grazie all’impiego di HTML5 che si può evitare l’utilizzo di plugin aggiuntivi per la realizzazione di applicazioni web spiccatamente interattive.
L’esempio citato in precedenza (Museo Nazionale Cinese) ben dimostra come sfruttando API di HTML5 (canvas ed altri elementi) e JavaScript sia possibile mettere in piedi un’applicazione che presenti elementi tridimensionali senza usare componenti esterni. Canvas è l’elemento, introdotto in HTML5, che consente di disegnare elementi grafici sulle pagine web. E’ di fatto un rettangolo, posizionabile sulla pagina, all’interno del quale è possibile tracciare qualunque cosa ricorrendo a codice JavaScript.
HTML5 definisce una serie di funzioni (“canvas API“) per il disegno di forme, linee, creare effetti sfumati ed applicare delle trasformazioni.

Le specifiche di HTML5 sono frutto del lavoro di diversi enti di standardizzazione (tra i quali il W3C) e, a loro volta, di numerosi “gruppi di lavoro”. Ciascuna specifica di HTML5 segue un suo percorso di approvazione quindi ogni elemento che comporrà il nuovo standard si trova, al momento, ad un diverso livello di maturazione. Sebbene lo scenario relativo ad HTML5 sia in continua evoluzione, Microsoft – così come altri produttori di browser web – hanno deciso di abbracciare da subito alcune nuove specifiche che già offrono ottime garanzie di funzionamento.
Secondo Microsoft le specifiche di HTML5 ormai accettate e che hanno un comportamento sostanzialmente uniforme tra i diversi browser sono le seguenti (avevamo trattato alcune di esse in questo articolo):
Doc Type
Elementi semantici
Tag audio e video
Canvas
Geolocation APIs
Selection APIs
Content Editable
DOM Storage
Ajax Navigation
Cross Document Messaging

Per quanto riguarda CSS3 (la nuova versione, non ancora ufficialmente approvata, delle direttive utilizzate per definire la formattazione delle pagine web), le caratteristiche che Microsoft considera ormai “stabili” sono quelle che si occupano delle trasformazioni 2D degli oggetti, che gestiscono sfondi e bordi, fonti di carattere, media queries, selectors, colori ed opacità.

In seno al W3C sono state promosse iniziative che mirano a sviluppare dei test ufficiali per incrementare l’aderenza alle specifiche da parte di tutti i vari browser web presenti sul mercato. Con l’avvento di HTML5 è bene infatti non soltanto verificare la compatibilità di ogni singolo browser con una determinata specifica ma anche come questa viene resa in fase di rendering della pagina web.
I test che Microsoft ha pubblicato in questa pagina, sotto la colonna “HTML5“, possono essere richiamati dai vari browser web per verificare come le nuove specifiche vengano trattate.

Il colosso di Redmond ha quindi preferito inserire in IE9 solamente il supporto per quelle specifiche ormai giunte alla loro “veste” definitiva. Per aggiungere il supporto per altre specifiche, ancora a livello di bozza, si può fare riferimento a questo sito web. Utilizzando i file qui pubblicati (mantenuti aggiornati con l’evoluzione delle specifiche di HTML5), sarà possibile aggiungere manualmente a IE9, ad esempio, il supporto per IndexedDB ed i WebSockets. Il primo componente permetterà di salvare, sul personal computer, grandi insiemi di dati – in forma strutturata – usando solamente il browser; il secondo consentirà di semplificare le comunicazioni attraverso un canale bi-direzionale, full-duplex utilizzando un unico socket TCP.

Compatibilità solo con Windows Vista e Windows 7
I tecnici di Microsoft hanno voluto sottolineare che la scelta di rendere compatibile IE9 solamente con Windows Vista e Windows 7 (oltre che con Windows Server 2008 e Windows Server 2008 R2 64 bit) si è determinata sulla base della necessità di proporre agli utenti un browser in grado di garantire prestazioni velocistiche mai viste. I portavoce dell’azienda guidata da Steve Ballmer hanno quindi evidenziato come IE9 tragga vantaggio da una serie di novità introdotte solo con il rilascio del Service Pack 1 per Windows Vista.

La versione finale di Internet Explorer 9.0 è prelevabile gratuitamente facendo riferimento a questa pagina.

Ti consigliamo anche

Link copiato negli appunti