www.google.com アクセス時にページが空白になる現象
(github.com/webcompat)- Android の Firefox Mobile 121.0 で
https://www.google.com/にアクセスするとページが空白画面として表示され、Google 検索の中核機能を利用できない webcompat イシューが登録された - 再現テストでは Firefox Release 121.0.1 と Firefox Nightly 123.0a1 の両方で同じ問題が発生し、Chrome 120.0.6099.43 では再現しなかった
- ETP を無効化すると クッキーバナー は表示されるが、同意後もページ本文は引き続き空白画面のままで、問題は解決しなかった
- 関連する Mozilla Bugzilla イシューは
1873601に紐付けられ、必要であれば dot-release で配布するパッチが準備されていた - その後 Google が修正の展開を開始し、数時間にわたって観察した結果、大多数のユーザー では問題が解消されたように見えたため、イシューを fixed としてクローズする判断が示された
発生した問題と最初の報告環境
- 対象 URL は
https://www.google.com/で、問題種別は Site is not usable として登録された - 報告された症状は、Google ページが正常に読み込まれず 空白画面 として表示される現象だった
- 最初の報告環境:
- ブラウザー: Firefox Mobile 121.0
- OS: Android 13
- 他ブラウザーでのテスト:
Yes Other
- ブラウザー設定には次の値が含まれていた:
gfx.webrender.all: falsegfx.webrender.blob-images: truegfx.webrender.enabled: falsebuildID: 20231230165955channel: releasehasTouchScreen: true- mixed active/passive content blocked:
false - tracking content blocked:
false
再現結果と比較ブラウザー
- 再現担当者はこの問題を再現できた
- テスト環境:
- Firefox Nightly 123.0a1-20240108213208
- Firefox Release 121.0.1-20231230165955
- Chrome 120.0.6099.43
- デバイス: OnePlus 6 A6000
- OS: Android 11
- 画面:
1080 x 2280,19:9, 約402 ppi
- 再現結果:
- Firefox Release と Nightly の両方で再現した
- Chrome では再現しなかった
- イシューは Firefox Mobile、Gecko エンジン、ページ読み込み失敗 系として分類された
ETP 無効化テスト
- ETP を無効化するとクッキーバナーは表示された
- クッキーバナーを受け入れても Google ページ本文は表示されず、引き続き 空白画面 のままだった
- このテスト結果だけでは、ETP の無効化は問題の解決策にならなかった
診断と関連イシュー
- イシューは
needsdiagnosis段階へ移行した - 関連する Mozilla Bugzilla バグは 1873601 として相互参照された
- 同じ日に類似の Google 関連イシューが複数紐付けられた:
www.google.com - site is not usablewww.google.si - site is not usablewww.google.fr - desktop site instead of mobile sitewww.google.com.hk - site is not usable
修正の進行と対応方針
- 担当者は、必要であれば dot-release で配布するパッチが準備できていると明らかにした
- 当時の状況では、そのパッチは不要になる可能性があると判断された
- その後 Google が修正の展開を開始し、数時間にわたって進行状況を観察した結果、大多数のユーザー では問題が解消されたように見えた
- Google Search の空白画面問題が残っていて、UA spoof で解決できるケースに対応するため、会話のロックは解除された
- 同じ症状が続く場合は、既存イシューにコメントを残すよりも新しいバグを登録したほうが、triage プロセスでより適切に拾われる可能性がある
1件のコメント
Hacker Newsのコメント
要点は、https://github.com/webcompat/web-bugs/issues/131916#issuecomment-1882627241 にあるように、サーバー側のUA判定が完全に間違っていたケースだということ
Firefox AndroidのUAでリクエストすると、doctypeだけの空のHTMLドキュメントが返ってきて、curlでも再現できる
$ curl -H "User-Agent: Mozilla/5.0 (Android 10; Mobile; rv:123.0) Gecko/123.0 Firefox/123.0" https://www.google.comバージョンが65以上のUA文字列はすべて影響を受け、64以下は動作するようだ
Firefox Mobileがデスクトップモードで送るUA文字列では正常なレスポンスが返ってきた
Google Searchで働いている。今回の件は申し訳ない。もう修正済みで、検索ステータスダッシュボードにも掲載された: https://status.search.google.com/incidents/hySMmncEDZ7Xpaf9i32C
大規模サービスが比較的少ないエラーや停止で運用されていることを考えると、その裏に相当な作業量があるのだと実感する
GoogleがMozillaと協力して、広告のない検索体験を提供している
Googleはこの障害をここで追跡している: https://status.search.google.com/incidents/hySMmncEDZ7Xpaf9i32C
開示しておくとGoogleで働いているが、この件の担当ではない。Bugzillaのバグでこのリンクを見た
やや一般的でないブラウザで問題が起きたのは理解できるが、Googleのエンジニアにとって修正自体は些細なものではないかと思う
投稿者へ: 「誤解を招く、または釣りっぽいタイトルでないなら原文タイトルを使い、編集しないでください。」 — https://news.ycombinator.com/newsguidelines.html
記事で重要だと思う内容を言いたいなら、スレッドにコメントすればよい。そうすれば他の人と同じ条件で見える: https://hn.algolia.com/?dateRange=all&page=0&prefix=false&sort=byDate&type=comment&query=%22level%20playing%20field%22%20by:dang
投稿されたタイトルは “Google breaks search for Firefox users because of bad UA string sniffing” だった
Mozillaの元幹部が、GoogleがユーザーをChromeへ移行させるために意図的に問題を起こしたと書いたブログ記事を思い出す
https://news.ycombinator.com/item?id=38349357
それともハンロンの剃刀に近い話かもしれない
https://github.com/webcompat/web-bugs/issues/131916#issuecomment-1882627241
これは完全にサーバー側のUA判定が間違っていた事例。Firefox AndroidのUAでリクエストすると、doctypeだけの空のHTMLドキュメントを受け取る
curlで再現可能で、バージョン65以上のすべてのUA文字列に影響があるようだ。64以下は動作する
機能検出の代わりにUA文字列判定を使う正当な理由はあるのか? そして検索エンジンが一体どれほど最新機能を使えば、すべてのブラウザで動作しなくなり得るのか?
これは機能検出とは関係ないので、よくある提案は通用しない
自分の www.google.com への往復時間は約20msなので、そのうち少なくとも100msはインターネット上で消費されていることになる
この速度は強力な最適化なしには出ない。実際、http://google.comがインターネット上で最も最適化されたページでなければ驚くほどだ/
だから、どのブラウザがリクエストしているかに応じて最適化するのはまったく不思議ではない
笑うとは思わなかったが、純粋な白い四角形だけのスクリーンショットが妙におかしかった