Chrome Dev Summit – otwórz podsumowanie platformy internetowej

Greg Simon i Eric Seidel

Blink to mechanizm renderowania o otwartym kodzie źródłowym używany w Chrome. Zespół Blink rozwija sieć i rozwiązuje problemy, z którymi spotykają się deweloperzy.

Od czasu wprowadzenia tej funkcji w kwietniu wprowadziliśmy wiele ulepszeń.

Najpierw usunęliśmy połowę źródła, którego nie potrzebowaliśmy. To jeszcze nie koniec. Nie robimy tego w ciemno: usuwanie kodu odbywa się na podstawie anonimowych statystyk pochodzących od użytkowników Chrome, którzy wyrazili zgodę na zgłaszanie.

Co 6 tygodni publikujemy nowy interfejs API dla deweloperów: w tym samym harmonogramie co Chrome.

Jedną z większych zmian, które wprowadziliśmy po odgałęzieniu się od Blinka, było dodanie systemu intencji: za każdym razem, gdy chcemy wprowadzić zmianę w platformie internetowej, wysyłamy publiczny komunikat do Blink dev, w którym informujemy o zamiarze dodania lub usunięcia funkcji. Potem kodujemy. Następnego dnia po przesłaniu funkcji jest ona już dostępna w wersjach Canary. Ta funkcja jest domyślnie wyłączona, ale możesz ją włączyć, korzystając z about:flags.

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

Na stronie chromestatus.com możesz sprawdzić funkcje, nad którymi pracujemy, funkcje, które już udostępniliśmy, oraz te, które planujemy wycofać. Możesz też zajrzeć na blog o wersjach Chromium, gdzie znajdziesz linki do błędów i panelu śledzenia.

Kolejną ważną zmianą jest usunięcie prefiksów WebKit. Nie chodzi o użycie prefiksów Blink, ale o flagi czasu wykonywania (a nie tylko flagi czasu kompilacji).

Komponent WebView na Androidzie stanowił duże wyzwanie, ale HTML5Test pokazuje, że sytuacja się poprawia. W przypadku interfejsów API platformy internetowej mamy już znacznie bliższe podejście do komputerów (Web Audio to świetny przykład).

Jak działa maszyna do produkcji kiełbasy? Każda zmiana w Blink jest natychmiast sprawdzana za pomocą ponad 30 tys. testów, nie wspominając już o dodatkowych testach Chromium przeprowadzanych później. Korzystamy z 24-godzinnego nadzoru, w którym biorą udział tysiące botów, tysiące punktów odniesienia i systemy, które wysyłają do naszego silnika miliony uszkodzonych stron internetowych, aby upewnić się, że nie ulegnie awarii. Wiemy, że na urządzeniach mobilnych działanie jest znacznie wolniejsze, dlatego ciężko pracujemy nad poprawą tej sytuacji.

Co nowego?

  • Web Components: obejrzyj wykład Erica Bidelmana.
  • Animacje w internecie: złożone, zsynchronizowane, wydajne animacje, które w miarę możliwości korzystają z GPU.
  • Układ częściowy: obliczaj tylko to, czego potrzebujesz.
  • Siatka CSS
  • Obrazy elastyczne: srcset lub srcN lub ?
  • Szybsze automatyczne dostosowywanie rozmiaru tekstu i spójność czcionek na poziomie poniżej piksela
  • Skia, system graficzny używany przez Blink, przechodzi z GDI na DirectWrite w systemie Windows

Chcemy poznać Twoją opinię.

Jeśli C++ jest w Twojej krwi i chcesz z nami pisać w tym języku, cały nasz kod jest otwarty. Nie musisz nikomu o tym mówić ani nas o tym informować. Możesz po prostu opublikować poprawkę lub zgłosić błąd.

Prezentacje: Blink

Bezpieczeństwo

przez Parisa Tabriza

Obecnie więcej osób niż kiedykolwiek wcześniej korzysta z internetu, a dostęp do niego mają z większej liczby miejsc.

