文字起こし · CC BY 3.0

ウェブプラットフォームの新機能 | 基調講演

このページのタイトル、字幕、要約、読書メモは保存済みの AI 翻訳です。誤りが含まれる場合があります。タイムスタンプは原文と同じです。原文の字幕を開き、元の動画と照合できます。

Googleの2021ウェブプラットフォーム基調講演では、プライバシー、アプリ統合、WebAssembly、グラフィックス、そしてより高速なウェブ体験を構築するためのツールを取り上げています。

Chrome for Developers · 公開日 · 30分 · 英語 · ライセンス:CC BY 3.0 · ソース:YouTubeで視聴

文字起こしの出典:YouTubeに作成者がアップロードしたキャプション。AIによる句読点の付加はVidleafによるもので、元の文言とタイムスタンプのアンカーは保持されています。元の文字起こしは以下でご覧いただけます。

AI生成の要約

この2021 Chrome基調講演は、プライバシー、より有能なアプリケーション、開発者の生産性という三つのテーマを通してウェブプラットフォームを紹介します。講演者は、Privacy Sandboxの提案、ファイルやデバイスとのブラウザ統合、グラフィックス、WebAssembly、パフォーマンスの改善について議論します。また、開発者ツールとCore Web Vitalsを、アプリケーションをより高速かつブラウザ間でより一貫性のあるものにする取り組みと結びつけます。この講演は、そのイベントで発表された機能、実験、計画の記録です。その例は当時のプラットフォームの方向性を説明するのに役立ちます。今後のリリースやトライアルへの言及は、その歴史的な文脈に属します。

要点

  • [2:32] キーノートは、ブラウザのプライバシーに関する取り組みを、分離と広範なトラッキングに代わる目的特化型の代替手段を中心に位置づけています。
  • [18:26] WebAssemblyは、既存の非JavaScriptコードをブラウザアプリケーションに持ち込みます。
  • [26:38] クロスブラウザ互換性は、ウェブ開発者にとって継続的な優先事項として提示されています。

記録から生成されました。リンクされた箇所を元のビデオと照合してください。概要と要点はVidleafが2026-10-21に確認しました。

全体概要

ChromeのリーダーであるBenとDionは、ウェブが単純な接続されたドキュメントから、何十億人もの人々に利用される高性能な汎用コンピューティングプラットフォームへとどのように進化してきたか、そしてパンデミックがオンラインインタラクションと変化のペースを加速させたことを説明します。このセッションでは、今年の開発を「デフォルトのプライバシー」「強力でシームレスなウェブアプリ」「開発者の生産性」という三つのテーマに沿って整理します。プライバシーに関しては、Privacy Sandboxモデル、Cookieを設定したサイトのみに表示されるようにする変更(現在Chrome、Edgeで施行され、まもなくFirefoxでも施行予定)、およびユーザーを特定するデータを共有せず差分プライバシーを使用するAttribution Reportingなどのプライバシー保護APIの代替手段について説明し、GoogleがサードパーティCookieの段階的廃止と他の隠れたトラッキングへの対処を準備していることを述べます。ウェブアプリについては、アプリショートカット、Badging API、近日公開予定のDeclarative Link Capturingオリジントライアルなどの再エンゲージメント機能、改善されたインストールUI、Multi-Screen Window Placement API、File System Access API、期待される実験的なFile Handling API、さらにWeb HID(Joy-Conを例に)、Gamepad API、Piper MakeがソフトウェアやドライバをインストールせずにRaspberry Pi Picoをプログラムするために使用するWeb SerialなどのデバイスAPIを取り上げます。グラフィックスとパフォーマンスの分野では、Mapsの傾斜と回転のベータ版とWebGLOverlayView(ユカタン半島上でthree.jsを用いてデモ)、実験的なWebGPU、Google Meetのブラウザ内メディア処理パイプラインで200%の向上をもたらしたV8 SIMDオリジントライアルについて説明します。第二部ではさらなる向上を概観します。ブラウザ内のTensorFlowを活用した背景ぼかし機能、すべてのChromeユーザーに予定されているSIMD、ReplicacheがRustをWebAssemblyにコンパイルするなどのWebAssembly移植作業、Chrome 88でChrome for Androidに登場するWebAssemblyスレッド、Chrome DevToolsでの改善されたWebAssemblyデバッグ、V8 Sparkplugコンパイラ、一部のユーザーに提供された集中的タイマー調整、content-visibilityサポート、Chrome 87のAndroidでのBFCacheとデスクトップへの拡大計画、今年後半に予定されている同一サイト事前読み込みのためのプリレンダリングAPI、scroll-to-text拡張機能、近日公開のdocument transition API、クロスデバイスのワンタイムパスワード、Core Web VitalsとLighthouseツール、CSSの課題に焦点を当てたCompat2021クロスブラウザの取り組み、DevToolsの更新と拡張機能について説明します。

タイムスタンプ付きの章の要約

ウェブの進化とI/Oのテーマに関するChromeリーダーたち

  • [0:05] BenとDionはChromeチームのリーダーであり、長年にわたりウェブプラットフォームに共に取り組んできました。
  • [0:13] ウェブサイトは単純な接続されたドキュメントからリッチでインタラクティブなウェブアプリへと進化し、ウェブは今や世界中の数十億人が使用する高性能で汎用のコンピューティングプラットフォームとなっています。
  • [0:29] パンデミックはより多くの日常的なやり取りをオンラインに押しやり、ウェブの成長を加速させ、利用の急増に伴ってウェブ体験を改善しようとする動きを引き起こしました。
  • [0:47] 多くのコンピューティングプラットフォームが興隆と衰退を繰り返しており、「進化するか、さもなくば滅びる」という古い格言は、あらゆるプラットフォームが継続的に関連性を持ち続ける上で大きな役割を果たします。
  • [1:02] ウェブの進化のペースは、テクノロジーと社会全般のペースに合わせ続ける必要があるため、加速しています。
  • [1:11] 今年のGoogle I/Oでは、最新のウェブ開発を扱うセッションが行われ、このセッションでは今年心に留めておくべき主要なテーマを要約します。
  • [1:29] このセッションでは三つのテーマを扱います。すべてのユーザーに対するデフォルトのプライバシー、強力で高速かつシームレスなウェブアプリ、そして開発者が生産的で成功できるように支援することです。

Privacy SandboxとCookieの変更

  • [1:57] 現代のブラウザは、サンドボックスモデルを用いてデフォルトで各ウェブサイトを分離します。
  • [2:15] Chromeはまず各ウェブサイトを独自のプロセスに分離し、より最近では各クロスサイトiframeを独自のプロセスに分離しました。
  • [2:32] Googleは、情報をブラウザ内で安全に保つことを目的としたプライバシーサンドボックスを通じて、ユーザーデータとトラッキングにサンドボックスのアプローチを適用しています。
  • [2:50] Privacy Sandboxは二年前にコミュニティとのオープンな取り組みとして発表され、ウェブエコシステムを思慮深く移行させるよう注意が払われました。
  • [3:09] 最初のステップはChromeのCookieを変更し、設定した同じウェブサイトだけに見えるようにすることで、開発者はサードパーティCookieへのオプトインが必要になりました。
  • [3:35] 以前の広範なデフォルトのCookie可視性は、ユーザーをクロスサイトリクエストフォージェリ攻撃にさらすことでセキュリティ上の問題を生み出しました。
  • [4:01] このプライバシーを保護するデフォルトは現在Chrome、Edgeで施行されており、まもなくFirefoxでも施行されます。
  • [4:07] Googleは、フェデレーテッドログイン、パーソナライズ広告、コンバージョントラッキングなどのユースケースに対するプライバシーを保護する代替手段として、一連のAPIに協力して取り組んでいます。
  • [5:17] Attribution Reporting APIはサイト間でユーザーを特定するデータを一切共有しません。ブラウザが広告のコンバージョンを追跡し、時間遅延とノイズを加えた暗号化されたレポートを送信します。これは差分プライバシーとして知られる手法です。
  • [6:06] Attribution Reportingは本日、他のいくつかのAPIとともにChromeのオリジントライアル実験として利用可能であり、年内にはさらに多くのAPIが出荷される予定です。
  • [6:21] GoogleはサードパーティCookieを段階的に廃止し、他の形態の隠れたトラッキングに対する保護を実装する準備を進めています。

WebアプリのOS統合の進歩

  • [6:57] Webは、最新のブラウザで高速かつシームレスな体験を提供する強力なアプリケーションプラットフォームになりました。
  • [7:11] Chromebookは、OSのメンテナンスに関する専門知識がなくても、Webアクセスが手頃で安全かつシンプルであることを示しています。
  • [7:23] Googleの使命は、最先端のコンピューティング体験に必要な機能をWebに提供することです。
  • [7:40] Googleは、ユーザーがWebアプリとシームレスに再エンゲージできるようにする取り組みを行ってきました。
  • [8:03] 新しいアプリショートカット機能により、WebアプリはAndroid、Chrome OS、Windows、macOSでクイックアクションを公開できるようになります。
  • [8:14] Badging APIにより、Webアプリはアプリアイコンを装飾することで、控えめな再エンゲージメントのプロンプトを表示できます。
  • [8:24] ChromeはまもなくDeclarative Link Capturingのオリジントライアルを出荷する予定です。これは、適切なリンクでインストール済みのWebアプリを自動起動し、複数のインスタンスを防ぐことができます。
  • [8:45] ChromeのWebアプリインストールUIが改善されました。デスクトップでは製品内ヘルプ付きのオムニボックスアイコンが表示され、Androidではマニフェストから入力されるよりリッチなダイアログが表示されます。
  • [9:15] Multi-Screen Window Placement APIにより、Webアプリは接続されたディスプレイを検出し、ウィンドウの配置を制御できます。これはプレゼンテーションやビデオ会議アプリに役立ちます。
  • [9:36] File System Access APIにより、Webアプリはローカルファイルシステムの読み書きができます。これはGravit DesignerやPhotoBeeで使用されています。
  • [9:54] 新しいFile Handling APIは、Webアプリをファイルタイプハンドラーとして登録し、ユーザーがOSのファイルブラウザから直接ファイルを開けるようにするもので、今年後半に実験的リリースが期待されています。

