Chrome Dev Summit - Riepilogo piattaforma web aperta

di Greg Simon ed Eric Seidel

Blink è il motore di rendering open source di Chrome. Il team di Blink sta facendo evolvere il web e risolvendo i problemi riscontrati dagli sviluppatori.

Dal lancio di aprile sono stati avviati diversi miglioramenti dietro le quinte.

La prima cosa che abbiamo fatto è stata eliminare metà della nostra origine, che non ci serviva necessariamente. Non abbiamo ancora finito. E non lo facciamo a caso: la rimozione del codice si basa su statistiche aggregate anonimizzate degli utenti di Chrome che attivano la generazione di report.

Pubblichiamo una nuova API per gli sviluppatori ogni sei settimane, lo stesso periodo di tempo previsto per le release di Chrome.

Una grande modifica che abbiamo apportato quando abbiamo eseguito il fork di Blink è stata l'aggiunta di un sistema di intent: ogni volta che intendiamo modificare la piattaforma web, inviamo un annuncio pubblico a Blink dev per comunicare la nostra intenzione di aggiungere o rimuovere una funzionalità. Poi ci mettiamo a programmare. Il giorno successivo al check-in della funzionalità, questa viene già inviata nelle nostre build Canary. Questa funzionalità è disattivata per impostazione predefinita, ma puoi attivarla utilizzando about:flags.

Poi, nella nostra mailing list pubblica, annunciamo l'intenzione di spedire.

Su chromestatus.com puoi vedere le funzionalità su cui abbiamo lavorato, quelle che abbiamo rilasciato e quelle che prevediamo di ritirare. Puoi anche consultare il blog delle release di Chromium, che contiene link ai bug e alla nostra dashboard del tracker.

Un'altra grande modifica è la rimozione dei prefissi WebKit. L'intenzione non è utilizzare i prefissi di Blink, ma avere flag di runtime (e non solo di compilazione).

Android WebView è stata una grande sfida, ma HTML5Test mostra che le cose stanno migliorando. Siamo molto più vicini al desktop in termini di disponibilità di un insieme di API di piattaforme web ovunque (Web Audio è un ottimo esempio).

Ma come funziona la macchina per le salsicce? Ogni singola modifica apportata a Blink viene immediatamente sottoposta a oltre 30.000 test, per non parlare di tutti i test di Chromium che vengono eseguiti in un secondo momento. Utilizziamo un sistema di monitoraggio 24 ore su 24, con migliaia di bot, migliaia di benchmark e sistemi che inviano milioni di pagine web non funzionanti al nostro motore per assicurarci che non si arresti in modo anomalo. Sappiamo che la versione mobile è molto più lenta e ci stiamo adoperando per migliorare la situazione.

Quali sono quindi le novità?

  • Componenti web: guarda il talk di Eric Bidelman.
  • Animazioni web:animazioni complesse, sincronizzate e ad alte prestazioni che utilizzano la GPU, ove possibile
  • Layout parziale: calcola solo ciò che ti serve.
  • CSS Grid
  • Immagini responsive: srcset o srcN o ?
  • Ridimensionamento automatico del testo più veloce e caratteri subpixel coerenti
  • Skia, il sistema grafico utilizzato da Blink, passerà da GDI a DirectWrite su Windows

Ci teniamo a conoscere la tua opinione.

Se il C++ ti scorre nelle vene e vuoi scriverlo con noi, tutto il nostro codice è open. Non devi dirlo a nessuno o fare proselitismo. Puoi semplicemente pubblicare una patch o segnalare un bug.

Presentazioni: Blink

Sicurezza

di Parisa Tabriz

Oggi più persone che mai sono connesse al web e da più luoghi.

Siamo connessi con i nostri laptop, smartphone e tablet e, probabilmente, a breve anche con dispositivi e accessori personali. Accediamo a internet da reti non attendibili e a volte addirittura ostili. Dato che gran parte della nostra vita si svolge online, è fondamentale adottare misure per proteggere i nostri dati e quelli dei nostri utenti.

Soprattutto, in qualità di sviluppatori, dobbiamo comprendere la necessità e la praticità di SSL.

Che cos'è SSL? È l'acronimo di Secure Sockets Layer ed è un protocollo crittografico progettato per garantire la sicurezza delle comunicazioni su internet. Garantisce la privacy, tramite crittografia e integrità, per impedire lo snooping o la manomissione della connessione a internet. SSL ha i suoi difetti, ma è il modo principale, e in realtà l'unico, per garantire qualsiasi tipo di sicurezza di comunicazione dei dati su internet.

Secondo SSL Pulse, un anno fa l'adozione di SSL era di poco inferiore al 15%; ora abbiamo superato il 50%.

Due acronimi:

  • TLS:per la maggior parte degli scopi, è lo stesso di SSL. Per essere precisi, SSL 3.1 è stato rinominato TLS e TLS è il nome dello standard IETF. Ma sono intercambiabili.

  • HTTPS:si tratta di HTTP su SSL, ovvero l'applicazione delle funzionalità di sicurezza di SSL e HTTP standard. Innanzitutto l'handshake client-server, che utilizza la crittografia a chiave pubblica/privata per creare una chiave condivisa, utilizzata dalla seconda parte del protocollo SSL per criptare la comunicazione.

Fare networking su internet può sembrare sicuro, immediato e veloce. Sembra di parlare direttamente con il sito web. Ma in realtà non è una connessione diretta. Le nostre comunicazioni passano attraverso un router Wi-Fi, un ISP e potenzialmente altri proxy intermedi tra il tuo dispositivo e il sito web. Senza HTTPS, tutte le nostre comunicazioni sono in testo normale.