Jesteśmy połączeni z naszych laptopów, telefonów i tabletów, a wkrótce także z urządzeń osobistych i akcesoriów. Dostęp do internetu mamy z niepewnych, a czasem nawet wrogich sieci. Ponieważ coraz więcej aspektów naszego życia przenosi się do internetu, musimy podjąć kroki w celu ochrony naszych danych i danych naszych użytkowników.

Jako deweloperzy musimy przede wszystkim zrozumieć, dlaczego protokół SSL jest niezbędny i praktyczny.

Co to jest SSL? Jest to skrót od Secure Sockets Layer. Jest to protokół kryptograficzny, który zapewnia bezpieczeństwo komunikacji w internecie. Zapewnia prywatność dzięki szyfrowaniu i integralności, aby zapobiec szpiegowaniu lub manipulowaniu połączeniem internetowym. Protokół SSL ma swoje wady, ale jest najlepszym, a w istocie jedynym sposobem na zapewnienie bezpieczeństwa komunikacji danych w internecie.

Według SSL Pulse rok temu stosowanie protokołu SSL wynosiło około 15%. Obecnie jest to ponad 50%.

2 skróty:

  • TLS: w większości przypadków taki sam jak SSL. Dokładniej rzecz biorąc, SSL 3.1 zostało przemianowane na TLS, a TLS to nazwa standardu IETF. Ale są one zamienne.

  • HTTPS: to HTTP przez SSL, czyli nakładanie funkcji bezpieczeństwa SSL i standardowego HTTP. Najpierw odbywa się wymiana kluczy między klientem a serwerem, która wykorzystuje szyfrowanie kluczem publicznym/prywatnym do utworzenia klucza wspólnego. Druga część protokołu SSL wykorzystuje ten klucz do szyfrowania komunikacji.

Nawiązywanie kontaktów w internecie może wydawać się bezpieczne, szybkie i wygodne. Mam wrażenie, że rozmawiamy bezpośrednio ze stroną internetową. W rzeczywistości nie jest to jednak połączenie bezpośrednie. Nasze komunikaty przechodzą przez router Wi-Fi, dostawcę usług internetowych i potencjalnie inne pośrednie serwery proxy między Twoim urządzeniem a witryną. Bez HTTPS cała nasza komunikacja jest w postaci zwykłego tekstu.

Problem w tym, że użytkownicy rzadko wpisują pełny adres URL z protokołem HTTPS lub klikają link z protokołem HTTP. Co gorsza, można przeprowadzić atak typu „człowiek w środku” i zastąpić HTTPS protokołem HTTP. W 2009 r. pojawiło się narzędzie SSLstrip, które właśnie to robi. Firesheep z 2010 r. po prostu nasłuchiwał otwartych sieci Wi-Fi w celu wykrycia ciasteczek wysyłanych w pełnym szyfrowaniu. Oznaczało to, że można było podsłuchiwać czaty lub logować się na czyjeś konto na Facebooku.

Jednak SSL jest (względnie) tani, szybki i łatwy do wdrożenia (sprawdź ssllabs.com i książkę Ilya Grigorik High Performance Browser Networking). Pinning publicznego klucza ma na celu zapewnienie operatorom witryn możliwości ograniczenia liczby urzędów certyfikacji, które mogą wystawiać certyfikaty dla ich witryn.

„W styczniu tego roku (2010 r.) Gmail domyślnie zaczął używać protokołu HTTPS. Aby to zrobić, nie musieliśmy wdrażać żadnych dodatkowych maszyn ani specjalnego sprzętu. Na naszych produkcyjnych maszynach front-end SSL odpowiada za mniej niż 1% obciążenia procesora, mniej niż 10 KB pamięci na połączenie i mniej niż 2% narzutu sieciowego.

Jeśli chcesz już przestać czytać, musisz zapamiętać tylko jedną rzecz: szyfrowanie SSL nie jest już tak kosztowne pod względem zasobów obliczeniowych”.

Overclocking SSL, Adam Langley (Google)