デバイス接続のための新しいWeb API

  • [10:20] Webは長い間、Bluetooth MIDIデバイスと通信できました。
  • [10:25] 現在、いくつかの新しいAPIがこれらのデバイスのより広範なコレクションをサポートしています。
  • [10:35] Web HIDは、HIDプロトコルを使用して通信するデバイスのための新しいAPIです。
  • [10:40] NintendoのJoy-Conコントローラーは、HIDプロトコルをサポートするデバイスの一例です。
  • [10:48] 業界標準のGamepad APIがWebでサポートされるようになり、ブラウザ内のStadiaなどのアプリで妥協のないゲームプレイが可能になりました。
  • [11:01] Web Serial APIは、Webにシリアルポートのサポートを追加します。
  • [11:13] Piper Makeは、Raspberry Pi Picoをプログラミングするためのブロックベースのエディターで、デバイスを接続してブラウザを開くだけで使用でき、Web Serialのおかげでソフトウェアのインストールやドライバーのセットアップは不要です。
  • [11:31] これらの新しいWeb機能により、ブラウザを通じて深く統合されたシームレスな体験が可能になります。

Maps WebGL 3D機能ベータ版

  • [11:49] Mapsは数年前にWebGLを採用し、ハードウェアアクセラレーションによるグラフィックスとより強力なUIを実現しました。
  • [11:58] 昨年、MapsチームはWebGLでアクセラレーションされた地図機能をMaps JavaScript API経由でWebアプリで利用できるようにしました。
  • [12:34] 開発者基調講演では、二つの新機能のベータリリースが発表されました。傾斜と回転、そしてWebGLOverlayViewです。
  • [12:46] これらの機能により、開発者はベースマップのレンダリングに使用される同じWebGLコンテキストを使用して、初めて地図を三次元で操作できるようになります。
  • [13:06] このデモでは、three.jsを使用して、メキシコのユカタン半島を中心とした地図上に3Dオブジェクトをレンダリングします。ベクターマップ用のマップIDとカスタムスタイリングを使用します。
  • [13:29] WebGLOverlayViewは、google.maps.WebglOverlayViewを拡張することで実装され、ベースマップのWebGLレンダリングコンテキストのライフサイクルへのフックを公開します。
  • [13:51] デモは三つのフックに焦点を当てています。オーバーレイインスタンスが作成されたときのonAdd()、レンダリングコンテキストが利用可能になった後のonContextRestored()、そしてレンダリングが行われるonDraw()です。
  • [15:47] fromLatLngAltitude関数を備えたトランスフォーマーオブジェクトが投影行列を作成し、開発者が行列計算を行う手間を省きます。
  • [16:30] チルトと回転、そしてWebGLOverlayViewは、チームのコミットメントに対する最新の成果であり、さらに多くの機能が計画されています。

WebグラフィックスとWebAssemblyのパフォーマンス

  • [16:50] WebGLは、数年前に利用可能になったとき、Webに新たなレベルのグラフィックスパフォーマンスをもたらしました。
  • [16:56] 彼らはグラフィックスおよびWebコミュニティと緊密に協力して、Web上で新しいグラフィックスパフォーマンスを解き放つためにゼロから設計された次世代グラフィックスAPIであるWebGPUに取り組んでいます。
  • [17:10] WebGPUはVulcan、Metal、Direct 3D 12のような低レベルAPIから着想を得ており、まだ非常に実験的ですが、エキサイティングな可能性を秘めています。
  • [17:22] Web Assemblyは、V8のような最新のJavaScriptエンジンによってブラウザで実行可能な高速で効率的な形式にコードをコンパイルするための標準を提供します。
  • [17:34] 彼らは最近、V8でSIMDプロセッサ命令のサポートを実装することでWeb Assemblyに大幅なパフォーマンス向上をもたらし、特定のクラスのアプリをはるかに高速に実行できるようにしました。
  • [17:46] Google Meetは、SIMDの動作を示す強力な例です。

SIMDがGoogle Meetのパフォーマンスを向上

  • [17:55] ビデオを処理して強化することと、スムーズで低遅延のストリームを維持することの間には常に緊張関係があります。
  • [18:03] V8のSIMDの実験的オリジントライアルを使用して、Meetチームはブラウザ内メディア処理パイプラインで200%のパフォーマンス向上を達成しました。
  • [18:13] この向上により、彼らはブラウザ内のTensorFlowを活用した背景ぼかし機能をほとんどのユーザーに対して有効にするための余裕を得ました。
  • [18:22] SIMDは今後数か月以内にすべてのChromeユーザーに出荷される予定です。

WebAssemblyの移植とV8の更新

  • [18:26] WebAssemblyは、新しいユースケースのために非JavaScriptのコードベースをWebに持ち込むためによく使用されます。
  • [18:34] Replicacheの開発者は、RustのコードをWebAssemblyにコンパイルすることで、Web開発者がそれをWebアプリに組み込めるようにしました。
  • [18:48] V8は2019にWebAssemblyへスレッドサポートを追加し、コードの移植を容易にしましたが、それはデスクトップオペレーティングシステムでのみ有効でした。
  • [18:57] Chrome for Androidは一月のChrome 88でWebAssemblyスレッドを獲得しました。
  • [19:06] V8はChrome DevToolsでブレークポイントと変数検査によるWebAssemblyデバッグを強化しました。
  • [19:25] V8チームは、エンジンからさらに多くのJavaScriptパフォーマンスを引き出す取り組みも進めています。

V8コンパイラとChromeのパフォーマンス機能

  • [19:31] V8はJavaScriptを解釈するだけでなく、より効率的に実行するためにコードをオンザフライでコンパイルします。
  • [19:38] チームはSparkplugと呼ばれる新しいコンパイラを実装しました。
  • [19:49] 今年の初めに、Chromeは一部のユーザーに対して集中的なタイマースロットリングを提供しました。
  • [19:57] 集中的タイマー調整は、タブが五分以上バックグラウンドにあることを検出し、タブがオーディオやビデオを再生していない限り、そのタブでタイマーベースのJavaScriptが実行される頻度を遅くします。
  • [20:10] Chromeはcontent-visibilityと呼ばれる新しいCSSプロパティのサポートを提供しました。
  • [20:17] 要素にcontent-visibilityをautoに設定すると、その要素ツリーの内容が現在ユーザーのディスプレイに表示されていない場合、ブラウザはそのレンダリングをスキップできます。
  • [20:29] これにより、コンテンツの多いサイトでは劇的な速度向上が期待できます。

Chromeのインスタントナビゲーションとプリレンダリング

  • [20:51] 昨年十一月にリリースされたChrome 87は、Chrome on Androidに戻る/進むキャッシュ(BFCache)を追加しました。
  • [21:00] BFCacheは、別のページに移動した後も一部のWebページをメモリに保持するため、戻るまたは進むとそのページが即座に表示されます。
  • [21:11] モバイルでのナビゲーションの五分の一は、履歴スタックを後方または前方に移動します。
  • [21:21] ChromeのBFCacheは現在、いくつかの制限付きでAndroidで利用可能であり、近くChromeデスクトップにも拡大する計画があります。
  • [21:38] プリレンダリングは、ユーザーがリンクをクリックする前にWebページのリソースを読み込み、DOMをレンダリングしますが、副作用やサイト間でのユーザー情報の漏えいの可能性があるため、正しく実装するのは困難です。
  • [22:19] 新しいプリレンダリングAPIにより、開発者は今年後半に同一サイト内のプリロードを試験できるようになります。
  • [22:36] 昨年二月にChrome 80で追加されたscroll to textは、ブラウザがビューポートを特定のテキスト要素に位置付け、それをハイライトできるようにします。
  • [22:53] 画像にスクロールするscroll-to-text APIのバージョンが近日登場予定で、他の要素タイプも検討されています。
  • [22:59] 要素間のグラフィカルなトランジションを実験的にサポートする新しいドキュメントトランジションAPIが近日Chromeに登場予定です。

Webにおけるクロスデバイスワンタイムパスワード

  • [23:17] GoogleはWeb上でのセキュリティをよりシームレスにする取り組みを進めています。
  • [23:22] Web向けのクロスデバイスワンタイムパスワードは、講演者が特に期待している機能です。
  • [23:26] ワンタイムパスワードは、一部のサイトがログインのために送信する数字コードです。
  • [23:31] この機能により、Androidスマートフォンでワンタイムパスワードを受信し、それをノートパソコンなど別のデバイスのChromeに自動的に転送できます。
  • [23:45] Webの進化のペースは加速しています。

