Chrome Dev Summit – otwórz podsumowanie platformy internetowej

autorzy: Greg Simon & Eric Seidel

Blink to mechanizm renderowania typu open source w Chrome. Zespół Blink rozwija internet i rozwiązuje problemy, z którymi mierzą się deweloperzy.

Od wprowadzenia na rynek w kwietniu wprowadziliśmy szereg ulepszeń „za kulisami”.

Najpierw usunęliśmy połowę naszego źródła, co niekoniecznie było nam potrzebne. To jeszcze nie koniec! Nie robimy tego ślepo: usuwanie kodu odbywa się na podstawie zebranych anonimowych danych zbiorczych statystyk użytkowników Chrome, którzy wyrażają zgodę na raportowanie.

Co 6 tygodni publikujemy nowy interfejs API dla programistów – tyle samo co harmonogram wysyłki w Chrome.

Jedną z dużych zmian, jakie wprowadziliśmy w momencie rozwidlenia Blink, było dodanie systemu intencji: za każdym razem, zanim będziemy wprowadzać zmiany na platformie internetowej, przesyłamy publiczne ogłoszenie do Blink dev z zapowiedzią dodania lub usunięcia funkcji. Potem zaczynamy kodować! a już następnego dnia po zameldowaniu się funkcja jest już w naszych wersjach do wczesnych testów. Ta funkcja jest domyślnie wyłączona, ale możesz ją włączyć, używając elementu about:flags.

Następnie na naszej publicznej liście adresowej ogłaszamy zamiar wysyłki.

Na stronie chromestatus.com możesz przejrzeć funkcje, nad którymi pracujemy, które wprowadziliśmy, a także te, które planujemy wycofać. Możesz też zapoznać się z blogiem o wersjach Chromium zawierającym linki do błędów oraz panelem narzędzia do śledzenia błędów.

Kolejną dużą zmianą jest usunięcie prefiksów WebKit. Intencją nie jest korzystanie z prefiksów Blink, ale stosowanie flag czasu działania (a nie tylko flag czasu kompilacji).

Komponent WebView Androida był dużym wyzwaniem, ale HTML5Test pokazuje, że wszystko się poprawia. Jesteśmy dużo bliżej korzystania z komputerów, jeśli chodzi o wszelkie posiadanie jednego zestawu interfejsów API platformy internetowej (Web Audio jest tego świetnym przykładem).

Ale jak działa maszyna do kiełbasy? Każda zmiana, którą wprowadzamy w Blink, jest natychmiast poddawana ponad 30 tys. testów, nie wspominając o wszystkich testach Chromium, które uruchamiamy później. Stosujemy 24-godzinne szeryfowanie z tysiącami botów, tysiącami testów porównawczych i systemami, które rzucają miliony stron internetowych na nasz silnik, żeby się nie przewodzić. Wiemy, że urządzenia mobilne działają znacznie wolniej, i pracujemy nad tym, aby ulepszyć tę funkcję.

Co nowego?

  • Web Komponenty: zobacz prezentację Erica Bidelmana.
  • Animacje internetowe: złożone, zsynchronizowane, wysokiej jakości animacje korzystające z GPU, gdy tylko jest to możliwe.
  • Częściowy układ: oblicz tylko to, co jest potrzebne
  • Siatka CSS
  • Obrazy elastyczne: srcset, srcN lub ?
  • Szybsze automatyczne dostosowywanie rozmiaru tekstu i spójne czcionki subpikselowe
  • Skia, czyli system graficzny używany przez Blink, przechodzi w systemie Windows z GDI na DirectWrite

Chcemy poznać Twoje zdanie.

Jeśli czujesz, że C++ masz we krwi i chcesz napisać z nami C++, cały nasz kod jest otwarty. Nie musisz nikomu mówić ani o tym informować. Wystarczy opublikować poprawkę lub zgłosić błąd.

Prezentacje: Mrugnięcie

Bezpieczeństwo

autor: Parisa Tabriz

Obecnie więcej osób niż kiedykolwiek wcześniej łączy się z internetem i z wielu miejsc.