Il problema è che gli utenti raramente digitano un URL completo che specifica HTTPS o fanno clic su un link che utilizza HTTP. Peggio ancora, è possibile eseguire un attacco man-in-the-middle e sostituire HTTPS con HTTP. Uno strumento chiamato SSLstrip, introdotto nel 2009, fa proprio questo. Firesheep, del 2010, ascoltava semplicemente le reti Wi-Fi aperte per rilevare i cookie inviati in chiaro: in questo modo, era possibile ascoltare le chat o accedere all'account Facebook di qualcuno.

Tuttavia, SSL è (relativamente) economico, veloce e facile da implementare (visita il sito ssllabs.com e consulta il libro High Performance Browser Networking di Ilya Grigorik). La chiave pubblica bloccata è progettata per offrire agli operatori dei siti web un mezzo per limitare le autorità di certificazione che possono effettivamente emettere certificati per i loro siti.

"A gennaio di quest'anno (2010), Gmail ha iniziato a utilizzare HTTPS per impostazione predefinita per tutti i servizi. Per farlo, non è stato necessario implementare macchine aggiuntive né hardware speciale. Sulle nostre macchine frontend di produzione, SSL rappresenta meno dell'1% del carico della CPU, meno di 10 KB di memoria per connessione e meno del 2% dell'overhead di rete…

Se smetti di leggere ora, ricordati solo una cosa: SSL non è più costoso in termini di risorse di calcolo."

Overclocking SSL, Adam Langley (Google)

Infine, ecco un paio di bug che riscontriamo più di frequente:

  • Contenuti misti:siti che utilizzano sia HTTP sia HTTPS. L'utente si arrabbierà perché dovrà fare clic su un pulsante di autorizzazione per caricare i contenuti. (Chrome e Firefox vietano effettivamente i contenuti misti negli iframe). Assicurati che tutte le risorse di una pagina HTTPS vengano caricate tramite HTTPS utilizzando URL relativi o relativi allo schema, ad esempio <style src="//foo.com/style.css">
  • Cookie non sicuri:inviati in chiaro tramite una connessione HTTP. Per evitare questo problema, imposta l'attributo secure sulle intestazioni dei cookie. Puoi anche utilizzare una nuova intestazione "Strict Transport Security" per richiedere la sicurezza del trasporto SSL (HSTS).

Concetti principali

  • Se ti preoccupi della privacy e dell'integrità dei dati dei tuoi utenti, devi utilizzare SSL. È più veloce, facile ed economico che mai.
  • Evita gli errori di implementazione più comuni, come i bug dei contenuti misti o la mancata impostazione dei bit dell'intestazione HTTP corretti.
  • Utilizza URL relativi o relativi allo schema.
  • Dai un'occhiata ad alcune delle nuove funzionalità, come HSTS e il pinning dei certificati

Presentazioni: Hai SSL?

API multimediali per il web multipiattaforma

di Sam Dutton e Jan Linden

Oltre alla proliferazione di nuovi dispositivi e piattaforme sul web, stiamo assistendo a un'enorme crescita delle comunicazioni audio, video e in tempo reale. I media online stanno trasformando il nostro modo di fruire di contenuti multimediali di ogni tipo.

Uno studio del governo del Regno Unito ha rilevato che il 53% degli adulti "esegue il multitasking dei contenuti multimediali" mentre guarda la TV: utilizza i dispositivi mobili per condividere e fruire di contenuti multimediali. In molti paesi la visione della TV è in calo e quella online è in aumento. In Cina, ad esempio, nel 2012 solo il 30% dei nuclei familiari di Pechino guardava la TV, rispetto al 70% del 2009. Secondo il report W3C Highlights 2013, "nell'ultimo anno la visualizzazione di video su dispositivi mobili è raddoppiata. Quest'anno, negli Stati Uniti, il tempo medio giornaliero dedicato ai media digitali supererà la visione della TV. La visualizzazione non è più un atto passivo. Negli Stati Uniti, l'87% dei consumatori di contenuti di intrattenimento afferma di utilizzare almeno un secondo schermo mentre guarda la televisione. Secondo Cisco, "entro il 2017 i video rappresenteranno l'80-90% del traffico globale dei consumatori". Ciò equivale a quasi un milione di minuti di video ogni secondo.

Cosa offriamo agli sviluppatori web? Un ecosistema di API multimediali per il web aperto: tecnologie interoperabili e standardizzate che funzionano su più piattaforme.

Concetti principali

  • WebRTC fornisce comunicazione in tempo reale nel browser ed è ora ampiamente supportato su dispositivi mobili e computer. In totale sono già presenti oltre 1,2 miliardi di endpoint WebRTC.
  • Web Audio fornisce strumenti sofisticati per la sintesi e l'elaborazione audio.
  • Web MIDI, integrato con Web Audio, consente l'interazione con i dispositivi MIDI.
  • Gli elementi audio e video sono ora supportati su più dell'85% dei browser desktop e mobile.
  • Le Estensioni di origine media possono essere utilizzate per lo streaming adattivo e il time shifting.
  • EME consente la riproduzione di contenuti protetti.
  • Le trascrizioni, i sottotitoli codificati e l'elemento track consentono di aggiungere sottotitoli, sottotitoli codificati, metadati sincronizzati, link diretti e ricerca approfondita.

Presentazioni: API multimediali per il web multipiattaforma