Core Web Vitalsと開発者ツール

  • [23:54] Googleは開発者にとってWebをより使いやすくする取り組みを進め、プラットフォームの主要な課題に対処するため、より広範なエコシステムと提携しています。
  • [24:03] web.devでは、詳細なチュートリアル、最新ニュース、Lighthouseウェブサイト監査ツールへのアクセスを提供しています。
  • [24:18] Lighthouseは、パフォーマンス、アクセシビリティ、SEOなどのカテゴリにわたってWebサイトを改善するための包括的なレポートを提供します。
  • [24:35] Core Web Vitalsと呼ばれる三つのLighthouseパフォーマンス指標は、ユーザーエクスペリエンスに特に大きな影響を与えます。
  • [24:44] Core Web Vitalsは、サイトが主要なコンテンツを表示する速さ、最初のインタラクションに対する応答性、レイアウトがどれだけシフトするかを総合的に測定します。
  • [25:03] イタリアの出版社GEDIは、ブランド付きのプレースホルダーで広告スペースを確保し、一部のJavaScriptをページが表示された後まで遅延させることで、モバイル記事ページの直帰率が8%改善したことを確認しました。
  • [25:41] ShopifyとWixは管理コンソールにパフォーマンスダッシュボードを実装し、WordPressコミュニティは画像とiframeの遅延読み込みを提供しました。
  • [25:56] GoogleはWordPress向けSite Kitプラグインを更新し、Core Web Vitalsの測定サポートと具体的な改善推奨事項を追加しました。
  • [26:07] Google Searchは、Core Web Vitalsがまもなく検索結果でのページランキングの要素になることを発表しました。

クロスブラウザ互換性とCSSのルネサンス

  • [26:38] 開発者は一貫してクロスブラウザ互換性の重要性を強調しています。
  • [26:42] 今年、彼らはCompat2021と呼ばれる業界横断的な取り組みへの参加を発表しました。
  • [26:49] Compat2021は、ウェブ開発者によって投票された上位五つのブラウザ互換性の課題を修正することを目指しており、それらはすべてCSSに関連しています。
  • [27:00] CSSはエキサイティングなルネサンスを迎えており、CSS FlexboxとGridはページレイアウトの大幅な改善として開発者に受け入れられています。
  • [27:13] Sassのような長年のCSSフレームワークから得られたネスティングなどの知見が、プラットフォームに組み込まれつつあります。
  • [27:22] 最も要望の多いCSS機能であるコンテナクエリは、ルールをグローバルに作用させるのではなく、自然にローカルコンテキストにスコープすることで、よりモジュール化され再利用可能なスタイルシートを可能にします。

Chrome DevToolsのアップデートと拡張機能

  • [27:37] Chromeに組み込まれた開発者ツールは最も人気のある機能の一つであり、強力なWeb開発のコパイロットとして機能します。
  • [27:48] 過去一年間で、DevToolsは新しいカラーピッカー、改善されたPWA警告とリンティング、Core Web Vitalsオーバーレイ、専用のCSS Flexboxデバッグ、ドロップフレームの可視化、CSSとJavaScriptのサポートなどの改善を獲得しました。
  • [28:09] DevToolsは拡張機能をサポートするプラットフォームでもあります。
  • [28:14] Angular DevTools Chrome拡張機能は、Angularアプリに特化したデバッグとパフォーマンスプロファイリングのサポートを提供します。
  • [28:25] 視聴者は、これらの新機能を詳しく知るためにChrome DevToolsのセッションへ案内されます。
  • [28:33] ウェブは根本的な形で進化しており、ユーザーのプライバシーを保護する新しいAPIによってデフォルトでプライベートになっています。

ウェブプラットフォームの進歩とエコシステムのサポート

  • [28:43] プラットフォームは、可能なことを広げ、より良いユーザー体験を提供する強力な新機能を引き続き獲得しています。
  • [28:51] チームは、ウェブが進化する中でエコシステムの開発者と協力し、成功のためのツールとガイダンスを確実に提供することに取り組んでいます。
  • [29:01] 視聴者は、今年のI/Oの他のセッションをチェックすることで、これらのウェブプラットフォームの改善の多くをより深く掘り下げることができます。
  • [29:11] スピーカーは視聴者に感謝し、進化したモダンウェブの機能で彼らが何を構築するのかを楽しみにしています。
  • [29:17] I/O Week中に視聴している方は、Adventureでチームを見つけに来るよう招待されています。

[0:05] -私はベンです。-私はディオンです。私たちはChromeチームのリーダーです。[ディオン] 私たち二人は長年にわたりウェブプラットフォームで協力してきました。ウェブサイトが単純な接続されたドキュメントから今日のリッチでインタラクティブなウェブアプリへと進化していくのを見るのは楽しいものでした。ウェブは、世界中の何十億もの人々に使われる高性能な汎用コンピューティングプラットフォームになりました。[ディオン] パンデミックによって私たちの日常のやり取りのより多くがオンラインに押しやられ、利用の急増に伴ってウェブ体験を改善しようとする動きが引き起こされたため、ウェブの成長は昨年加速しました。

[0:40] そして私たちにとって、これはウェブの重要性と、それをより良くするために私たち全員が協力する必要性を再確認させるものです。さて、過去数十年の間に多くのコンピューティングプラットフォームが興隆と衰退を繰り返すのを見てきました。一つのことは非常に明確です。進化するか死ぬかという古い格言が、あらゆるプラットフォームの継続的な関連性において大きな役割を果たしています。さて、ウェブは長年にわたり大きく進化してきました。そして今後を見据えると、進化のペースは加速していると思います。なぜなら、テクノロジーと社会全般に追いつくために、ある意味そうせざるを得ないからです。そこで今年のGoogle I/Oでは、ウェブの最新の開発動向のいくつかを皆さんに把握していただくためのセッションを多数用意しています。

[1:19] このセッションでは、今年心に留めておくべきだと私たちが考える主要なテーマを簡単にまとめます。そして、より詳しく学べる場所へと皆さんを案内します。まずはプライバシーから始め、ウェブがすべてのユーザーにデフォルトでプライベートなブラウジング体験を可能にするためにどのように進化しているかを説明します。次に、ウェブが強力で高速かつシームレスな新しい世代のウェブアプリと素晴らしいユーザー体験をどのように可能にしているかを取り上げます。そして最後に、開発者がウェブで生産的かつ成功できるよう支援するために私たちが行っている取り組みをまとめます。

[1:52] それではプライバシーから始めましょう。サンドボックスについて話すことから始めます。現代のブラウザはサンドボックスという比喩を中心に構築されています。訪問する各ウェブサイトは、まるで庭の砂場の壁のような仮想的な壁に囲まれているかのように、デフォルトでシステムの他の部分から、他のウェブサイトや開いている他のタブからも隔離されています。さて、Chromeは初期の頃からブラウザのサンドボックスモデルで革新を続け、まず各ウェブサイトを独自のプロセスに隔離しました。

[2:23] そして最近では、それを拡張して、ウェブページ上の各クロスサイトiframeを独自のプロセスに分離しています。私たちはユーザーデータとトラッキングにも同じアプローチを採用し、一種のプライバシーサンドボックスを構築して、すべての情報をブラウザ内で安全かつセキュアに保つことを目指しています。その結果、あなたの身元と活動がデフォルトでプライベートになるウェブが実現します。私たちは二年前にPrivacy Sandboxの取り組みをオープンなイニシアチブとして発表しました。これはコミュニティとの協力であり、このビジョンを実現すると同時に、ウェブエコシステムを新しいモデルへと思慮深く意図的に移行させるよう注意を払っています。

[3:07] 私たちの進捗状況について更新したいと思います。二年前のGoogle I/Oで発表された最初のステップは、ChromeでのCookieの動作を変更し、デフォルトでウェブサイト間で表示される状態から、設定した同じウェブサイトにのみ表示されるようにすることでした。この変更以前は、Cookieがファーストパーティ用なのかサードパーティ用なのかが明確ではなく、ブラウザは実際の使用状況を観察してその目的を推測する必要がありました。また、このCookieの広範なデフォルト可視性は、サードパーティがこれらのCookie内の情報を観察することに基づくクロスサイトリクエストフォージェリ攻撃にユーザーをさらすため、セキュリティ問題も生じさせていました。

[3:48] 現在、開発者はサードパーティCookieと呼ばれる、サイト間でCookieを使用するためにオプトインする必要があります。そしてブラウザはそのようなCookieを非常に簡単な方法で無効にできるようになりました。このプライバシーを保護するデフォルトの動作は、現在Chrome、Edge、そしてまもなくFirefoxで適用されています。次に私たちは、フェデレーテッドログイン、パーソナライズ広告、コンバージョントラッキングなど、今日サードパーティCookieに依存しているユースケースに対するプライバシーを保護する代替手段を提供する新しいAPIファミリーについて、エコシステムと協力してきました。

[4:23] これらのAPIがこの課題にどのように取り組んでいるかを明確にするために、そのうちの一つであるAttribution Reporting APIを詳しく見てみましょう。あらゆるウェブビジネスの重要な側面は、ユーザーオーディエンスをどのように拡大するかであり、それにはしばしばトラフィックを増やすための広告が関わります。その広告費の反対側では、ウェブ上のコンテンツパブリッシャーがビジネスモデルを成立させるために広告収入に依存することがよくあります。実際に何人のユーザーが広告をクリックしたのか、そしてそれらのユーザーがその後ニュースレターへの登録や購入の完了など何らかの行動を起こしたのかを把握することは、このモデルの重要な部分です。

