AndroidのブラウザでのSSLエラー後にページが真っ白になってしまう。

※再現、というか確認しているのは、OS1.6のXPERIA実機とOS1.6で作成したSDKシミュレータです。

弊社お客様よりXPERIAにて、ページが表示できない、ということでそのページがどうなっているのか、調査しました。


で、自分でも上記の環境で該当ページを表示させてみたところ確かに真っ白。
しかし同じWebkit出身であるiPhone Safari(OS4.2ベース)では、きちんと表示されます。


何がどう違うのか、と考えて思いつくところはページのHTMLが汚すぎて、Androidのブラウザでは表示が崩れる(→崩れすぎて真っ白になっている)ということを疑ったのですが、本番サーバにおいていない状態のHTMLでは、きちんと表示されました。


ブラウザは、受け取ったHTMLをきちんと表示しようとするはずですから、ここは問題ない、ということになります。


そこでMacに戻り、ChromeSafariにて、本番環境の動きを確かめたところ、chromeでは、「SSL(証明書)のエラーですよ」の画面の後、「続行」ボタンを押すとおかしなことが起こりました。


一見普通にページが表示されてあるように見えるのですが、「表示→開発/管理→ソースを表示」にてHTMLのソースを確認してみたところ、「Error」となっており、実際に画面にデザインとして現れているものとは、明らかに違うHTMLになっていたのです。


そこで改めてググッてみると、ChromeにおけるSSLエラーの挙動については、多少事例が出てきました。


弊社の場合ですと、さらにこれに「SSL配下に画像がないのに、SSL配下以外の場所から持ってこようとしている」という例のInternetExplorerのようなエラーが重なり、bodyの一番最初にある画像が表示されない→それ以降全部見せない、ということで真っ白になっているようでした。


実際にエラーを回避する対策が打てたわけではないのですが、ひとまず原因は、これのようだ、ということで今日はここまで。