iOSはChromeもSafariも同じレンダリングとかいう訳ワカメな件


Google ChromeのレンダリングエンジンはBlinkだと思っていたのだけど、iOS版Chromeについては、Safariと同じくWebkitらしい。どういうことか簡単にまとめてみた。

採用ブラウザとレンダリングエンジンの種類

ブラウザ レンダリングエンジン
Chromium系(Google chrome, Operaとか) Blink
Safari Webkit
現世代Microsoft Edge EdgeHTML
次世代Microsoft Edge Chromiumをベースとして作成するので多分Blink使用
Firefox Gecko使用、そして一部Servo使用

参考: Webブラウザ、レンダリングエンジン、JavaScriptエンジンを整理して図視化してみた

iOSのみ例外ルールがある

iOSの制約で、iOSのレンダリングエンジンは常にwebkit(Apple開発)を使わなくてはいけない。サードパーティーのブラウザもwebkitを利用しなければならない。サードパーティーのブラウザは、webview機能を実装することでブラウザアプリとして存在している。

他のパソコン/スマートフォン向けには、Google Chromeでは「Blink」、Microsoft Edgeでは「EdgeHTML」(Blinkへ移行することが発表済みです)、Firefoxでは「Gecko」と、WEBブラウザ独自のレンダリングエンジンが利用されています。しかし、ChromeもEdgeもFirefoxも、あらゆるサードパーティー製WEBブラウザのiOS版はSafariと同じ「WebKit」なのです。

参考: iPhoneではあらゆるWEBブラウザのエンジンがSafariと同じ? - いまさら聞けないiPhoneのなぜ

ちなみに

WebRTCはWebviewには対応してくれてないので、iOS Safariでは動くけどChromeでは動かないよ(もともとこの理由を調べていたところ、レンダリングエンジンの問題に行き着いたのでした)