[5:01] 従来、この測定は、サードパーティCookieを用いて、クリックの前後でユーザーをウェブサイト間で追跡することによって行われてきました。では、そのユーザーを追跡しない方法で、これをどうやって実現できるのでしょうか。そこで登場するのがAttribution Reportingです。この提案されたAPIを使用すると、ユーザーを識別するデータはサイト間で共有されません。代わりに、広告のコンバージョンを追跡するのはブラウザです。その後、ブラウザはこれらのコンバージョンイベントごとに暗号化されたレポートを広告主に送信します。

[5:34] しかし、ユーザーを特定しようとする試みをさらに抑止するために、これらのレポートに時間遅延とノイズが加えられます。この手法は一般に差分プライバシーとして知られています。このアプローチにより、両当事者はサイトをまたいでユーザーを追跡することなく、広告キャンペーンの効果を測定し、広告がどのような行動を促すことができるかを理解することが可能になります。さて、Attribution ReportingはPrivacy Sandboxプロジェクトにおける数多くの新しいAPI提案の一つです。

[6:06] これは本日、他のいくつかのAPIとともに、Chromeのオリジントライアルの実験として利用可能です。そして、年内を通じてさらに多くのAPIを提供していく予定です。エコシステム全体の皆さんと協力してこれらの新しいAPIをウェブプラットフォームにもたらす一方で、サードパーティCookieの廃止に向けた準備と、他の形態の隠れた追跡に対する保護の実装も進めています。ご自身のCookieをどう扱うべきかについての詳細は、本日のテクニカルセッションでお伝えします。

[6:36] つまり、Privacy Sandboxプロジェクトはウェブプラットフォームの大幅な進化を表しており、重要なウェブのユースケースを維持しながら、デフォルトでプライバシーを実現します。これほど大きく根本的なウェブの変更には時間がかかりますが、私たちはこの取り組みと、それが世界中のウェブユーザーにもたらす利益にコミットしています。ウェブは強力なアプリケーションプラットフォームへと進化し、モダンブラウザを持つ誰もが、高速に読み込まれシームレスに動作する業界をリードする体験にアクセスできるようになりました。

[7:11] また、Chromebookのようなデバイスは、基盤となるオペレーティングシステムの保守の専門家である必要なく、ウェブへのアクセスを手頃で安全かつシンプルにする方法を示しています。長年にわたり、私たちはウェブに最先端のコンピューティング体験をプラットフォームにもたらすために必要なすべての機能を備えさせるという使命に取り組んできました。そして、前回I/Oで皆さんにお話しして以来、ウェブは重要な一連の新機能を獲得しました。そのいくつかをここで紹介したいと思います。私たちが取り組んできた分野の一つは、ユーザーがウェブアプリとシームレスに再エンゲージできるようにすることです。

[7:47] モバイルとデスクトップの両方で、ネイティブランチャーにウェブアプリをアイコンとして簡単に追加できるようになってから数年が経ち、これは私のお気に入りのプラットフォーム機能の一つです。私たちは、ウェブアプリと基盤となるOSとの間のこの統合をどのように深めてきたかについてお話ししたいと思います。新しいアプリショートカット機能により、ウェブアプリはAndroid、Chrome OS、Windows、macOSなど、この機能をサポートするオペレーティングシステム上でクイックアクションを公開できます。また、Badging APIにより、ウェブアプリはアプリのアイコンを装飾することで、再エンゲージする機会があることをユーザーにさりげなく知らせることができます。

[8:24] まもなく、別の新しいAPIであるDeclarative Link CapturingのChromeオリジントライアル実験を提供します。これにより、インストールされたウェブアプリが、ユーザーが適切なリンクをクリックしたときに自動的に起動できるようになります。また、同じアプリの複数のインスタンスが開くのを防ぐこともでき、同じウェブアプリが入った10個のタブができるようなことはありません。また、最近ChromeのウェブアプリインストールUIも改善しました。デスクトップでは、オムニボックスアイコンを表示し、この機能をユーザーに説明する製品内ヘルプを提供しています。

[8:57] そしてAndroidでは、ダイアログをよりリッチでユーザーにとって見慣れたものにし、開発者がウェブアプリのマニフェストファイルで指定したカスタム画像やテキストをダイアログに簡単に設定できるようにしました。これらは、ウェブとOSの起動との統合を改善する方法です。また、Multi-Screen Window Placement APIなど、他のOS統合も追加しています。これにより、ウェブアプリは接続されているすべてのディスプレイを検出し、それらの画面のどこにウィンドウを配置するかを制御できます。

[9:29] これは実際、今日のウェブベースのプレゼンテーションやビデオ会議アプリにとって非常に便利な機能です。さらに、ウェブアプリはFile System Access APIを使用して、ついにユーザーのローカルファイルシステムの読み書きができるようになり、Gravit DesignerやPhotoBeeのようなアプリが、状態をディスクに永続化し、既存のファイルを扱うことで、はるかにシームレスなユーザー体験を提供できるようになりました。また、ウェブアプリケーションをファイルタイプハンドラーとして登録できるようにする新しいFile Handling APIにも取り組んでおり、ユーザーがOSのファイルブラウザから直接ウェブアプリでファイルを開けるようになります。

[10:08] このAPIの実験的リリースを今年後半に提供することを目指しています。次に、周辺機器についてお話ししましょう。専用キーボード、ゲームコントローラー、デジタルピアノ、ヘッドセットなどです。さて、ウェブはしばらくの間、MIDIデバイス上でBluetoothと通信する機能を持っていました。しかし、いくつかの新しいAPIにより、これらのデバイスのより広範なコレクションのサポートが可能になりました。これらの多くはHIDプロトコルを使用して通信します。ウェブには現在、Web HIDでこのためのAPIがあります。

[10:40] NintendoのJoy-Conコントローラーは、このプロトコルをサポートするデバイスの一例です。ゲームパッド型のコントローラーについては、業界標準のGamepad APIが今やウェブでもサポートされており、これによりブラウザ内でStadiaのようなアプリを使った妥協のないゲームプレイが可能になります。また、ゲームパッドを使ってChromeの恐竜をスタイリッシュに操作することもできます。ウェブはWeb Serial APIによるシリアルポートもサポートするようになりました。これにより、私のお気に入りの新しいユースケースの一つが実現します。それがPiper Makeです。

[11:13] これはRaspberry Pi Picoをプログラミングできるブロックベースのエディターです。デバイスを任意のコンピューターに接続し、ブラウザを開くだけで始められます。ソフトウェアのインストールやドライバーの設定も不要です。すべてWeb Serialのおかげです。こうした新しいウェブ機能により、ブラウザを通じて、どこにいるユーザーにも深く統合されたシームレスな体験を提供できます。Google Mapsは、15年以上前に初めてローンチされた際、非常に影響力のあるウェブアプリとして私たちの心に特別な位置を占めています。

[11:46] Mapsはウェブ上での革新を続けています。数年前にはWebGLを採用し、ハードウェアアクセラレーションによるグラフィックスを実現するとともに、その過程でより強力なMaps UIを提供しました。昨年、Mapsチームは同じWebGLアクセラレーションによる地図機能を、Maps JavaScript APIを通じて皆さんのウェブアプリで利用できるようにしました。今年、チームは新しい発表を用意しています。チームのエンジニアリングリードであるTravis McPhailを迎えて、詳しく話を聞きましょう。

[12:18] 皆さんがそのスキル、創造性、そしてGoogleの現実世界に関する知識を活用して、地図を真に再構想する信じられないほど多様な体験を構築してきたあらゆる方法に、私たちは常に驚かされています。そして、その精神のもと、本日の開発者基調講演で、ベースマップを前例のないほど制御できる二つの新機能、チルトと回転、そしてWebGLOverlayViewのベータリリースを発表しました。これらの機能により、ベースマップのレンダリングに使用しているのと同じWebGLコンテキストの力を活用しながら、初めて地図を三次元で操作できるようになります。

[12:57] 史上初めて、地図の上に構築するだけでなく、地図とともに構築できるようになります。仕組みを簡単に見てみましょう。わかりやすくするために、人気のウェブグラフィックスライブラリであるthree.jsを使って、地図上に3Dオブジェクトをレンダリングします。メキシコのユカタン半島のある地点を中心に地図を読み込む基本的なウェブアプリを用意しました。また、ベクターマップを使用してカスタムスタイルを適用できるように、マップIDを使用しています。

[13:29] 最初に必要なのは、google.maps.WebglOverlayViewを拡張してWebGLOverlayViewを実装することです。WebGLオーバーレイは、ベースマップのWebGLレンダリングコンテキストのライフサイクルへの一連のフックを公開します。今日はできるだけシンプルに保ち、そのうちの三つだけに焦点を当てます。一つ目はonAdd()で、オーバーレイインスタンスが作成されたときに呼び出されます。二つ目はonContextRestored()で、レンダリングコンテキストが利用可能になったときに呼び出されます。

