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 migliorando il web e sta risolvendo i problemi riscontrati dagli sviluppatori.

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

Per prima cosa abbiamo eliminato metà della nostra fonte, di cui non avevamo bisogno. Non abbiamo ancora finito. E non stiamo facendo questa cosa: la rimozione del codice si basa su statistiche aggregate segnalate in modo anonimo dagli utenti di Chrome che attivano la segnalazione.

Pubblichiamo una nuova API per sviluppatori ogni sei settimane, lo stesso programma di spedizione di Chrome.

Un grande cambiamento che abbiamo apportato quando abbiamo eseguito il fork di Blink è stato l'aggiunta di un sistema di intent: ogni volta che prima di cambiare la piattaforma web, inviamo un annuncio pubblico a Blink dev per annunciare la nostra intenzione di aggiungere o rimuovere una funzionalità. Dopodiché procediamo a programmare il tutto. Il giorno successivo al check-in, la funzionalità è già disponibile nelle versioni canary. Questa funzionalità è disattivata per impostazione predefinita, ma puoi attivarla utilizzando about:flags.

Successivamente, nella nostra mailing pubblica annunciamo l'intenzione di spedizione.

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

Un altro grande cambiamento è la rimozione dei prefissi WebKit. Lo scopo non è utilizzare i prefissi Blink, ma avere flag di runtime (e non solo flag in fase di compilazione).

Android WebView è stata una grande sfida, ma HTML5Test mostra che le cose stanno migliorando. Siamo molto più vicini ai computer desktop in quanto abbiamo un unico set di API per piattaforme web ovunque (Web Audio ne è un ottimo esempio!)

Ma come funziona la macchina per salsicce? Ogni singola modifica apportata a Blink viene eseguita immediatamente su oltre 30.000 test, per non parlare di tutti i test di Chromium che vengono eseguiti successivamente. Utilizziamo lo Sheriffing 24 ore su 24, con migliaia di bot, migliaia di benchmark e sistemi che gettano milioni di pagine web non funzionanti al nostro motore per evitare che cadano. Sappiamo che i dispositivi mobili sono molto più lenti e questo è un aspetto che stiamo cercando di migliorare.

Quali sono quindi le novità?

  • Componenti web: dai un'occhiata al discorso di Eric Bidelman.
  • Animazioni web: animazioni complesse, sincronizzate e ad alte prestazioni che utilizzano la GPU ove possibile.
  • Layout parziale: calcola solo ciò di cui hai bisogno.
  • Griglia CSS
  • Immagini adattabili: srcset o srcN o ?
  • Ridimensionamento automatico del testo più veloce e caratteri secondari con pixel coerenti
  • Skia, il sistema grafico utilizzato da Blink, sta passando da GDI a DirectWrite su Windows

Vorremmo sapere cosa hai da dire.

Se pensi di utilizzare il linguaggio C++ e vuoi scriverlo insieme a noi, tutto il nostro codice è aperto. Non devi informare nessuno o evangelizzare con noi. Puoi semplicemente pubblicare una patch o segnalare un bug.

Presentazioni: Lampeggiante

Sicurezza

di Parisa Tabriz

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

Siamo collegati con i nostri laptop, telefoni e tablet e probabilmente abbastanza presto anche con dispositivi e accessori personali. Accediamo a internet da reti non attendibili e a volte anche ostili. Dato che gran parte delle nostre vite si sposta online, è imperativo adottare misure per proteggere i nostri dati e quelli dei nostri utenti.

Prima di tutto, in qualità di sviluppatori, dobbiamo conoscere la necessità e la praticità di SSL.

Che cos'è SSL? È l'acronimo di Secure Sockets Layer, 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 tua connessione a internet. SSL ha i suoi difetti, ma è il modo principale, e in realtà l'unico, per garantire qualsiasi tipo di sicurezza della comunicazione dati su internet.

Secondo SSL Pulse, un anno fa c'era circa il 15% circa di adozione di SSL, che ora supera il 50%.

Due acronimi:

  • TLS: per la maggior parte degli intent e degli scopi corrisponde a 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, ma solo del livello delle funzionalità di sicurezza di SSL e HTTP standard. Innanzitutto l'handshake client-server, utilizzando la crittografia a chiave pubblica/privata per creare una chiave condivisa, che viene utilizzata dalla seconda parte del protocollo SSL per criptare la comunicazione.

