Paint Holding - 同一オリジン ナビゲーションでの白いフラッシュの低減

Chrome では以前から、ページが読み込まれることをユーザーに安心させるために、新しいページに移行する際に積極的に画面をクリアしてきました。この「白のフラッシュ」とは、ページの読み込み中にブラウザが白くペイントする短い時間のことです。これは、特にページがより魅力的な状態に到達する速度がある程度速い場合は、ナビゲーション間の邪魔になるおそれがあります。

しかし、非常に高速に読み込まれるページの場合、このアプローチは実際にはユーザー エクスペリエンスに悪影響を及ぼします。次のアニメーションは、現在の状況の例です。

私たちはこのウェブサイトの大ファンですそのために、ペイント ホールディングと呼ばれる新しい動作を採用しました。これは、特にページが十分に高速である場合、ペイントが開始される前にブラウザが短時間待機する機能です。これにより、ページ全体がレンダリングされ、真のインスタント エクスペリエンスを実現できます。

これを行うには、特定のページ読み込みシグナル(PLS)(First Contentful Paint / 固定タイムアウトなど)に達するまでコンポジタの commit を延期します。メインスレッドのレンダリング処理と impl スレッドへの commit は区別されます(後者のみが遅延されます)。PLS が発生するまで待つと、白色や点灯で点滅する可能性が低くなります。

この取り組みの目標は、同じオリジンの 2 つのページ間を Chrome でシームレスに移動できるようにすることで、古いコンテンツと新しいコンテンツの間に白色/無地一色の背景が点滅することなく、デフォルトですばやく移動できるようにすることでした。

Chrome Canary 版(Chrome 76)でペイント ホールディングをお試しいただき、ぜひご感想をお聞かせください。 デベロッパーは、この機能を活用するためにページに変更を加える必要はありません。