[14:01] そして三つ目はonDraw()で、地図と指定したその他すべてが実際にレンダリングされる場所です。onAdd()では、シーンが必要とするもののうち、レンダリングコンテキストへの即時アクセスを必要としないすべてを設定します。まず新しいthree.jsシーンを作成します。また、シーンのビューポートを表すカメラも作成します。この場合はパースペクティブカメラです。次に、レンダリングされるオブジェクトがシーン内で照らされるように、シーンには少なくとも一つの光源が必要です。

[14:35] この例では、アンビエントライトを使用してシーン内のすべてのオブジェクトを均等に照らします。これでGLTFLoaderを使って3Dオブジェクトを追加する準備ができました。オブジェクトが読み込まれたら、ちょうどよくレンダリングされるようにスケールと回転を調整します。そしてシーンに追加します。onContextRestored()では、three.jsのWebGLRendererを設定し、地図のレンダリングコンテキストとビューポートに関する情報を渡します。オブジェクトがレンダリングされたら、ユーザーにオブジェクトの動的なビューを提供するためにカメラもアニメーションさせたいと思います。

[15:13] レンダラーのsetAnimationLoop関数内でmoveCameraを呼び出しました。また、各フレームで傾き、方位、ズームをほんの少しずつ増やして、美しい下向きのらせん運動を作り出しています。さあ、レンダリングの時間です。three.jsのカメラは、地図の3D世界における緯度経度座標を画面の2D座標にどのようにレンダリングするかを知るために、投影行列を必要とします。さて、皆さんはどうかわかりませんが、行列変換は私にとって楽しいものではありません。

[15:47] そこで、皆さんの計算の手間を省くために、この行列を自動で作成してくれるfromLatLngAltitude関数を持つtransformerオブジェクトを提供します。モデルを表示したい緯度経度座標を渡し、戻り値をcamera.projectionMatrixとして設定します。あとはGL状態をクリアし、WebGLOverlayViewインスタンスでrequestRedraw()を呼び出して再描画を要求し、シーンをレンダリングするだけです。

[16:18] 最後に、自分のクラスのインスタンスを作成し、適用したい地図インスタンスを設定します。これがその結果です。数分のコーディングにしては悪くないでしょう?傾きと回転、そしてWebGLOverlayViewは、皆さんへのコミットメントを果たすための最新の手段にすぎません。まだまだたくさんの計画があり、皆さんが地図を再び再構想するために考え出すあらゆる方法と、次に何を見せてくれるのかを楽しみにしています。Dion、お返しします。ありがとう、Travis。

[16:50] WebGLは、数年前に利用可能になったとき、ウェブにまったく新しいレベルのグラフィックス性能をもたらしました。私たちは現在、グラフィックスコミュニティとウェブコミュニティと緊密に協力して、次世代の新しいグラフィックスAPIであるWebGPUに取り組んでいます。これは、ウェブ上でまったく新しいレベルのグラフィックス性能を解き放つためにゼロから設計されたものです。Vulcan、Metal、Direct 3D 12のような低レベルAPIから着想を得たWebGPUは、まだ非常に実験的な段階ですが、将来への刺激的な可能性を秘めています。

[17:22] もう一つの重要なパフォーマンス技術はWeb Assemblyです。これはコードを高速かつ効率的な形式にコンパイルするための標準を提供し、V8のような最新のJavaScriptエンジンによってブラウザ内で実行できるようにします。私たちは最近、V8でSIMDプロセッサ命令のサポートを実装することで、Web Assemblyに大幅なパフォーマンス向上をもたらしました。これにより、特定のクラスのアプリがはるかに高速に動作するようになります。Google Meetは、SIMDが実際に機能している強力な例を提供しています。他のビデオ会議アプリと同様に、Meetはパフォーマンスの予算に細心の注意を払わなければなりません。

[17:55] そして、ビデオを処理して強化することと、スムーズで低遅延のストリームを維持することの間には常に緊張関係があります。V8のSIMDの実験的なオリジントライアルを使用して、Meetチームはブラウザ内のメディア処理パイプラインで200%のパフォーマンス向上を達成しました。そしてこれにより、ブラウザ内のTensorFlowを活用した背景ぼかし機能をほとんどのユーザーに対して有効にするための予算を得ることができました。私たちは今後数か月以内にすべてのChromeユーザーにSIMDを提供する予定です。

[18:26] さて、Web Assemblyは非JavaScriptのコードベースをウェブに持ち込み、新しいユースケースのためにそれらを解放するためにも頻繁に使用されています。例えば、オフラインファーストの同期エンジンであるReplicacheの開発者たちは、RustコードをWeb Assemblyにコンパイルすることができ、ウェブ開発者がそれをウェブアプリにシームレスに組み込めるようになりました。コードの移植を容易にするために、V8は2019にWeb Assemblyにスレッディングサポートを追加しました。しかし、それはデスクトップオペレーティングシステムでのみ有効でした。

[18:57] 本日、Chrome for Androidが今年一月のChrome 88でWeb Assemblyスレッドを獲得したことをお知らせできることを嬉しく思います。また、Chrome DevTools内でブレークポイントと変数検査のサポートにより、V8のWeb Assemblyデバッグ体験を強化しました。クライアントでもサーバーでも動作するユニバーサルランタイムで、皆さんが何を届けるのかをとても楽しみにしています。それがWeb Assemblyです。V8チームも、そのエンジンからさらに多くのJavaScriptパフォーマンスを引き出すために懸命に取り組んできました。

[19:31] したがって、JavaScriptを解釈するだけでなく、V8はより効率的な実行のためにコードをオンザフライでコンパイルもします。そしてチームはSparkplugと呼ばれるまったく新しいコンパイラを実装しました。もちろん、コード実行パフォーマンスを向上させる最善の方法は、コードをまったく実行しないことである場合もあります。その精神のもと、今年の初めに、ブラウザタブが五分以上バックグラウンドにあることを検出し、そのタブが音声や動画を再生していない限り、ChromeがそのタブでタイマーベースのJavaScriptコードを実行する頻度を遅くする、intensive timer throttlingと呼ばれる新しいChrome機能を一部のユーザーに提供しました。

[20:10] 私たちはまた、content-visibilityと呼ばれる新しいCSSプロパティのサポートを提供することで、この概念をCSSに適用しました。このプロパティを要素にautoに設定すると、その要素ツリーの内容が現在ユーザーのディスプレイに表示されていない場合にレンダリングをスキップする許可をブラウザに与えることになり、これはコンテンツの多いサイトで劇的な速度向上につながる可能性があります。現在、ウェブアプリのランタイムパフォーマンスを大幅に高速化するために、ウェブプラットフォーム上で膨大なイノベーションが起きています。

[20:40] ウェブの力とパフォーマンスを拡大するために行われている取り組みに加えて、プラットフォームはユーザーに瞬時でシームレスな体験を提供するようにも進化しています。昨年十一月にリリースされたChrome 87では、Android上のChromeにいわゆるback/forward cache、略してBFCacheを追加しました。BFCacheは、一部のウェブページから離れた後もそれらをメモリに読み込んだままにします。そのため、ユーザーが戻るまたは進むをクリックすると、ページが瞬時に表示されます。そして、モバイルでのナビゲーションの五分の一がまさにそうしており、履歴スタックを戻ったり進んだりしていることがわかりました。

[21:18] したがって、この機能は本当に大きな影響を与えます。現在、ChromeのBFCache実装はAndroidで利用可能ですが、いくつかの制限があります。私たちはそれをまもなくChromeデスクトッププラットフォームに拡張する予定です。瞬時の体験を拡大するもう一つの方法は、ページのプリレンダリングという概念を再検討することです。プリレンダリングは、ユーザーがリンクをクリックする前にウェブページのすべてのリソースを読み込み、DOMさえもレンダリングする技術です。したがって、真に瞬時に表示することができます。

[21:48] さて、これを正しく行うのは難しいです。なぜなら、これらのページをプリロードすると副作用を引き起こす可能性もあるからです。ページがサインアウトのようなことを行う場合、またはページがオーディオを再生する場合、それはまた神秘的な方法で再生を開始する可能性があります。また、サイト間で行われる場合、一部のユーザー情報が漏洩する可能性があります。しかし、プリレンダリングが正しく行われると、ユーザーにこの強力で瞬時のクリックスルー体験を提供します。そこで、私たちはプライベートで安全なプリレンダリングへの新しいアプローチに取り組んでいます。その一つは、開発者が今年後半に同一サイトのプリロードでこれを実験できるようにする新しいプリレンダリングAPIを含みます。

[22:26] また、トランジションはユーザー体験のもう一つの重要な側面であり、ユーザーがウェブをナビゲートする際にコンテキストを切り替え、目的の場所へまっすぐ到達できるようにします。大きな効果を持つ楽しくシンプルな機能の一つが、昨年二月にChrome 80に追加されたスクロール・トゥ・テキストです。URLの末尾に新しい種類の式を追加することで、ブラウザはビューポートを特定のテキスト要素の位置に合わせ、何らかの方法でそれをハイライトできます。まもなく、画像へスクロールするバージョンのこのAPIをリリースする予定で、他の要素タイプについても検討しています。

