エメラルドマウンテンの麓。

サムスンによる魔改造Webブラウザ、Samsung Internet の判定

Samsung Internet 2.0 未満の闇

サムスンが自社のスマートフォンに AOSP stock browser に替えてインストールしていた Samsung Internet には、めくるめくバグが存在したようです。この判定を正しくしたいと思い立って調べました。

残念ながら、未だ実機は手元にありません。

  • サムスンが Chromium を魔改造して創りだしたブラウザ
  • Android Browser の代わりに docomo や au の端末に搭載されている
  • S Browser は Canvas API の描画が壊滅的。全くマトモじゃない

(中略)

  • Chrome なら本来サポートしている機能が、S Browser では OFF にされているとか、I/Fはあるけど実装が空っぽとかがある
  • Chrome for Android は更新されるが、S Browser はアップデートされない

(中略)

Android 4.4 から Android Browser は Chrome WebView をベースにしているとのことなので、ちょっと古めの Chrome という扱いで良さそうです。

uupaa氏による上記文書には、S Browser が初めて登場したのは、Galaxy S4 (SC-04E) です、とあります。SC-04E は2013年5月23日の発売、4.2.2 が出荷時の Android OS のバージョンでした。また Galaxy S4 の世界で最初の発売は2013年4月27日でした。

しかし、サムスンの開発者向けサイトによると、2012年から Galaxy の標準ブラウザを Samsung Internet に置き換えました、とザックリと書かれていて焦りました。英語版 Wikipedia によると、2012年にサムスンは実に25モデルの Galaxy 端末を発売しています。一体、どのデバイスから、或いはどの Android バージョンから Samsung Internet が使われているのでしょう?

It has replaced the stock Android browser on Samsung Galaxy devices since 2012, to provide a browser highly optimized for our devices.

Samsung Internet のバージョンを知る

uupaa氏の先の文書によるとSC-04Eの userAgent 文字列中の Version/ に続く数字が Samsung Internet のバージョンを示しているらしいことが分かります。

幸いに Android 4.4.4 以降の Galaxy の userAgent には、SamsungBrowser/ が登場します。4.4.4 にプリインストールされている Samsung Internet のバージョンは 2.0 になるようです。

そして、2013年4月より前に発売された Galaxy の標準ブラウザの userAgent には、Version/ がありませんが、1.0未満のバージョンの Samsung Internet となるようです。

2012年から2013年4月のいつから Samsung Internet になった?

公式のドキュメントが無い以上は、あたりをつけて端末を手に入れて、不具合の変化を Android 標準ブラウザと比較するほかありません。などと考えていたところ、凄いまとめドキュメントが存在しました。

NielsLeenheer 氏によるドキュメントによって、同時代のサムスンスマートフォンでありながら Samsung Internet がインストールされていないものがあることが分かります。フラッグシップモデルに対しては早くから Samsung Internet がインストールされていた一方で、廉価なモデルには AOSP がインストールされていたようです。他の Android 端末と同じブラウザを備えた廉価版の方がUXが良かったのでは、と想像されいろいろ業が深いです。

ところで NielsLeenheer 氏がどうやってこの表を作成したのか?解説を見つけることが出来ませんでした。おそらくは HTML5 Test のスコアを元に、Samsung Internet の判定を行ったと想像します。もちろん HTML5 Test の公開するデータは偽装されたユーザーエージェントから送られたものである可能性もあるため、必ずしも正確なものではありません。

Samsung Internet 2.0 未満の表

次は NielsLeenheer 氏のドキュメントを表にまとめたものです。ユーザーエージェント文字列には各デバイスの型番が書かれているケースが多いです。この型番を利用することで、Samsung Internet の判定の可能性が見えてきました。

DeviceSamsung Version??1.01.51.6
HTML5 Test Score326346402420425430460
Based EngineWebkit 534.30Chromium 18Chromium 28
S III4.0.44.1.2, 4.3
Ace 24.1.2
Core4.1.24.34.4.2
Core Plus4.2.2
Note4.1.2
Note II4.1.2, 4.34.4.2
Note 8.04.1.2
Note 10.14.1.2
S II4.1.2
S II Plus4.2.2
S III Mini4.1.2
S III Mini VE4.1.2
Tab 2 (7.0)4.1.2, 4.2.2
Tab 2 (10.1)4.1.2, 4.2.2
Trend 34.3
Trend Plus Also known as Samsung Galaxy Trend Plus S75804.2.2
Young4.1.2
Ace 34.2.2
Mega 5.84.2.2
Mega 5.8 Plus4.2.2
Mega 6.34.2.24.4.2
S44.2.24.34.4.2 or 4.4.44.4.2
S4 Mini4.2.24.4.2 or 4.4.44.4.2
Win4.2.2
Note 34.34.4.2 or 4.4.44.4.2
Grand 24.34.4.2
Note 3 Neo4.34.4.2
Note 10.1 (2014)4.34.4.2
S3 Neo4.34.4.2 or 4.4.4
Light4.4.2
Note Pro4.4.2
S4 Active4.4.2
S4 Advance4.4.2
S4 VE(Neo)4.4.2
Tab 4 (7.0)4.4.2
Tab 4 (8.0)4.4.2
Tab 4 (10.1)4.4.2
Tab Pro 8.44.4.2
Tab Pro 10.14.4.2
Tab S 8.44.4.2
Tab S 10.54.4.2 or 4.4.4
A34.4.4
A54.4.4
Alpha4.4.4
K Zoom4.4.2
Mega 24.4.4
S III Neo4.4.2
S5 LTE4.4.2 or 4.4.4
S5 Active4.4.2 or 4.4.4
S5 Alpha(?)4.4.4
S5 Mini4.4.2