Mamy połączenie z laptopami, telefonami i tabletami, a zapewne już niedługo również osobistymi urządzeniami i akcesoriami. Dostęp do internetu uzyskujemy z niezaufanych, a czasem nawet wrogich sieci. Wiele osób przenosimy do internetu, dlatego tak ważne jest, aby chronić nasze dane i użytkowników i skalowalnych danych.

Przede wszystkim musimy zrozumieć, że protokół SSL jest uzasadniony i przydatny w praktyce.

Co to jest SSL? (Secure Sockets Layer) to protokół kryptograficzny zaprojektowany w celu zapewnienia bezpieczeństwa komunikacji w internecie. Gwarantuje prywatność dzięki szyfrowaniu i integralności, aby chronić Twoje połączenie z internetem i zapobiegać jego odczytaniu. Protokół SSL ma pewne wady, ale jest wiodącym – i właściwie jedynym – zapewniającym bezpieczeństwo komunikacji danych w internecie.

Według danych Pulse SSL rok temu udało nam się wdrożyć około 15% protokołu SSL. jest ona przystosowana w ponad 50%.

Dwa akronimy:

  • TLS: do większości intencji i celów tak samo jak SSL. Nazwa protokołu SSL 3.1 została zmieniona na TLS, a TLS to nazwa standardu IETF. Ale są wymienne!

  • HTTPS: to protokół HTTP przez SSL, czyli nakładanie się zabezpieczeń SSL i standardowego protokołu HTTP. Najpierw uzgadnia się połączenie klient-serwer przy użyciu kryptografii klucza publicznego/prywatnego, aby utworzyć udostępniony klucz, który jest używany przez drugą część protokołu SSL do szyfrowania komunikacji.

Używanie sieci w internecie może wydawać się bezpieczne, natychmiastowe i szybkie. Mam wrażenie, że rozmawiamy bezpośrednio z witryną. W rzeczywistości nie jest to jednak bezpośrednie połączenie. Nasza komunikacja między Twoim urządzeniem a witryną odbywa się przez router Wi-Fi, dostawcę usług internetowych i potencjalnie inne pośredniczące serwery proxy. Bez HTTPS cała nasza korespondencja odbywa się zwykłym tekstem.

Problem polega na tym, że użytkownicy rzadko wpisują pełny adres URL zawierający protokół HTTPS lub klikają link za pośrednictwem protokołu HTTP. Co gorsza, możliwy jest atak typu „man in the middle” i zastąpienie protokołu HTTPS protokołem HTTP. Właśnie do tego służy narzędzie o nazwie SSLstrip wprowadzone w 2009 roku. Firesheep z 2010 roku słuchał otwartych sieci Wi-Fi w oczekiwaniu na przesłanie plików cookie. Oznaczało to, że można było podsłuchać wiadomości na czacie lub zalogować się na czyjeś konto na Facebooku.

Protokół SSL jest (względnie) niedrogi, szybki i łatwy do wdrożenia (zapoznaj się z ssllabs.com i książką Ilyi Grigorika „High Performance Browser Networking”). Przypinanie klucza publicznego umożliwia operatorom witryn ograniczenie możliwości urzędów certyfikacji, które mogą wystawiać certyfikaty dla ich witryn.

„W styczniu tego roku (2010) Gmail domyślnie zaczął używać protokołu HTTPS do wszystkiego. Nie musieliśmy udostępniać żadnych dodatkowych komputerów ani żadnego specjalnego sprzętu. Na naszych produkcyjnych komputerach frontendu konta SSL dla domeny < 1% obciążenia procesora < 10 KB pamięci na połączenie i < 2% narzutu sieci...

Jeśli przestaniesz czytać teraz, wystarczy pamiętać, że protokół SSL nie jest już kosztowny technicznie”.

Overclocking SSL, Adam Langley (Google)