[22:59] まもなくChromeに実験的機能として導入される新しいドキュメント遷移APIにより、要素間のさまざまなグラフィカルな遷移もサポートするよう開発を進めており、ユーザーがWebアプリの状態間を移動する際にシームレスな体験を知覚できるようにします。また、Web上のセキュリティをよりシームレスにする取り組みも進めています。特に私がわくわくしている機能の一つが、Web向けのクロスデバイスワンタイムパスワードです。ワンタイムパスワードとは、一部のサイトがログイン用に送信できる数字コードのことです。

[23:31] この機能により、Androidスマートフォンでこれらのワンタイムパスワードの一つを受け取り、それがラップトップなど別のデバイスで実行されているChromeブラウザに自動的に転送されるようになります。これらの新しいWeb機能はすべてわくわくするものです。しかし、Webの進化のペースが加速するにつれて、すべてを把握するというWeb開発者として直面する複雑さも増しています。私たちは開発者にとってWebをより使いやすくするよう取り組むとともに、より広範なエコシステムと協力してプラットフォームの主要な課題を理解し、解決に取り組んでいます。

[24:03] Web開発に関する最新の推奨事項を知るには、web.devをご覧ください。このサイトには、主要なトピックに関する詳細なチュートリアル、最新ニュースが掲載されており、Lighthouseウェブサイト監査ツールにもアクセスできます。Lighthouseを使えば、パフォーマンス、アクセシビリティ、SEOなどさまざまなカテゴリにわたって、ウェブサイトを改善する方法に関する包括的なレポートが得られます。私たちは、可能な限り最良の洞察を提供できるよう、Lighthouseのガイダンスを継続的に更新しています。

[24:35] Lighthouseのパフォーマンス指標のうち三つがユーザー体験に特に大きな影響を与えることが分かりました。これをCore Web Vitalsと呼んでいます。これらは総合的に、サイトが主要なコンテンツをどれだけ速く表示するか、最初のインタラクションに対してサイトがどれだけ応答性が高いか、そしてサイトのレイアウトがどれだけシフトするかを測定します。ウェブ上のサイトはCore Web Vitalsをパフォーマンスの北極星として使用しており、心強い結果を報告しています。例えば、イタリアの出版社GEDIは、モバイル記事ページの直帰率が8%改善したと報告しています。

[25:13] 彼らは、ページ上の広告スロットに広告用のスペースを確保するためにブランド付きのプレースホルダーを実装することでレイアウトの安定性を改善し、さらに一部のJavaScriptコードの読み込みをページが表示された後まで遅延させることで、体感されるページ読み込み速度を改善しました。Webコンテンツおよびコマースプラットフォームも、ホストするすべてのサイトのパフォーマンスを改善するためにCore Web Vitalsに投資しています。例えば、ShopifyとWixは、サイト所有者にとってパフォーマンスを最優先に位置づけるダッシュボードを管理コンソールに実装しました。

[25:49] WordPressコミュニティも、画像やiframeの遅延読み込みなど、パフォーマンス指向の追加機能をリリースしています。また、GoogleのWordPress公式プラグインであるSite Kitを更新し、Core Web Vitalsの測定をサポートするとともに、開発者に具体的な改善推奨事項を提供するようにしました。Google検索も、Core Web Vitalsがまもなく検索結果でのページのランク付け方法の一部になることを発表しました。これは、開発者である皆さんにとってCore Web Vitalsの利点を増幅させるものであり、特にわくわくすると考えています。

[26:21] この投資はユーザーにより良い体験を提供するだけでなく、そうした手段を通じてユーザーがあなたのサイトを見つけやすくするのにも役立ちます。私たちは、小規模な集まりや大規模な開発者調査を通じて、開発者の声に耳を傾けることに多くの時間を費やしました。一貫して耳にする共通のテーマの一つは、開発者にとってクロスブラウザ互換性が重要であるということです。そこで今年、私たちはCompat2021と呼ばれる業界横断的な取り組みへの参加を最近発表しました。これはウェブ開発者の投票によって選ばれたブラウザ互換性の上位五つの課題を解決することを目指しており、驚くべきことに、それらはすべてCSS関連です。

[27:00] そしてCSSと言えば、この分野でわくわくするようなルネサンスが起きています。私たちには現代版の禅庭園さえあります。CSS FlexboxとGridは、ページレイアウトを作成するための大きな改善として開発者に受け入れられており、Sassのような長年にわたるCSSフレームワークからの学びが、ネストなどの形でプラットフォームに組み込まれています。そして、CSSに関して皆さんが最も要望している機能であるコンテナクエリとともに、ルールをグローバルに作用させるのではなく、ローカルなコンテキストに自然にスコープを限定できるようにすることで、よりモジュール化され再利用可能なスタイルシートを作成できるようになります。

[27:37] さて、Chromeの最も人気のある機能の一つは、組み込みの開発者ツール群です。これはウェブ開発の副操縦士として機能する、信じられないほど強力なツールキットを提供します。過去一年間で、私たちはDevToolsを数々の新しい改善で強化しました。新しいカラーピッカー、PWAの警告とリンティングの改善、Core Web Vitalsオーバーレイ、専用のCSS Flexboxデバッグ、ドロップフレームの可視化、CSSとJavaScriptのサポートなど、多岐にわたります。

[28:09] また、DevToolsは拡張機能をサポートしているため、プラットフォームでもあります。新しい拡張機能の一例がAngular DevTools Chrome拡張機能で、Angularアプリに特化したデバッグとパフォーマンスプロファイリングのサポートを提供します。これらすべてを深く掘り下げ、新しいDevTools機能についてさらに学ぶには、Chrome DevToolsのセッションをご覧ください。Webは、絶滅しないように根本的な形で進化しています。ユーザーのプライバシーを保護する新しいAPIにより、デフォルトでプライベートになりつつあり、またプラットフォーム上で可能なことを広げる強力な新機能を獲得し続け、より良いユーザー体験を提供しています。

[28:51] 最後に、ウェブが進化する中でエコシステムの皆様と協力し、成功に向けたあらゆるツールとガイダンスを提供することに取り組んでいます。今年のI/Oでは、本日ご紹介したものを含め、数多くの他のセッションを通じて、ウェブプラットフォーム全体にわたるこれらの改善の多くをさらに深く掘り下げることができます。ご視聴ありがとうございました。進化したモダンウェブの機能で皆様が何を構築されるのか、楽しみにしています。また、I/O Week中にご視聴の方は、Adventureでお会いしましょう。ありがとうございました。

英語の原文字幕を見る

[0:05] -I’m Ben. -And I’m Dion. We’re leaders on the Chrome team. [Dion] The two of us have been working together on the web platform for many years. It’s been fun to watch as websites have evolved from simple connected documents to today's rich interactive web apps. The web has become a high performance, general purpose computing platform used by billions of people all across the globe. [Dion] The web’s growth has accelerated in the last year as the pandemic has pushed more of our daily interactions online, triggering a rush to improve web experiences as usage spikes.

[0:40] And for us, this reinforces the importance of the web and the need for all of us to work together to make it better. Now we’ve seen many computing platforms rise and fall over the past decades. One thing is really clear: the old adage evolve or die plays a major role in the ongoing relevance of any platform. Now, the web has evolved a great deal over the years. And looking forward, I think the pace of evolution is accelerating. because it kind of has to to keep pace with tech and society generally. So at Google I/O this year, we have a number of sessions that will bring you up to speed on some of the latest developments in the web.

[1:19] In this session, we’ll give you a quick summary of what we think are the key themes that you should keep in mind this year. And we’ll point you to where you can learn more and go deeper. We're going to start with privacy, explaining how the web is evolving to enable a private browsing experience for all users by default. Next we’ll cover how the web is enabling a new generation of powerful, fast, and seamless web apps and a fantastic user experience. And finally, we’ll summarize the work we’re doing to help developers be productive and successful with the web.

[1:52] So let’s get started with privacy, and we'll do that by talking about sandboxes. Modern browsers are built around the metaphor of a sandbox. Each website you visit is isolated by default from the rest of your system, including from websites and other open tabs just as though we’re surrounded by virtual walls like those of a sandbox in a garden. Now Chrome’s innovated with the browser sandbox model from its earliest days, first by isolating each website into its own process.

[2:23] And more recently, expanding on that to isolate each cross-site iframe on a webpage into its own process. We’re taking this same approach with user data and tracking, building a sort of privacy sandbox that seeks to keep all of your information safe and secure within your browser, resulting in a web where your identity and activity are private by default. We announced the Privacy Sandbox effort two years ago, as an open initiative, a collaboration with the community to bring this vision to life while also being careful to help transition the web ecosystem to a new model in a thoughtful, deliberate way.

[3:07] We’d like to give an update on our progress. Our first step, announced at Google I/O two years ago, was changing the behavior of cookies in Chrome, moving them from being visible across websites by default to being visible only to the same website that set them. Before this change, it wasn’t really clear whether a cookie was intended for first-party or third-party use and browsers needed to observe how cookies were used in the wild to infer their purpose. This also created a security problem because this wide default visibility of cookies exposed users to cross-site request forgery attack based on third parties observing the information in these cookies.

[3:48] Now, developers are required to opt in to use cookies across sites as so-called third-party cookies. And in turn, browsers could then disable such cookies in a very straightforward manner. This privacy-preserving default behavior is now enforced in Chrome, Edge, and, very soon, Firefox. Next we’ve been collaborating with the ecosystem on a new family of APIs that provide privacy-preserving alternatives to use cases that today rely on third-party cookies, such as federated login, personalized ads, and conversion tracking.

