しばやん雑記

ASP.NET とメイドさんが大好きなフリーランスのプログラマーのブログ

Windows 10 Technical Preview for phones の Internet Explorer で新しく対応した機能について調べた

Lumia 636 を入手したので、早速 Windows 10 Technical Preview for phones をインストールして弄ってます。主に Internet Explorer 部分に興味があるので、そのあたりを今日は調べてみました。

既に IEBlog に記事が上がっているので、まずは一通り目を通しておきます。

Internet Explorer in the Windows 10 Technical Preview for phones - IEBlog - Site Home - MSDN Blogs

特徴としてはデスクトップ版の Windows 10 と同じレンダリングエンジンである Edge が載っているようです。違いとしてはスマートフォンには適さない機能を省いているといったところだと思います。*1

Living on the edge – our next step in helping the web just work - IEBlog - Site Home - MSDN Blogs

Edge を紹介している記事に書かれている機能は for phones でも使えるようになっているみたいでした。面白そうな部分だけ確認してみたので、つらつらと書いてみます。

User-Agent の変更

Windows Phone 8.1 Update で Internet Explorer 11 の User-Agent が大きく変わっていた件 - しばやん雑記 にて Windows Phone 8.1 Update では User-Agent が大きく変わったことを書きましたが、Windows 10 では 8.1 Update に比べると少しコンパクトになってました。

Mozilla/5.0 (Windows Phone 10.0; Android 4.2.1; NOKIA; RM-1027) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Mobile Safari/537.36 Edge/12.0

新しいレンダリングエンジンが使われていることが Edge/12.0 という部分で分かりますね。偽装する Android のバージョンが 4.0 から 4.2.1 に変わっていたり、良く分からないこだわりがありそうです。

HTTP/2 に対応

ALPN を使った HTTP/2 に Windows Phone 版の Internet Explorer としては初めて対応していました。

f:id:shiba-yan:20150221185751p:plain

バージョンとしては Draft 14 なので、Windows Server Technical Preview の IIS が対応しているのと同じバージョンになります。Windows 10 の正式版がリリースされる時には、HTTP/2 最終版の仕様に対応したものがリリースされると思われます。

HTTP Strict Transport Security (HSTS) に対応

Azure Websites で Strict-Transport-Security ヘッダを返すサイトを作成して試したところ、次回からは必ず HTTPS で接続されるようになりました。

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <httpProtocol>
      <customHeaders>
        <add name="Strict-Transport-Security" value="max-age=315360000" />
      </customHeaders>
    </httpProtocol>
  </system.webServer>
</configuration>

ちなみに IIS で HSTS を有効にする場合は、Web.config の customHeaders を使えばあっさりと出来ます。

HTTP Strict Transport Security comes to Internet Explorer - IEBlog - Site Home - MSDN Blogs

一応 HSTS Preload にも対応していて、Chrome と同じリストを使う形になっているようです。

HTTP Live Streaming に対応

HTTP Live Streaming (HLS) - Apple Developer で公開されているサンプルを再生してみました。

f:id:shiba-yan:20150221181742p:plain

Advanced stream はデコードエラーになりましたが、Basic stream は問題ありませんでした。

HTML5test の結果はいまいち信用できない

何故か WebM 周りに対応しているという扱いになってますが、実際には対応していません。

f:id:shiba-yan:20150221181207p:plain

リロードすると点数が上がったりするので、あまり信用しすぎるのもよくない気がしてきました。

まとめ

結局のところ status.modern.ie で Preview Release になっている機能が for phones でもしっかりと実装されているという話でした。

Internet Explorer Web Platform Status and Roadmap - status.modern.IE

電話には必要なさそうな Gamepad API にも対応していたりするので、本当にデスクトップと for phones で同じコードベースになっているみたいですね。

*1:ドラッグドロップ周りの API とか