Na koniec kilka najczęstszych błędów:

  • Treści mieszane: witryny, które korzystają z protokołu HTTP i HTTPS. Użytkownik może się zirytować, ponieważ będzie musiał kliknąć przycisk uprawnień, aby wczytać treści. (Chrome i Firefox blokują zawartość mieszaną w elementach iframe). Upewnij się, że wszystkie zasoby na stronie HTTPS są wczytywane przez HTTPS, używając względnych lub względnych adresów URL, np. <style src="//foo.com/style.css">
  • Niebezpieczne pliki cookie: wysyłane w postaci zwykłego tekstu przez połączenie HTTP. Aby tego uniknąć, ustaw atrybut secure w nagłówkach plików cookie. Możesz też użyć nowego nagłówka „Strict Transport Security”, aby wymagać protokołu SSL Transport Layer Security (HSTS).

Wnioski

  • Jeśli zależy Ci na ochronie prywatności i integralności danych użytkowników, musisz używać protokołu SSL. Jest szybszy, prostszy i tańszy niż kiedykolwiek wcześniej.
  • Unikaj typowych błędów implementacji, takich jak błędy związane z treścią mieszaną lub nieprawidłowe ustawienie bitów nagłówka HTTP.
  • Używaj adresów URL bezwzględnych lub zależnych od schematu.
  • Sprawdź kilka nowych, fajnych rzeczy, takich jak HSTS i przypinanie certyfikatów

Slajdy: Masz certyfikat SSL?

Interfejsy Media API na potrzeby internetu na wielu urządzeniach

Sam Dutton i Jan Linden

Wraz z rozwojem nowych urządzeń i platform internetowych obserwujemy ogromny wzrost udziału dźwięku, obrazu i komunikacji w czasie rzeczywistym. Internetowe media zmieniają sposób, w jaki korzystamy z mediów.

Badanie przeprowadzone przez brytyjski rząd wykazało, że 53% dorosłych oglądających telewizję jednocześnie korzysta z urządzeń mobilnych do udostępniania i oglądania multimediów. W wielu krajach oglądalność telewizji spada, a oglądalność online rośnie. Na przykład w 2012 r. w Chinach tylko 30% gospodarstw domowych w Pekinie oglądało telewizję, w porównaniu z 70% w 2009 r. Według W3C Highlights 2013 „w ciągu ostatniego roku oglądanie filmów na urządzeniach mobilnych podwoiło się”. W tym roku w Stanach Zjednoczonych średni czas korzystania z mediów cyfrowych dziennie przekroczy czas oglądania telewizji. Oglądanie nie jest już czynnością bierną. W Stanach Zjednoczonych 87% konsumentów korzystających z rozrywki deklaruje, że podczas oglądania telewizji używa co najmniej jednego drugiego ekranu. Według Cisco „do 2017 r. filmy będą stanowić od 80 do 90% globalnego ruchu generowanego przez konsumentów”. Oznacza to prawie milion minut filmów w każdej sekundzie.

Co mamy dla programistów stron internetowych? Ekosystem interfejsów API multimediów dla otwartej sieci: ustandaryzowane, interoperacyjne technologie, które działają na wielu platformach.

Wnioski

  • WebRTC umożliwia komunikację w czasie rzeczywistym w przeglądarce i jest obecnie szeroko obsługiwany na urządzeniach mobilnych i komputerach. Łącznie jest już ponad 1,2 mld punktów końcowych WebRTC.
  • Web Audio zawiera 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 mobilnych i na komputery.
  • Rozszerzenia źródła multimediów można używać do strumieniowego przesyłania adaptacyjnego i przesuwania w czasie.
  • EME umożliwia odtwarzanie treści chronionych.
  • Transkrypcje, napisy i element utworu umożliwiają tworzenie napisów, metadanych z czasem, precyzyjnych linków i precyzyjnych wyszukiwań.

Prezentacje: interfejsy Media API na potrzeby korzystania z internetu na wielu urządzeniach