[4:23] To clarify how these APIs are approaching this challenge, let’s take a closer look at one of them: the Attribution Reporting API. So a key aspect of any web business is how you grow your user audience, and that often involves advertising to increase traffic. On the other side of those ad dollars, content publishers on the web often rely on revenue from advertisements to make their business model work. Finding out how many users actually clicked on the ad and whether those users subsequently did something like sign up for a newsletter or complete a purchase, is an important part of this model.

[5:01] Traditionally, this measurement is performed by tracking the user from before and after the click across websites with a third-party cookie. So how can we do this in a way that doesn’t involve tracking that user? Well, enter Attribution Reporting. Using this proposed API, no user-identifying data is shared between the sites. Instead, it’s the browser that keeps track of the ad conversion. Later, the browser sends an encrypted report to the advertiser for each of these conversion events.

[5:34] But it adds time delays and noise to these reports to further stifle attempts to identify users. This technique is broadly known as differential privacy. This approach enables both parties to still be able to measure the effectiveness of their ad campaigns and to understand what behavior the ads are able to drive and to do so without tracking the user across sites. Now Attribution Reporting is one of many new API proposals in the Privacy Sandbox project.

[6:06] It’s available for use as a Chrome origin trial’s experiment today, along with several other APIs, And we’ll ship more throughout the course of the year. As we work with all of you across the ecosystem to bring these new APIs to the web platform, we’re also moving forward with preparations to phase out third-party cookies and implementing protection against other forms of covert tracking. And we’ve got more details on what to do with your own cookies today in the technical sessions.

[6:36] So the Privacy Sandbox project represents a substantial evolution of the web platform, enabling privacy by default while also preserving critical web use cases. A change this large and fundamental to the web will take time, but we’re committed to this work and the benefits it will bring to web users globally. The web has evolved into a powerful application platform, enabling anyone with a modern browser to get access to category-leading experiences that load fast and run seamlessly.

[7:11] And devices like Chromebooks show how access to the web could be made affordable, safe, and simple with no need to be an expert at maintaining the underlying operating system. For years, we’ve been on a mission to ensure the web has all of the capabilities needed to bring state-of-the-art computing experiences to the platform. And since we last spoke to you at I/O, the web’s gained a significant array of new capabilities. We'd like to highlight a few of these for you. One area we’ve been working on has been making it easy for users to seamlessly re-engage with web apps.

[7:47] It has been possible for a few years to easily add web apps as icons to native launchers across both mobile and desktop, and it’s one of my favorite platform features. We want to talk about how we’ve deepened this integration between web apps and the underlying OS. With the new app shortcuts feature, web apps can expose quick actions on operating systems that support this feature, such as Android, Chrome OS, Windows, and macOS. And with the Badging API, web apps can give the user a subtle prompt that there’s an opportunity to re-engage by decorating the app’s icon.

[8:24] Soon, we'll be shipping a Chrome origin trial experiment of another new API, Declarative Link Capturing, that enables installed web apps to launch automatically when the user clicks on an appropriate link. This can also prevent multiple instances of the same app from opening so you don’t have like 10 tabs with the same web app in it. We’ve also recently improved Chrome’s web app installation UI. On desktop, we now show an omnibox icon and provide in-product help to explain this feature to users.

[8:57] And on Android, we’ve made the dialogue look richer and more familiar to users, and we’ve made it easy for developers to populate the dialogue with custom images and texts that are specified in the web app’s manifest file. So those are ways that we’re improving the web’s integration with OS launches. We're also adding other OS integrations, such as the Multi-Screen Window Placement API, which allows web apps to discover all of the connected displays and control where the window is placed on those screens.

[9:29] This is actually a pretty handy feature these days for web-based presentation and video conferencing apps. Now web apps can finally read and write to the user's local file system using the File System Access API, enabling apps like Gravit Designer and PhotoBee to provide a much more seamless user experience, persisting state to disk and working with existing files. We’re also working on a new File Handling API that would allow web applications to be registered as file type handlers, enabling users to open files directly in a web app from OS file browsers.

[10:08] We hope to ship an experimental release of this API later this year. Now let’s talk about peripheral devices; things like special-purpose keyboards, game controllers, digital pianos, headsets, and more. Now, the web’s had the ability to communicate with Bluetooth on MIDI devices for a while. But several new APIs now enable support for a broader collection of these devices. Many of these, communicate using the HID protocol. The web now has an API for this in Web HID.

[10:40] Nintendo’s Joy-Con controller is an example of a device that supports this protocol. For gamepad style controllers, the industry standard Gamepad API is now supported by the web as well, and this enables uncompromising gameplay with apps like Stadia in the browser. And you can also use a gamepad to control the Chrome dino in style. The web also now supports serial ports with the Web Serial API. This actually unlocks one of my favorite new use cases: Piper Make.

[11:13] It’s a block-based editor that allows you to program a Raspberry Pi Pico. All you do is simply plug in the device to any computer, open a browser, and off you go. No need to install software or mess with drivers, all thanks to Web Serial. Now with these and other new web capabilities, you can bring deeply integrated, seamless experiences to users everywhere right through the browser. Google Maps holds a special place in our hearts as a singularly influential web app when it first launched over 15 years ago.

[11:46] Maps continues to innovate on the web. Several years ago, they embraced WebGL, enabling hardware-accelerated graphics and delivered a much more powerful Maps UI in the process. Last year, the Maps team enabled those same WebGL-accelerated map capabilities to be used in your web app via the Maps JavaScript API. This year, the team has something new to share. Join me in welcoming Travis McPhail, the team’s engineering lead, who will tell us more about it.

[12:18] We’re constantly amazed by all the ways you’ve used your skill, your creativity, and Google’s knowledge of the real world to build an unbelievable variety of experiences that have truly re-imagined the map. And it's in that spirit today, during the developer keynote, we announced the beta release of two new features that give you unprecedented control of the base map: tilt and rotation, and WebGLOverlayView. With these features, you can manipulate the map in three dimensions for the first time while taking advantage of the power of the same WebGL context we use to render the base map.

[12:57] For the first time ever, you can build not just on top of the map, but you can build with it. Let's take a quick look at how it works. To make things easy, I’m using three.js, a popular web graphics library, to render a 3D object on the map. I've set up a basic web app that loads the map centered on a location in the Yucatán Peninsula of Mexico. And I'm using a map ID so that I can use the vector map and apply some custom styling.

[13:29] The first thing I need to do is implement WebGLOverlayView by extending google.maps.WebglOverlayView. The WebGL overlay exposes a set of hooks into the life cycle of the WebGL rendering context of the base map. For today, we'll keep things as simple as possible and focus on just three of them. The first, onAdd(), is called when the overlay instance is created. The second, onContextRestored(), is called once the rendering context is available.

[14:01] And the third, onDraw(), is what the map and anything else you specify is actually rendered. In onAdd(), I’m going to set up everything that the sscene needs that doesn’t require immediate access to the rendering context. I start by creating a new three.js scene. I also create a camera that represents the view port of the scene. In this case, a perspective camera. Next, the scene needs at least one light source so that any rendered objects are illuminated in the scene.

[14:35] For this example, ambient light is used to equally illuminate all objects in our scene. Now I’m ready to add my 3D object using the GLTFLoader. Once the object is loaded, I scale and rotate it. to have it rendered just right. Then I add it to the scene. In onContextRestored(), I configure the three.js WebGLRenderer, passing it the map’s rendering context and information about the viewport. Once the object renders, I also want to animate the camera to give my users a dynamic view of the object.

[15:13] I called moveCamera in the setAnimationLoop function of the renderer. I also increment tilt, heading, and zoom just a little bit in each frame to create a nice downward spiral motion. All right. Time to render. The three.js camera needs a projection matrix so that it knows how to render latitude and longitude coordinates in the 3D world of the map to the 2D coordinates of the screen. Now, I don’t know about you, but matrix transforms are not my idea of a good time.

[15:47] So, to save you a bunch of math, we hand you a transformer object that has the fromLatLngAltitude function which creates this matrix for you. I pass it the lat-long coordinates where I want the model to appear, and I set the return value as a camera.projectionMatrix. All that’s left is to clear the GL state, tell WebGLOverlayView I want to redraw by calling requestRedraw() on the WebGLOverlayView instance and render the scene.

[16:18] And finally, I create an instance of my class and set the map instance I want it applied to. And this is the result. Not too bad for a few minutes of coding, right? Tilt and rotation and WebGLOverlayView are just the latest way we're delivering on our commitment to you. We have a lot more planned, and we can’t wait to see all the ways you’ll come up with to reimagine the map all over again and show us what’s next. Back to you, Dion. Thanks, Travis.

[16:50] WebGL brought whole new level of graphics performance to the web when it became available several years ago. We are currently working closely with the graphics and web communities on WebGPU, the new next-generation graphics API, designed from the ground up to unlock a whole new level of graphics performance on the web. Taking inspiration from low-level APIs like Vulcan, Metal, and Direct 3D 12, WebGPU is still very experimental that holds exciting promise for the future.

[17:22] Another key performance technology is Web Assembly, which provides a standard for compiling code to a fast and efficient format that can be executed in the browser by modern JavaScript engines like V8. We recently gave Web Assembly a major performance boost by implementing support for SIMD processor instructions in V8, which enables certain classes of apps to run much faster. Google Meet provides a powerful example SIMD in action. Like any video conferencing app, Meet has to pay careful attention to their performance budget.