Na koniec kilka najczęściej spotykanych błędów:

  • Treść mieszana: witryny korzystające zarówno z protokołu HTTP, jak i HTTPS. Twój użytkownik będzie zirytowany, bo w celu załadowania treści będzie musiał kliknąć przycisk uprawnień. (Chrome i Firefox faktycznie blokują treści mieszane w elementach iframe). Upewnij się, że wszystkie zasoby na stronie HTTPS są ładowane przez HTTPS. W tym celu użyj adresów URL względnych lub zależnych od schematu, na przykład <style src="//foo.com/style.css">.
  • Niezabezpieczone pliki cookie: wysyłane bez pytania przez połączenie HTTP. Aby tego uniknąć, ustaw atrybut bezpieczny w nagłówkach plików cookie. Możesz też użyć nowego standardu „Strict Transport Security” nagłówek wymagający protokołu SSL Transport Security (HSTS).

Wnioski

  • Jeśli dbasz o prywatność i integralność danych, musisz używać protokołu SSL. Jest szybsza, łatwiejsza i tańsza niż kiedykolwiek wcześniej.
  • Unikaj typowych problemów z implementacją, takich jak błędy związane z treścią mieszaną lub nieustawienie odpowiednich bitów nagłówka HTTP.
  • Użyj względnych adresów URL lub schematów.
  • Poznaj nowe, przydatne funkcje, takie jak HSTS i przypinanie certyfikatów

Prezentacje: Korzystasz z protokołu SSL?

Interfejsy Media API na potrzeby sieci na wiele urządzeń

autorzy: Sam Dutton & Jan Linden

Wraz z rozwojem nowych urządzeń i platform internetowych obserwujemy ogromny wzrost wykorzystania usług audio, wideo i komunikacji w czasie rzeczywistym. Media online zmieniają sposób, w jaki korzystamy z różnego rodzaju multimediów.

Z badania przeprowadzonego przez brytyjski rząd wynika, że 53% dorosłych „wielozadaniowo” korzysta z multimediów. podczas oglądania telewizji: korzystanie z multimediów i udostępnianie ich na urządzeniach mobilnych. W wielu krajach liczba widzów oglądających telewizję spada, a oglądalność online rośnie. Na przykład w Chinach w 2012 roku tylko 30% gospodarstw domowych w Pekinie oglądało telewizję. W 2009 r. było to 70%. Według raportu W3C Reviews 2013 „W zeszłym roku oglądanie filmów na urządzeniach mobilnych podwoiło się. W tym roku w Stanach Zjednoczonych średni dzienny czas spędzany na korzystaniu z mediów cyfrowych przewyższa czas oglądania telewizji. Oglądanie treści nie jest już czynnością pasywną. W Stanach Zjednoczonych 87% konsumentów zajmujących się rozrywką twierdzi, że podczas oglądania telewizji korzysta z co najmniej jednego drugiego ekranu”. Według danych firmy Cisco „wideo... do 2017 r. znajdzie się w zakresie 80–90% globalnego ruchu konsumentów”. Łącznie daje to niemal milion minut filmów na sekundę.

Co zatem mamy dla programistów stron internetowych? Ekosystem interfejsów API mediów do otwartego internetu: ustandaryzowane, współdziałające technologie, które działają na wielu platformach.

Wnioski

  • WebRTC umożliwia komunikację w czasie rzeczywistym w przeglądarce. Jest teraz powszechnie obsługiwana na urządzeniach mobilnych i komputerach. W sumie jest już ponad 1,2 miliarda punktów końcowych WebRTC.
  • Web Audio udostępnia zaawansowane narzędzia do syntezy i przetwarzania dźwięku.
  • Web MIDI, zintegrowany z Web Audio, umożliwia interakcję z urządzeniami MIDI.
  • Elementy audio i wideo są teraz obsługiwane w ponad 85% przeglądarek na urządzeniach mobilnych i komputerach.
  • Rozszerzenia źródła multimediów mogą służyć do adaptacyjnego strumieniowania i przesuwania w czasie.
  • EME umożliwia odtwarzanie treści chronionych.
  • Transkrypcje i elementy ścieżki umożliwiają dostęp do napisów, napisów, metadanych z czasem, precyzyjnych linków i precyzyjnego wyszukiwania.

Prezentacje: Interfejsy Media API na potrzeby sieci na wiele urządzeń