Il networking su internet può sembrare sicuro, immediato e veloce. Sembra di parlare direttamente con il sito web. Ma in realtà non si tratta di un legame diretto. Le nostre comunicazioni passano tramite un router Wifi, 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 specificando HTTPS o fanno clic su un link utilizzando HTTP. Peggio ancora, è possibile montare un attacco (wo)man in the middle e sostituire HTTPS con HTTP. Uno strumento chiamato SSLstrip introdotto nel 2009 fa proprio questo. Firesheep, dal 2010, ha appena ascoltato le reti Wi-Fi aperte per verificare se i cookie venivano inviati in chiaro: ciò significava poter ascoltare in chat o accedere all'account Facebook di qualcuno.

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

"Nel gennaio 2010, Gmail è passato all'utilizzo del protocollo HTTPS per tutti i servizi per impostazione predefinita. Per fare ciò, non abbiamo dovuto eseguire il deployment di macchine aggiuntive né di hardware speciale. Sulle nostre macchine frontend di produzione, SSL rappresenta meno dell'1% del carico della CPU, < 10 kB di memoria per connessione e meno del 2% dell'overhead di rete...

Se smetti di leggere ora devi solo ricordare una cosa: SSL non è più costoso dal punto di vista di calcolo."

Overclocking SSL, Adam Langley (Google)

Infine, un paio di bug che riscontriamo più comunemente:

  • Contenuti misti: siti che utilizzano HTTP e HTTPS. L'utente si infastidirà perché dovrà fare clic su un pulsante di autorizzazione per caricare i contenuti. (Chrome e Firefox in realtà barrano i contenuti misti degli iframe). Assicurati che tutte le risorse in una pagina HTTPS vengano caricate tramite HTTPS utilizzando URL relativi o relativi a schema, ad esempio <style src="//foo.com/style.css">.
  • Cookie non sicuri:vengono 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 SSL Transport Security (HSTS).

Possessi guadagnati

  • Per la privacy e l'integrità dei dati degli utenti, è necessario utilizzare il protocollo SSL. È più facile, veloce e più economico che mai.
  • Evita i comuni trucchi di implementazione, ad esempio bug dei contenuti misti o non impostare correttamente i bit dell'intestazione HTTP.
  • Utilizza URL relativi o relativi allo schema.
  • Scopri alcune delle novità più interessanti, come HSTS e il blocco dei certificati

Presentazioni:Hai SSL?

API multimediali per il web multi-dispositivo

di Sam Dutton e Jan Linden

Insieme alla proliferazione di nuovi dispositivi e piattaforme sul web, stiamo assistendo a una crescita enorme delle comunicazioni audio, video e in tempo reale. I media online stanno trasformando il modo in cui consumiamo contenuti multimediali di tutti i tipi.

Uno studio del governo del Regno Unito ha rilevato che il 53% degli adulti svolge attività multimediali "multitasking" mentre guarda la TV: utilizza i dispositivi mobili per condividere e consumare contenuti multimediali. In molti paesi la TV sta calando, mentre quella online è in aumento. In Cina, ad esempio, nel 2012 solo il 30% delle famiglie di Pechino guardava la TV, in calo rispetto al 70% del 2009. Secondo il report W3C Highlights 2013, "Nell'ultimo anno la visione di video sui dispositivi mobili è raddoppiata. Quest'anno negli Stati Uniti, il tempo medio giornaliero trascorso sui media digitali supererà la visione della TV. La visione non è più un atto passivo. Negli Stati Uniti, l'87% dei consumatori di contenuti di intrattenimento afferma di utilizzare almeno un dispositivo con un secondo schermo mentre guarda la TV". Secondo Cisco, "il video ... sarà compreso tra l'80 e il 90% del traffico globale dei consumatori entro il 2017". Ciò equivale a quasi un milione di minuti di video al secondo.

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

Possessi guadagnati

  • WebRTC fornisce comunicazione in tempo reale nel browser ed è ora ampiamente supportato su dispositivi mobili e desktop. In totale esistono già oltre 1,2 miliardi di endpoint WebRTC.
  • Web Audio fornisce strumenti sofisticati per la sintesi e l'elaborazione dell'audio.
  • Web MIDI, integrato con Web Audio, consente l'interazione con dispositivi MIDI.
  • Ora gli elementi audio e video sono supportati su più dell'85% dei browser per dispositivi mobili e desktop.
  • Le estensioni per origini multimediali possono essere utilizzate per lo streaming adattivo e lo spostamento temporale.
  • EME consente la riproduzione di contenuti protetti.
  • Le trascrizioni, i sottotitoli e l'elemento traccia consentono di attivare sottotitoli, sottotitoli codificati, metadati a tempo, link diretti e ricerca approfondita.

Presentazioni: API multimediali per il Web multi-dispositivo