[17:55] And there’s a constant tension between processing the video in order to enhance it and maintaining a smooth, low-latency stream. Using V8′s experimental origin trial of SIMD, the Meet team achieved a 200% performance gain on their in-browser media processing pipeline. And this in turn, gave them the budget to enable a background blur feature for most of their users that was powered by TensorFlow in the browser. We’re planning to ship SIMD to all Chrome users in the coming months.

[18:26] Now, Web Assembly is also frequently used to bring non-JavaScript codebases to the web, unlocking them for new use cases. For example, the developers behind the offline-first sync engine, Replicache, were able to compile their Rust code to Web Assembly, enabling web developers to seamlessly incorporate it into their web app. To ease with code porting, V8 added threading support to Web Assembly back in 2019. But it was only enabled for desktop operating systems.

[18:57] We’re pleased to share today that Chrome for Android gained Web Assembly threads as of Chrome 88 in January of this year. We’ve also enhanced V8′s Web Assembly debugging experience with support for breakpoints and variable inspection right there in Chrome DevTools. We’re so excited to see what you deliver with a universal runtime that works on client or server is san bugs, and wicked fast. That's Web Assembly. The V8 team has also been hard at work at squeezing even more JavaScript performance out of its engine.

[19:31] So in addition to interpreting JavaScript, V8 also compiles code on the fly for more efficient execution. And the team has implemented a whole new compiler called Sparkplug. Of course, sometimes the best way to improve code execution performance is to not execute any code at all. In this spirit, earlier this year, we shipped a new Chrome feature to some users called intensive timer throttling that detects when a browser tab has been in the background for more than five minutes and as long as the tab isn’t playing any audio or video, Chrome slows down how frequently it executes timer-based JavaScript code on that tab.

[20:10] We've also applied this concept with CSS by shipping support for a new CSS property called content-visibility. When you set this property to auto on an element, you’re giving the browser permission to skip rendering the contents of that element tree if it isn’t currently visible on the user’s display, and this can lead to a dramatic speed boost for content-heavy sites. Now, there’s a ton of innovation happening on the web platform to enable significantly faster runtime performance of your web apps.

[20:40] In addition to the work happening to expand the power and performance of the web, the platform’s also evolving to deliver an instant and seamless experience for users. In Chrome 87, released in November last year, we added a so-called back/forward cache to Chrome on Android, or BFCache for short. BFCache keeps some web pages loaded in memory after you’ve navigated away from them. So if a user clicks back or forward, the page is displayed instantly. And it turns out, one in five navigations on mobile are doing exactly that, moving backwards or forward through the history stack.

[21:18] So this feature drives a really big impact. While today, Chrome’s BFCache implementation is available on Android, it does have some limitations. We are planning to expand it to the Chrome desktop platform soon. Another way we’re expanding instant experiences is by revisiting the notion of pre-rendering pages. Pre-rendering is the technique of loading all of a webpage’s resources and even rendering the DOM before the user clicks on a link So it can be displayed truly instantly.

[21:48] Now this is hard to get right because pre-loading these pages can also cause side effects, if the page does something like sign out or if the page plays audio, then it can also start playing in a mysterious way. Also, it can leak some user information if it's done across sites. But when pre-rendering is done right, it provides this powerful, instant click-through experience for the user. So, we’re working on new approaches to pre-rendering that are private and safe. One of these involves a new pre-rendering API that would enable developers to experiment with this on same site pre-loading later this year.

[22:26] And transitions are another important aspect of the user experience, ensuring that users are able to shift their context as they navigate the web and get right to where they want to go. One fun, simple feature with a big impact is scroll to text, added to Chrome 80 in February of last year. By adding a new type of expression to the end of your URL, browsers can position the viewport to a specific text element and highlight it in some way. Soon we’ll be shipping a version of this API that scrolls to images, and we're exploring other element types too.

[22:59] With the new document transition APIs that are coming to Chrome soon as experiments, we’re also building in support for a number of graphical transitions between elements, enabling the user to perceive a seamless experience as they move between states of your web app. We're also working to make security more seamless on the web. One feature I’m particularly excited about is cross-device one-time passwords for the web. One-time passwords are these numeric codes that some sites can send you to log in.

[23:31] This feature enables you to receive one of these one-time passwords on your Android phone, and then have that automatically transferred to your Chrome browser running on some other device like a laptop. All of these new web capabilities are exciting. But as the pace of web evolution accelerates, so too does the complexity we face as web developers in keeping track of everything. We’re working to make the web easier for developers and partnering with the broader ecosystem to understand and address the platform's top pain points.

[24:03] To understand our latest recommendations for web development, visit web.dev. The site includes detailed tutorials on key topics, the latest news, and it also provides access to our Lighthouse website auditing tool. Now, with Lighthouse, you get a comprehensive report on how to improve your website, across a variety of categories such as performance, accessibility, and SEO. We continually update Lighthouse guidance to give you the very best insights we can.

[24:35] We found that three of Lighthouse’s performance metrics are particularly impactful on the user experience. We call these Core Web Vitals. And collectively, they measure how fast a site displays key content, how responsive the site is for the first interaction, and how much the site’s layout shifts around. Sites across the web were using Core Web Vitals as a North Star for performance and are reporting encouraging results. For example, the Italian publisher GEDI saw an 8% improvement in the bounce rate on their mobile article pages.

[25:13] They did this by implementing a branded placeholder in order to reserve space for ads in their ad slots on the page, which improved their layout stability, and then by deferring loading of some their JavaScript code until after the page was visible, they improved the perceived page loading speed. Web content and commerce platforms. are also investing in Core Web Vitals to improve the performance of all of their hosted sites. For example, Shopify and Wix implemented dashboards in their admin console that puts performance front and center for site owners.

[25:49] The WordPress community has also shipped performance-oriented additions, such as lazy loading for images and iframes. We’ve also updated Site Kit, Google’s official plugin for WordPress, with support for measuring Core Web Vitals, and it also makes specific improvement recommendations to developers. Google Search has also announced that Core Web Vitals will soon be a part of how pages are ranked in search results. We think this is particularly exciting, as it magnifies the benefit of Core Web Vitals to you, the developer.

[26:21] The investment will not only give your users a better experience, but it will help them find your site through such. We spent a good amount of time listening to developers, both in small gatherings and through scaled developer surveys. One of the common themes we consistently hear is the importance to developers of cross-browser compatibility. So this year, we recently announced our participation in a cross-industry effort called Compat2021, which aims to fix the top five browser compatibility pain points as voted on by web developers, which, shockingly, all happen to be CSS related.

[27:00] And speaking of CSS, we’re seeing an exciting renaissance in this area. We even have our own modern-day zen garden. CSS Flexbox and Grid have been embraced by developers as major improvements for creating page layouts, and learnings from years of CSS frameworks like Sass are being baked into the platform, such as nesting. And along with container queries, which is your most requested feature, I think, for CSS, you will be able to create style sheets that are more modular and reusable by enabling rules that are scoped naturally to their local context versus acting so globally.

[27:37] Now, one of Chrome’s most popular features is its suite of built-in developer tools, which give you an incredibly powerful toolkit that can function as your web development copilot. Over the past year, we’ve enhanced DevTools with a bevy of new improvements ranging from a new color picker, improved warnings and linting of PWAs, a Core Web Vitals overlay, dedicated CSS Flexbox debugging, dropped frame visualization, support for CSS and JavaScript, and much more.

[28:09] And DevTools is also a platform because it supports extensions. And one example of a new extension is the Angular DevTools Chrome extension, which provides debugging and performance profiling support that’s specific to Angular apps. So check out our Chrome DevTools session to deep dive into all of this and learn more about our new DevTools features. The web is evolving in fundamental ways so it doesn’t become extinct. It’s becoming private by default with new APIs that protect user privacy, and it also continues to gain powerful new capabilities that broaden what’s possible on the platform, providing for better user experiences.

[28:51] Lastly, we’re committed to partnering with you in the ecosystem as the web evolves to make sure that you’ve got all of the tools and guidance for success. You can dive deeper into many of these improvements across the web platform by checking out a number of other sessions, many of which we’ve highlighted today, at this year’s I/O. Thanks for your time, and we look forward to seeing what you build with the evolved capabilities of the modern web. And if you’re watching this during I/O Week, come find us in Adventure. Thanks.

Vidleafワークベンチで開く

トランスクリプトを検索し、行を選択し、タイムスタンプ付きの引用をコピーし、翻訳します。

ワークベンチで開く →

帰属

「What's new for the web platform | Keynote」by Chrome for Developers(https://www.youtube.com/@chromedevs)、CC BY 3.0(https://creativecommons.org/licenses/by/3.0/)の下でライセンスされています。ソース動画:https://www.youtube.com/watch?v=0UiaD059eqM。このページは、段落区切りとタイムスタンプを追加した動画のテキスト書き起こしです。制作者はVidleafと提携しておらず、Vidleafを推奨するものでもありません。VidleafはAIによる句読点の追加とAI生成の要約を加えましたが、元の文言はこのページで引き続きご覧いただけます。

あなたは制作者または権利者ですか?訂正や削除をリクエストする:copyright@vidleaf.app(これらのページについてを参照)。

最終更新