<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:series="http://organizeseries.com/"
	>

<channel>
	<title>ブラウザ &#8211; HTML5Experts.jp</title>
	<atom:link href="/tag/ブラウザ/feed/" rel="self" type="application/rss+xml" />
	<link>https://html5experts.jp</link>
	<description>日本に、もっとエキスパートを。</description>
	<lastBuildDate>Sat, 07 Jul 2018 03:14:05 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.7.19</generator>
	<item>
		<title>Windows Creators Update,Firefox 53,Chrome 58リリース──2017年4月のブラウザ関連ニュース</title>
		<link>/myakura/23905/</link>
		<pubDate>Thu, 29 Jun 2017 00:30:07 +0000</pubDate>
		<dc:creator><![CDATA[矢倉 眞隆]]></dc:creator>
				<category><![CDATA[最新動向]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Chrome]]></category>
		<category><![CDATA[Edge]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Safari]]></category>
		<category><![CDATA[ブラウザ]]></category>

		<guid isPermaLink="false">/?p=23905</guid>
		<description><![CDATA[連載： WEB標準化動向 (23)4月にはFirefox 53とChrome 58がリリースされました。そして、Windows Creators Updateが一般公開され、Edgeも新しいEdgeHTML 15が搭載さ...]]></description>
				<content:encoded><![CDATA[<div class="seriesmeta">連載： <a href="https://html5experts.jp/series/webstandards-news/" class="series-156" title="WEB標準化動向" data-wpel-link="internal">WEB標準化動向</a> (23)</div><p>4月にはFirefox 53とChrome 58がリリースされました。そして、Windows Creators Updateが一般公開され、Edgeも新しいEdgeHTML 15が搭載されたバージョンに更新されました。</p>

<p>また、Firefoxのリリースサイクルが変更され、新しい機能が実装されてからリリースされるまでの実装が短縮されることになりました。</p>

<h2>Windows Creators Updateリリース、EdgeもEdgeHTML 15に更新 <a id="edgehtml15" data-wpel-link="internal"></a></h2>

<p>4月11日にWindows Creators Updateが公開され、Microsoft Edgeも更新されました。</p>

<ul>
<li><a href="https://blogs.windows.com/msedgedev/2017/04/11/introducing-edgehtml-15/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">What’s new in Microsoft Edge in the Windows 10 Creators Update</a></li>
</ul>

<p>開いているタブをよけておく機能の追加や、タブのサムネイルを表示するなど、ブラウザとしての使い勝手にも手が入りました。</p>

<p>レンダリングエンジンであるEdgeHTMLもバージョンが15に更新されており、新機能が追加されています。開発ガイドが公開されています。</p>

<ul>
<li><a href="https://aka.ms/devguide_edgehtml_15" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Dev guide &#8211; Microsoft Edge Development</a></li>
</ul>

<p>Payment Request API、CSS Custom Propertiesなどは、Edgeのブログでも過去に取り上げられていますね。</p>

<ul>
<li><a href="https://blogs.windows.com/msedgedev/2016/12/15/payment-request-api-edge/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Simpler web payments: Introducing the Payment Request API</a></li>
<li><a href="https://blogs.windows.com/msedgedev/2017/03/24/css-custom-properties/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">CSS Custom Properties in Microsoft Edge</a></li>
</ul>

<p><a href="https://wicg.github.io/IntersectionObserver/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Intersection Observer</a>の実装はうれしいですね。これは要素とブラウザの表示領域が交差したことを検知するAPIで、画像などの遅延ロードやパララックス的な表現の実装に役立ちます。FRESH!のパフォーマンス改善手法のひとつとしても取り上げられました。</p>

<ul>
<li><a href="https://developers.cyberagent.co.jp/blog/archives/6057/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">FRESH! Web パフォーマンス改善 〜クライアントサイド編〜 | CyberAgent Developers Blog</a></li>
</ul>

<p>JavaScriptでは、Async Functions（<code>async</code>/<code>await</code>）の実装がうれしいです。今回Edgeがサポートしたので、主要ブラウザの最新バージョンすべてが対応しました。</p>

<h3>目立たない機能の実装も…あるかも</h3>

<p>Dev Guideの下に、実装されたAPIの一覧があったので、ブログなどでは取り上げられない機能のうち、気になったものをチェックしました。</p>

<ul>
<li><code>Element.closest()</code>、<code>Element.matches()</code>の実装</li>
<li><code>text-combine-upright</code>プロパティ（接頭辞なし）の実装</li>
<li><code>outline-offset</code>プロパティの実装</li>
<li><code>-webkit-text-stroke</code>プロパティとサブプロパティの実装</li>
<li><code>translate</code>、<code>scale</code>、<code>rotate</code>プロパティの実装</li>
</ul>

<p>最後の<code>translate</code>、<code>scale</code>、<code>rotate</code>プロパティですが、これはCSS Transformsの変換関数だった<code>translate()</code>、<code>scale()</code>、<code>rotate()</code>をプロパティ化したものです。プロパティになったので記述の短縮になりますし、書き順で結果が変わってしまうことのある<code>translate</code>プロパティでの指定よりも、意図した効果を実現しやすくなります。</p>

<p>すでにChromeで実装されており、Edgeでの実装もとてもうれしい…と書いていたのですが、手元でちょっと試したところ未知のプロパティとなってしまいました…秋の新しいバージョンに期待します。</p>

<h2>Firefoxのリリースプロセスに変更、Auroraチャンネルが廃止 <a id="firefox-dawn-project" data-wpel-link="internal"></a></h2>

<p>4月18日より、Firefoxのリリースサイクルが変更されました。</p>

<ul>
<li><a href="https://hacks.mozilla.org/2017/04/simplifying-firefox-release-channels/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Simplifying Firefox Release Channels and Improving Developer Edition’s Stability</a></li>
<li><a href="http://release.mozilla.org/firefox/release/2017/04/17/Dawn-Project-FAQ.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Dawn project or the end of Aurora</a></li>
</ul>

<p>これまでのFirefoxは、「Nightly → Aurora → Beta → Release」と4つのチャンネルに分かれていました。このうち、Auroraチャンネルが廃止され、「Nightly → Beta → Release」と、1サイクル短くなります。これにより、新しく実装された機能が手元に届くまでの期間が、これまでより1サイクルぶん（6〜8週）短くなります。</p>

<p>Auroraチャンネルはこれまで、Developer Editionという名前のビルドとして提供されていました。Developer Editionというシステムは廃止されないようですが、中身はBetaチャンネルになります。Beta版とのリリースとの違いは、Developer Editionはこれまで通り異なるプロファイルが作られることなどにあります。</p>

<p>Auroraチャンネルの廃止によって、4月19日にAuroraチャンネルに移行予定だったFirefox 55は次のサイクルまでNightlyに留まります。Nightlyが2サイクル分続くので、Firefox 55で導入される機能の数がいつもより増えるかもしれませんね。</p>

<h2>Firefox 53リリース <a id="firefox-53" data-wpel-link="internal"></a></h2>

<p>4月19日に、Firefox 53がリリースされました。</p>

<ul>
<li><a href="https://www.mozilla.org/en-US/firefox/53.0/releasenotes/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Firefox — Notes (53.0) — Mozilla</a></li>
<li><a href="https://hacks.mozilla.org/2017/04/firefox-53-quantum-compositor-compact-themes-css-masks-and-more/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Firefox 53: Quantum Compositor, Compact Themes, CSS Masks, and More ★ Mozilla Hacks</a></li>
</ul>

<p>今バージョンからWindows XPとVistaのサポートがされなくなった（Firefox 52 ESRのサポートに移行）ほか、Macでは64ビット版のみになったことでアプリケーションのファイルサイズが減少しました。UIまわりでは、パーミッション関連のUIが改善されています。</p>

<p>また、Firefox Developers Editionのテーマだった「Compact」テーマがリリース版にも同梱されました。</p>

<div id="attachment_23907" style="width: 650px" class="wp-caption aligncenter"><img src="/wp-content/uploads/2017/06/Screen-Shot-2017-06-26-at-17.04.08-640x327.png" alt="スクリーンショット：FirefoxのCompact Lightテーマ" width="640" height="327" class="size-large wp-image-23907" srcset="/wp-content/uploads/2017/06/Screen-Shot-2017-06-26-at-17.04.08-640x327.png 640w, /wp-content/uploads/2017/06/Screen-Shot-2017-06-26-at-17.04.08-300x153.png 300w, /wp-content/uploads/2017/06/Screen-Shot-2017-06-26-at-17.04.08-207x106.png 207w, /wp-content/uploads/2017/06/Screen-Shot-2017-06-26-at-17.04.08.png 724w" sizes="(max-width: 640px) 100vw, 640px" /><p class="wp-caption-text">グラデーションがなくなりフラットになった。画像はLightだがDarkテーマも。</p></div>

<p>レンダリングエンジン周りでは、以下のあたらしい機能がサポートされています。</p>

<ul>
<li><a href="https://developer.mozilla.org/en-US/Firefox/Releases/53" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Firefox 53 for developers &#8211; Mozilla | MDN</a></li>
</ul>

<h3>CSS Textの実装で日本語の扱いが向上 <a id="text3-segbreak" data-wpel-link="internal"></a></h3>

<p>Firefox 52から部分的にサポートされていたのですが、CSS Text Level 3の「<a href="https://drafts.csswg.org/css-text/#line-break-transform" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Segment Break Transformation Rules</a>」が実装され、日本語や中国語の文字間などに改行がある際の処理が変更されました。</p>

<p>Webページを表示するとき、HTML中の改行は半角スペースに変換されて表示されます。</p>

<p></p><pre class="crayon-plain-tag">&lt;p&gt;Hello↵
World&lt;/p&gt;</pre><p></p>

<p>こういう風に、改行前後に空白がなくても、「HelloWorld」ではなく「Hello World」と表示されます。この処理、単語の区切りに空白を使う言語ではよいのですが、日本語などでは不自然な箇所で空白が入ってしまい煩わしいです。</p>

<p>CSS Text Level 3では、改行前後の文字を見て、それが日本語や中国語のものであれば、その改行を除去して扱うという仕様が加わりました。以下のエントリで細かくまとめられています。</p>

<ul>
<li><a href="http://maiha.hatenablog.jp/entry/2017/04/10/firefox52-segment-break-transformation-rules" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">区分分断の変換規則 &#8211; おいしい</a></li>
</ul>

<p>この仕様の実装によって日本語内での改行が省かれるので、改行がつくる空白に依存しているコンテンツがあれば、見た目に影響がでるかと思います。</p>

<h3>display: flow-root <a id="display-flow-root" data-wpel-link="internal"></a></h3>

<p><code>display</code>プロパティの値に<code>flow-root</code>が加わりました。<code>float</code>の解除には<code>::after</code>を使う、<code>display: table</code>を使うなどがありましたが、ちゃんとした方法になります。</p>

<h3><a id="css-alignment-place-props" data-wpel-link="internal"></a></h3>

<p>CSS Alignmnent Level 3の<code>place-items</code>, <code>place-self</code>, <code>place-content</code>がサポートされました。FlexboxやGridで使われる<code>align-items</code>/<code>align-self</code>/<code>align-content</code>と<code>justify-items</code>/<code>justify-self</code>/<code>justify-content</code>をまとめて指定するプロパティです。</p>

<h3>caret-colorプロパティ <a id="caret-color" data-wpel-link="internal"></a></h3>

<p>先月リリースされたChrome 57でサポートされた、<code>caret-color</code>プロパティがFirefoxにも導入されました。<a href="https://html5experts.jp/myakura/22818/#caret-color" data-wpel-link="internal">3月にリリースされたChrome 57でサポート</a>されており、そちらで簡単に取り上げています。</p>

<h3><a id="css-transition-events" data-wpel-link="internal"></a></h3>

<p>CSS Transitions仕様に追加された<code>transitionstart</code>, <code>transitionrun</code>, <code>transitioncancel</code>イベントがサポートされました。MozillaのBrian Birtlesさんのブログエントリで、導入の経緯も含め簡単に紹介されています。</p>

<ul>
<li><a href="https://birtles.wordpress.com/2016/12/27/mozanime-in-2016/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">MozAnime in 2016 | Nothing new</a></li>
</ul>

<h3>その他 <a id="etc-in-firefox-53" data-wpel-link="internal"></a></h3>

<p>アルファチャンネルを持つWebMがサポートされました。<a href="https://simpl.info/videoalpha/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Chromeチームがつくったデモ</a>で確認できます（だいぶ気味の悪いデモですが…）</p>

<p>ビデオ関連では、<code>video</code>要素などの<code>play()</code>メソッドが<code>Promise</code>を返すようになりました。</p>

<p><a href="https://w3c.github.io/uievents/#event-type-auxclick" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><code>auxclick</code>イベント</a>が実装されました。主要なボタン以外のボタンがクリックされたときなどに発火するイベントです。ChromeもChrome 55から実装しています。</p>

<ul>
<li><a href="https://developers.google.com/web/updates/2016/10/auxclick" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">auxclick is Coming to Chrome 55</a></li>
</ul>

<h2>Chrome 58リリース <a id="chrome-58" data-wpel-link="internal"></a></h2>

<h3>abbrのデフォルトスタイルが変更に <a id="abbr-text-decoration" data-wpel-link="internal"></a></h3>

<p>略語をマークアップする<code>abbr</code>要素のデフォルトスタイルが変更され、CSS3の<code>text-decoration</code>プロパティを使うようになりました。以下のスタイルが、ChromeのUAスタイルシートに追加されています。</p>

<p></p><pre class="crayon-plain-tag">abbr[title], acronym[title] {
    text-decoration: dotted underline;
}</pre><p></p>

<p>FirefoxもFirefox 40で変更されています。</p>

<ul>
<li><a href="https://www.mitsue.co.jp/knowledge/blog/frontend/201505/18_0954.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Firefox 40 で abbr 要素のデフォルトスタイルが変更 | フロントエンドBlog | ミツエーリンクス</a></li>
</ul>

<p>多くはないと思いますが、使われているサイトでは、二重線になってしまうケースがあるかもしれません。</p>

<h3>color-gamut媒体特性のサポート <a id="color-gamut" data-wpel-link="internal"></a></h3>

<p>メディアクエリーの<code>color-gamut</code>媒体特性がサポートされました。</p>

<ul>
<li><a href="https://developers.google.com/web/updates/2017/03/chrome-58-media-updates#colorgamut" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">color-gamut media query ― Media Updates in Chrome 58</a></li>
</ul>

<p><code>color-gamut</code>はディスプレイの色域が特定ものにマッチするかを調べる媒体特性で、<a href="https://html5experts.jp/myakura/22818/#safari-css-wide-gamut-colors" data-wpel-link="internal">Safari 10.1でサポート</a>されています。</p>
]]></content:encoded>
		
		<series:name><![CDATA[WEB標準化動向]]></series:name>
	</item>
		<item>
		<title>ブラウザ戦争は終わった！Webの最先端と未来を、ブラウザエバンジェリストたちが語る</title>
		<link>/shumpei-shiraishi/23666/</link>
		<pubDate>Tue, 06 Jun 2017 01:00:55 +0000</pubDate>
		<dc:creator><![CDATA[白石 俊平]]></dc:creator>
				<category><![CDATA[最新動向]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Mozilla]]></category>
		<category><![CDATA[de:code2017]]></category>
		<category><![CDATA[ブラウザ]]></category>

		<guid isPermaLink="false">/?p=23666</guid>
		<description><![CDATA[連載： de:code 2017 特集 (3) 本記事は、2017/5/23, 24に開催された「de:code 2017」の1セッション、「War is over : ブラウザエバンジェリスト達とWebの未来を語ろう」...]]></description>
				<content:encoded><![CDATA[<div class="seriesmeta">連載： <a href="https://html5experts.jp/series/ms-decode2017/" class="series-449" title="de:code 2017 特集" data-wpel-link="internal">de:code 2017 特集</a> (3)</div><p><style>
b.speaker:after {
  content: ': ';
}
</style>
本記事は、2017/5/23, 24に開催された「<a href="https://www.microsoft.com/ja-jp/events/decode/2017/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">de:code 2017</a>」の1セッション、「War is over : ブラウザエバンジェリスト達とWebの未来を語ろう」を聴講したレポートです。</p>

<p>GoogleやMozillaのエバンジェリストたちがマイクロソフトのセッションで仲良くお話、って光景を見るだけでも楽しいセッションでした<img src="https://s.w.org/images/core/emoji/2.2.1/72x72/1f60a.png" alt="😊" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>

<p><img src="/wp-content/uploads/2017/06/IMG_0542-640x427.jpg" alt="" width="640" height="427" class="aligncenter size-large wp-image-23668" srcset="/wp-content/uploads/2017/06/IMG_0542.jpg 640w, /wp-content/uploads/2017/06/IMG_0542-300x200.jpg 300w, /wp-content/uploads/2017/06/IMG_0542-207x138.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></p>

<div id="attachment_23667" style="width: 650px" class="wp-caption aligncenter"><img src="/wp-content/uploads/2017/06/IMG_0570-640x427.jpg" alt="左からMozilla Japan 技術戦略マネージャ 浅井智也氏、Google デベロッパーアドボケート 北村英志氏、日本マイクロソフト デベロッパーエヴァンジェリズム統括本部 物江修氏" width="640" height="427" class="size-large wp-image-23667" srcset="/wp-content/uploads/2017/06/IMG_0570.jpg 640w, /wp-content/uploads/2017/06/IMG_0570-300x200.jpg 300w, /wp-content/uploads/2017/06/IMG_0570-207x138.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /><p class="wp-caption-text">左からMozilla Japan 技術戦略マネージャ 浅井智也氏、Google デベロッパーアドボケート 北村英志氏、日本マイクロソフト デベロッパーエヴァンジェリズム統括本部 物江修氏</p></div>

<div id="attachment_23669" style="width: 650px" class="wp-caption aligncenter"><img src="/wp-content/uploads/2017/06/IMG_0552-640x427.jpg" alt="Web Payments, WebVR, Web Assembly, Progressive Web Appsについてエバンジェリストたちが語る" width="640" height="427" class="size-large wp-image-23669" srcset="/wp-content/uploads/2017/06/IMG_0552.jpg 640w, /wp-content/uploads/2017/06/IMG_0552-300x200.jpg 300w, /wp-content/uploads/2017/06/IMG_0552-207x138.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /><p class="wp-caption-text">Web Payments, WebVR, Web Assembly, Progressive Web Appsについてエバンジェリストたちが語る</p></div>

<h2>Web Payments</h2>

<p><b class="speaker monoe">物江</b> まず、<strong>Web Payments</strong>についてお聞かせ願いたいのですが、こちら北村さんご説明をお願いできますか？</p>

<p><b class="speaker kitamura">北村</b> まず前提として、インターネットを利用する際に私たちがクレジットカードを利用するようになってから、それなりに時間が経過しましたね。そして現在転換期が訪れているといっていいのではないかと思います。これまでのように、フォームにクレジットカードの情報を生で入れて送信するというので、本当にいいのだろうか。</p>

<p>そうした問題を解決すべく提案されているのが、Payment Request APIです。他のサードパーティ製アプリに遷移して戻ってくるなどのUIを通じて、決済に必要な情報を、スムーズにユーザーに対して問い合わせることができます。</p>

<p>（筆者注: <a href="https://developers.google.com/web/updates/2016/07/payment-request?hl=ja" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Payment Request APIの日本語による解説記事</a>）
（筆者注: <a href="https://blogs.msdn.microsoft.com/msedgedev_japan/2016/12/20/simpler-web-payments-introducing-the-payment-request-api/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">よりシンプルな Web の決済方法 : Payment Request API の紹介</a>）
<div id="attachment_23672" style="width: 650px" class="wp-caption aligncenter"><img src="/wp-content/uploads/2017/06/IMG_0555-640x427.jpg" alt="Google デベロッパーアドボケート 北村英志氏" width="640" height="427" class="size-large wp-image-23672" srcset="/wp-content/uploads/2017/06/IMG_0555.jpg 640w, /wp-content/uploads/2017/06/IMG_0555-300x200.jpg 300w, /wp-content/uploads/2017/06/IMG_0555-207x138.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /><p class="wp-caption-text">Google デベロッパーアドボケート 北村英志氏</p></div></p>

<p><b class="speaker monoe">物江</b> なるほど。このPayment Request APIですが、<strong>Edgeではバージョン15からサポート</strong>していまして、Creators Updateを適用したWindows 10上ではすでに利用可能です。Firefoxでのサポートは行われる予定があるんでしょうか？</p>

<p><b class="speaker asai">浅井</b> はい、時期はまだ言えないのですが、<strong>サポートするのは確定</strong>しています。</p>

<p><b class="speaker kitamura">北村</b> <strong>Chromeは現在Android版のみ対応していて、デスクトップ版は開発中</strong>です。</p>

<p><b class="speaker monoe">物江</b> あと、iOS版のChromeについても教えていただけますか？</p>

<p><b class="speaker kitamura">北村</b> iOS版Chromeは、iOSのWebViewを使っていて、iOSのWebViewはPayment Request APIに対応していません。なので、<strong>そのままだとiOS ChromeではPayment Request APIは使えないのですが、実はこれを無理やり使えるようにしてしまおうという計画がありまして</strong>。</p>

<p>どう実現するかというと、ChromeからWebViewに対して機能を注入してしまうんですね。WebViewで通常使えないJavaScript APIを使えるようにしてしまう。Cordovaとかでは以前から普通に行われていたことです。</p>

<p>これまではiOSのWebViewに対してJavaScriptをインジェクトして、新しいAPIを使えるようにするということはしてきませんでした。なので、iOS版のChromeにとっては大きな方針転換でもあります。</p>

<p><b class="speaker monoe">物江</b> このように、各種のプラットフォームでサポートがすでに始まっていますので、<strong>今年中か、もしくは来年の初めくらいには、一般的に使えるAPIになってそう</strong>ですね。</p>

<p><b class="speaker asai">浅井</b> 個人的には、（Mozillaの前身である）Netscapeが切り開いた商用インターネットの世界が、ようやくここまで来たか…と感慨深いものがあります。</p>

<h2>WebVR</h2>

<p><b class="speaker monoe">物江</b> では次はWebVRについてお聞きしていきましょう。WebVRについては、先日のCreators Updateから、1.1のAPIをサポートしはじめました。また、<a href="http://www.babylonjs.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Babylon.js</a>や<a href="https://aframe.io/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">A-Frame</a>といったライブラリを使うと、WebVRを簡単に扱うことができると。</p>

<p>浅井さん、A-Frameについて教えていただけますか？</p>

<p><b class="speaker asai">浅井</b> A-Frameは、Web上で簡単にVRを扱えるようにすることを目指すライブラリです。例えば、HTMLタグを一つぽんと置くだけで360度画像を表示できるようにするとか。</p>

<p>Unityだとアセットストアがあって、アセットを購入したりすることができるのですが、<a href="https://aframe.io/aframe-registry/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">それと同じようなエコシステムがコミュニティ主導で進められている</a>のも特徴です。非常に簡単に3Dコンテンツを作れて、売り買いしながら作っていけるエコシステムができていくだろうと期待しています。</p>

<div id="attachment_23673" style="width: 650px" class="wp-caption aligncenter"><img src="/wp-content/uploads/2017/06/IMG_0559-640x427.jpg" alt="Mozilla Japan技術戦略マネージャ 浅井智也氏" width="640" height="427" class="size-large wp-image-23673" srcset="/wp-content/uploads/2017/06/IMG_0559.jpg 640w, /wp-content/uploads/2017/06/IMG_0559-300x200.jpg 300w, /wp-content/uploads/2017/06/IMG_0559-207x138.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /><p class="wp-caption-text">Mozilla Japan技術戦略マネージャ 浅井智也氏</p></div>

<p><b class="speaker monoe">物江</b> コンテンツで思い出したんですが、意外とWeb上で3Dを扱うような仕事ってまだ少ないらしいんですよね。WebGLがモダンブラウザ全部でサポートされるようになってから結構経つのに、WebGLってどこかゲーム用途のイメージも強いみたいで。</p>

<p>ただ<strong>WebGLって、本来ゲーム以外の用途もたくさんあるはず</strong>なんです。例えば<a href="https://grimoire.gl/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Grimoire.js</a>っていうライブラリがあるんですが、これは様々な3Dコンテンツを、簡単にWeb上で扱えるようにすることを目的としていて、こういう動きが盛り上がると、WebGLってもっと活用されるんじゃないかと思う。</p>

<p><b class="speaker asai">浅井</b> その点VRは、コンテンツを中心とした盛り上がりも活発で、結構未来があるんじゃないかな、と思いますね。</p>

<p><b class="speaker monoe">物江</b> ちなみに、VRではなくてMR (Mixed Reality) でいうと<a href="https://github.com/Microsoft/HoloJS" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">HoloJS</a>っていうのもあって、HoloLens用のアプリを作ることもできます…すごく大変なんですけどね(笑)。</p>

<p>ところでChromeも、WebVRには対応済みですよね。何か最近の動きとかを教えていただけますか？</p>

<p><b class="speaker kitamura">北村</b> そうですねー、Daydream上でChromeを立ち上げることができるようにする、というのは聞きましたね（筆者注: VR/AR空間内でChromeを立ち上げられるように、ということだと思われる。参考: <a href="https://techcrunch.com/2017/05/18/chrome-is-coming-to-augmented-reality-and-google-daydream/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Chrome is coming to augmented reality and Google Daydream (TechCrunch)</a>）。</p>

<h2>WebAssembly</h2>

<p><b class="speaker monoe">物江</b> では次は、WebAssemblyのお話を聞かせてください。やはりここは、（WebAssemblyの元になったasm.jsの開発元である） Mozillaの浅井さんにお聞きしようかと。</p>

<p><b class="speaker asai">浅井</b> はい、WebAssemblyの元になったのはasm.jsという技術です。
もともと、JavaScriptは動的な言語なので、パフォーマンスの向上にも限界がある。そこで、JavaScriptのサブセットとしてasm.jsが提案されたんです。
変数の型が厳密に定義されており、さらに実行に先立ってコンパイルが可能なので、相当に速かった。</p>

<p><img src="/wp-content/uploads/2017/06/IMG_0536-640x427.jpg" alt="" width="640" height="427" class="aligncenter size-large wp-image-23674" srcset="/wp-content/uploads/2017/06/IMG_0536.jpg 640w, /wp-content/uploads/2017/06/IMG_0536-300x200.jpg 300w, /wp-content/uploads/2017/06/IMG_0536-207x138.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></p>

<p>WebAssemblyは、さらにそれをコンパイル済みのバイナリとして配布できるようにする技術です。そのバイナリフォーマットに関する仕様がWebAssemblyです。<strong>実行速度は相当なもので、現在でもC言語の速度まであと20%というところまで迫っています</strong>。</p>

<p><b class="speaker monoe">物江</b> FirefoxやChromeではすでに対応済みなんですよね。Edgeでも、フラグをONにすると使えるようになります。
個人的にはJavaScriptを置き換えるようなものではなく、高機能な計算が必要なところに使うものだと思っていますが、合ってますか？</p>

<p><b class="speaker asai">浅井</b> はい、そうだと思います。WebAssemblyに出力するのも、基本的にはC/C++やRust言語で書かれたものになりますし。</p>

<p><b class="speaker monoe">物江</b> ちなみに、WebAssemblyへのコンパイルって具体的にはどうやるんですか？</p>

<p><b class="speaker asai">浅井</b> <a href="http://kripken.github.io/emscripten-site/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Emscripten</a>と<a href="https://github.com/WebAssembly/binaryen" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Binaryen</a>というツールを組み合わせて、C/C++のコードをWebAssemblyに変換する…というのが一般的ですね。基本的には、LLVMの中間言語が出力できれば、そこからEmscriptenを使ってasm.jsに変換でき、更にBinaryenでWebAssembly化できます。</p>

<p>（筆者注: <a href="https://github.com/kripken/emscripten/wiki/WebAssembly" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">https://github.com/kripken/emscripten/wiki/WebAssembly</a> も参考のこと）</p>

<h2>Progressive Web Apps</h2>

<p><b class="speaker monoe">物江</b> 昨今のWebの重要キーワード、Progressive Web Appsですが、これは北村さん説明をお願いできますか？</p>

<p><b class="speaker kitamura">北村</b> はい。その前に、Progressive Web Appsって、ご存じの方どれくらいいます？…思ったより浸透してないですね。まだまだだな。</p>

<p><strong>Progressive Web Appsっていうのは、一言で言うとモバイルウェブの新しい形</strong>です。</p>

<ul>
<li>Webサイトがホーム画面から起動できる</li>
<li>プッシュ通知</li>
<li>オフラインで動く</li>
</ul>

<p><img src="/wp-content/uploads/2017/06/IMG_0567-640x427.jpg" alt="" width="640" height="427" class="aligncenter size-large wp-image-23680" srcset="/wp-content/uploads/2017/06/IMG_0567.jpg 640w, /wp-content/uploads/2017/06/IMG_0567-300x200.jpg 300w, /wp-content/uploads/2017/06/IMG_0567-207x138.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></p>

<p><b class="speaker kitamura">北村</b> 百聞は一見にしかずで、<a href="http://mobile.twitter.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">twitter.com</a>をAndroid 版 Chromeで開いてみるというのが一番わかりやすいと思います。
これは<strong>Twitter Lite</strong>と呼ばれていて、動作も素早いし、モバイルアプリと使い勝手はほとんど変わりません。</p>

<p><b class="speaker asai">浅井</b> PWAは、アプリに比べてデータ通信量も抑えめになるそうです。例えばTwitter Liteではアプリに比べて70%データが削減できるとか。なので、ブラジル、インド、インドネシアといった、ネットワークインフラの整っていない新興国では、アプリよりもユーザのコンバージョン率が高く、採用も広まっているようです。</p>

<p><b class="speaker monoe">物江</b> Firefoxでの、PWA対応はいかがでしょう？</p>

<p><b class="speaker asai">浅井</b> 現在でもホーム画面へのインストールなど基本機能は対応していますし、今後フルスクリーン起動なども順次実装を進めていくそうです</p>

<p><b class="speaker monoe">物江</b> モバイルといえばネイティブアプリ、という印象はいまだに根強いですが、モバイルサイトも同時に構築できてしまうので、環境が整って利点が正しく理解されさえすれば、一気に広まりそうですよね。<strong>PWA対応していないブラウザでアクセスしたとしても、通常のWebアプリとして使えますし</strong>。</p>

<p>ちなみにEdgeでは、今年の夏頃から開発者向けのビルドでPWAを試せるようになります。<strong>年末ぐらいまでには、メジャーブラウザでは全体的にPWAが使えるようになりそう</strong>ですね。</p>

<p><b class="speaker kitamura">北村</b> ちなみにマイクロソフトさんの検索エンジンの<strong>Bingが、PWAを見つけたらWindows Storeに並べてしまうようになる</strong>というのを最近知って、すごい荒業だけどこれは面白いなと思いました。</p>

<p>PWAって捉えどころがないふわっとした用語ではありますが、実際には個々の技術それぞれにもすごく価値があります。オフラインやプッシュ通知がWebアプリで行えるというのは、<strong>Ajax以来の技術的な革命じゃないかと思います</strong>ね。</p>

<h2>Web Components</h2>

<p><b class="speaker monoe">物江</b> そろそろお時間も迫ってまいりましたので、最後のトピックです。
Web Componentsについて語りたいのですが、北村さん、Web Componentsのご説明をお願いできますか？</p>

<p><b class="speaker kitamura">北村</b> Web Componentsっていうのは、一言で言うと、<strong>自分でHTMLタグを作れるという技術</strong>です。そして、自作したタグ（コンポーネント）を配布できる。</p>

<p>Web Componentsは、最近だとSafariに搭載されたのが大きいですね。iOSを含め、割とどこでも使えるメジャーな技術になりました。</p>

<p>あともう一つ、<strong>AMP (Accellalated Mobile Pages）も実はWeb Componentsを使っています</strong>。AMPに対応しているサイトは、現時点でもかなりの数に上りますので、実際にはWeb Componentsはすごい勢いで広まっていると言っていいんじゃないかと思います。</p>

<p><b class="speaker monoe">物江</b> <a href="https://www.polymer-project.org/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Polymer</a>というライブラリもあるそうですが、それとWeb Componentsの関係はどのようなものでしょうか？
<div id="attachment_23676" style="width: 650px" class="wp-caption aligncenter"><img src="/wp-content/uploads/2017/06/IMG_0556-640x427.jpg" alt="日本マイクロソフト株式会社 デベロッパーエヴァンジェリズム統括本部 物江修氏" width="640" height="427" class="size-large wp-image-23676" srcset="/wp-content/uploads/2017/06/IMG_0556.jpg 640w, /wp-content/uploads/2017/06/IMG_0556-300x200.jpg 300w, /wp-content/uploads/2017/06/IMG_0556-207x138.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /><p class="wp-caption-text">日本マイクロソフト株式会社 デベロッパーエヴァンジェリズム統括本部 物江修氏</p></div></p>

<p><b class="speaker kitamura">北村</b> Web Componentsっていうのは、W3Cで標準化が進められている技術なんです。具体的には4つの技術から構成されています。</p>

<p><strong>Custom Element</strong>は、先程申し上げたように独自のタグを作ることのできる技術です。</p>

<p><strong>Shadow DOM</strong>は、DOMのカプセル化を行えるようにする技術。</p>

<p><strong>Template Element</strong>っていうのは、「テンプレートである」という意味合い以外持たないHTML要素です。</p>

<p><strong>HTML Import</strong>というのは、JSやCSSのように、HTMLもインポート可能にするという技術です。</p>

<p>一方で<strong>Polymerというのは、Web Componentsの上に構築されたライブラリ</strong>です。</p>

<p>Web Components標準はそれほど高いレベルのAPIを提供しません。なので、実際にコンポーネントを作ろうとすると、実装の重複が多くなります。その重複を排除して、最小限のコードでコンポーネントを作れるようにするのがPolymerです。</p>

<p><b class="speaker monoe">物江</b> ちなみにEdgeは、Web Componentsについては長いこと意識しているようですが、まだ詳細は未定です。Polymerを使うと、現在のEdgeでもWeb Componentsが動作したりするんでしょうか？</p>

<p><b class="speaker kitamura">北村</b> はい、PolymerはPolyfill（対応していないブラウザ上でAPIのエミュレーションを行うライブラリ）も含んでいますので、動作しますね。<strong>実は、現在のYouTubeサイトはWeb ComponentsベースのHTMLに全て書き換えられている</strong>んです。コードを見てみると面白いと思いますよ。</p>

<p>あと、Polymerはライブラリだけじゃなくてコンポーネントも提供しているんです。 <a href="http://webcomponents.org/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">http://webcomponents.org/</a> を見てみると、すでにいろんなコンポーネントが利用できるのを確認できると思います。</p>

<h2>まとめ</h2>

<p><img src="/wp-content/uploads/2017/06/IMG_0572-640x427.jpg" alt="" width="640" height="427" class="aligncenter size-large wp-image-23677" srcset="/wp-content/uploads/2017/06/IMG_0572.jpg 640w, /wp-content/uploads/2017/06/IMG_0572-300x200.jpg 300w, /wp-content/uploads/2017/06/IMG_0572-207x138.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></p>

<p><b class="speaker monoe">物江</b> では、このディスカッションの締めくくりとして、Webの今後について一言ずついただけますでしょうか？</p>

<p><b class="speaker asai">浅井</b> はい、モバイル時代は長らくネイティブアプリが中心でしたが、ここに来て<strong>Webの力が盛り返してきているのを感じています</strong>。ネイティブアプリと遜色ない機能を提供できるだけではなく、ユーザーにリーチするのも、アプリストアよりもWebのほうがハードルが低い。リンクを送るだけでプロモーションできますしね。そういう点で、PWAには期待しています。</p>

<p><b class="speaker kitamura">北村</b> PWAについては、ぼくも同じく期待しています。とりあえずTwitter Liteを触ってみてほしいですね。</p>

<p>あとWebの今後という点で思いついたのですが、<strong>企業の枠組みを超えた合意形成の方法としては、Webはかなり進んでいるんじゃないかと思います</strong>。ディスカッションの場作りとか、標準化を行う上で蓄積されたノウハウはかなり貴重で、他の場面や業界にも活かされていくんじゃないかな…と考えています。</p>

<p><b class="speaker monoe">物江</b> ではそろそろお時間ですので、本セッションを終わりとしたいと思います。みなさま、本日は大変興味深いお話を、どうもありがとうございました。</p>
]]></content:encoded>
		
		<series:name><![CDATA[de:code 2017 特集]]></series:name>
	</item>
		<item>
		<title>Firefox, Chrome, SafariがCSS Gridに一斉対応ほか──2017年2月と3月のブラウザ関連ニュース</title>
		<link>/myakura/22818/</link>
		<pubDate>Thu, 13 Apr 2017 04:00:44 +0000</pubDate>
		<dc:creator><![CDATA[矢倉 眞隆]]></dc:creator>
				<category><![CDATA[最新動向]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Chrome]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Safari]]></category>
		<category><![CDATA[ブラウザ]]></category>

		<guid isPermaLink="false">/?p=22818</guid>
		<description><![CDATA[連載： WEB標準化動向 (22)2月はブラウザのリリースがなかったのですが、3月にはFirefox 52, Chrome 57, Safari 10.1がリリースされました。いくつかのブラウザに共通して大きな機能追加が...]]></description>
				<content:encoded><![CDATA[<div class="seriesmeta">連載： <a href="https://html5experts.jp/series/webstandards-news/" class="series-156" title="WEB標準化動向" data-wpel-link="internal">WEB標準化動向</a> (22)</div><p>2月はブラウザのリリースがなかったのですが、3月にはFirefox 52, Chrome 57, Safari 10.1がリリースされました。いくつかのブラウザに共通して大きな機能追加があったので、まずはそこから紹介します。個々のリリースについては、そのあとで取り上げます。</p>

<h2>Firefox, Chrome, SafariがCSS Gridに一斉対応 <a id="css-grid-in-fx-cr-sf" data-wpel-link="internal"></a></h2>

<p>CSS Grid LayoutがFirefox 52, Chrome 57, Safari 10.1で有効になりました。長らく試験的な実装状態が続いていたのですが、タイミングをはかったかのように一斉に使えるようになりました。</p>

<ul>
<li><a href="https://developers.google.com/web/updates/2017/01/css-grid" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">CSS Grid – Table layout is back. Be there and be square.  |  Web  |  Google Developers</a></li>
<li><a href="https://webkit.org/blog/7434/css-grid-layout-a-new-layout-module-for-the-web/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">CSS Grid Layout: A New Layout Module for the Web | WebKit</a></li>
</ul>

<p>CSS Grid Layoutは、かなり強力なレイアウト用の仕様です。
ちょうど、HTML5 Experts.jpのトップページがCSS Gridの説明に都合良さそうなので、ちょっと書きながら紹介しようと思います。</p>

<div id="attachment_22837" style="width: 650px" class="wp-caption aligncenter"><img src="/wp-content/uploads/2017/04/hx-640x427.png" alt="スクリーンショット：HTML5 Experts.jpのトップページ" width="640" height="427" class="size-large wp-image-22837" srcset="/wp-content/uploads/2017/04/hx.png 640w, /wp-content/uploads/2017/04/hx-300x200.png 300w, /wp-content/uploads/2017/04/hx-207x138.png 207w" sizes="(max-width: 640px) 100vw, 640px" /><p class="wp-caption-text">HTML5 Experts.jpのトップはグリッドレイアウトを意識した見た目になっている</p></div>

<p>HTML5 Experts.jpのトップページは、ロゴやサイドバーなどのブロックが、15pxの間隔をおいて配置されています。<br />
ちょっと線を引いてみましょう。</p>

<div id="attachment_22838" style="width: 650px" class="wp-caption aligncenter"><img src="/wp-content/uploads/2017/04/hxgridlines-640x440.png" alt="スクリーンショット：HTML5 Experts.jpのトップページにグリッドの線をひいた" width="640" height="440" class="size-large wp-image-22838" srcset="/wp-content/uploads/2017/04/hxgridlines.png 640w, /wp-content/uploads/2017/04/hxgridlines-300x206.png 300w, /wp-content/uploads/2017/04/hxgridlines-207x142.png 207w" sizes="(max-width: 640px) 100vw, 640px" /><p class="wp-caption-text">グリッドのガイド線を引いた。線で区切られた領域に各パーツが収まっているのがよくわかる</p></div>

<p>CSS Gridも同様に、配置する基準となる線を定義し、その線と線で区切られた領域に、コンテンツを配置します。Photoshopでガイドをひいて、その中で矩形選択をするようなかんじでしょうか。</p>

<p>現在のトップページをCSS Gridで書くと、このようなかんじになります。</p>

<p></p><pre class="crayon-plain-tag">body {
  display: grid;

  /* 縦線をひく */
  grid-template-columns: 1fr 290px 430px 290px 1fr;

  /* 横線をひく */
  grid-template-rows: 210px 60px 1fr /* 以降は割愛 */;

  /* 隙間を定義すると、隙間分の線を引かなくてよいので楽 */
  grid-gap: 15px;
}

#logo {
  /* 横の配置、2番目の線（1番目の線は左端）から3番目の線まで */
  grid-column: 2 / 3;

  /* 縦の配置、1番目の線（上端）から2番目の線まで */
  grid-row: 1 / 2;
}
...</pre><p></p>

<p>枠だけですが、以下にコードを置いてみました。</p>

<ul>
<li><a href="https://jsfiddle.net/u73q559r/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">https://jsfiddle.net/u73q559r/</a></li>
</ul>

<p>CSS Gridは機能が強力なぶん、構文も複雑です。先程書いたのは一例で、ほかにも線に名前をつけたり、アスキーアートのような構文でグリッドのセルを定義できたりします。</p>

<p>ドキュメンテーションやチュートリアルのサイトもすでにあるので、それを参考にしてみましょう。</p>

<ul>
<li><a href="https://developer.mozilla.org/en-US/docs/Learn/CSS/CSS_layout/Grids" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Grids &#8211; Learn web development | MDN</a></li>
<li><a href="http://gridbyexample.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Grid by Example</a></li>
<li><a href="http://labs.jensimmons.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Jen Simmons | Labs</a></li>
<li><a href="http://cssgridgarden.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Grid Garden</a></li>
</ul>

<p>このうち、Grid Gardenは、CSS Gridの構文の一部をゲームで学べるサイトです。入門にちょうどよいかと思います。</p>

<p>また、Firefoxの開発者ツールには、CSS Gridインスペクタが搭載されました。グリッドの線や隙間を視覚的に確認できてとても便利です。</p>

<ul>
<li><a href="https://developer.mozilla.org/en-US/docs/Tools/Page_Inspector/How_to/Examine_grid_layouts" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Examine grid layouts with the CSS Grid Inspector &#8211; Firefox Developer Tools | MDN</a></li>
</ul>

<p>CSS Gridを使う場合、コンポーネントの見た目とレイアウトを、コード上ではっきり分離しないと扱いづらくなるので、マークアップやCSS設計にもいろいろ影響を与えるだろうと感じています。気が向いたら、取り上げるかもしれません。</p>

<h2>Firefox, ChromeではWebAssemblyも有効に <a id="wasm-shipped-in-fx-cr" data-wpel-link="internal"></a></h2>

<p>こちらはFirefoxとChromeのみですが、WebAssemblyが有効になりました。</p>

<p>WebAssemblyについては、清水さんの連載を読んでいただくことにして、説明は割愛します。</p>

<ul>
<li><a href="https://html5experts.jp/chikoski/18964/" data-wpel-link="internal">Webブラウザで高速な演算を可能にする低水準言語asm.jsと、WebAssembly詳解 ― JavaScriptが動く仕組み</a></li>
<li><a href="https://html5experts.jp/chikoski/18980/" data-wpel-link="internal">Webブラウザで高速な演算を可能にする低水準言語asm.jsと、WebAssembly詳解 ― asm.jsの仕組みとコーディング例</a></li>
<li><a href="https://html5experts.jp/chikoski/22494/" data-wpel-link="internal">Webブラウザで高速な演算を可能にする低水準言語asm.jsと、WebAssembly詳解 ― C / C++をasm.jsに変換するツールEmscripten</a></li>
<li><a href="https://html5experts.jp/chikoski/22523/" data-wpel-link="internal">Webブラウザで高速な演算を可能にする低水準言語asm.jsと、WebAssembly詳解 ― asm.jsを高速に動作させる新しいコンパイラーターゲットWASMとは？</a></li>
</ul>

<p>Mozilla Hacksでも2月にWebAssemblyの特集が組まれています。JITコンパイラやアセンブリの話から始まるなど、読み物としても面白いものになっています。</p>

<ul>
<li><a href="https://hacks.mozilla.org/2017/02/a-cartoon-intro-to-webassembly/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">A cartoon intro to WebAssembly</a></li>
<li><a href="https://hacks.mozilla.org/2017/02/a-crash-course-in-just-in-time-jit-compilers/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">A crash course in just-in-time (JIT) compilers</a></li>
<li><a href="https://hacks.mozilla.org/2017/02/a-crash-course-in-assembly/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">A crash course in assembly</a></li>
<li><a href="https://hacks.mozilla.org/2017/02/creating-and-working-with-webassembly-modules/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Creating and working with WebAssembly modules</a></li>
<li><a href="https://hacks.mozilla.org/2017/02/what-makes-webassembly-fast/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">What makes WebAssembly fast?</a></li>
<li><a href="https://hacks.mozilla.org/2017/02/where-is-webassembly-now-and-whats-next/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Where is WebAssembly now and what’s next?</a></li>
</ul>

<p>この特集の他にも、asm.jsと比較しWebAssemblyが速い理由や、WebAssembly Explorerというツールの紹介もされています。</p>

<ul>
<li><a href="https://hacks.mozilla.org/2017/03/why-webassembly-is-faster-than-asm-js/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Why WebAssembly is Faster Than asm.js</a></li>
<li><a href="https://hacks.mozilla.org/2017/03/previewing-the-webassembly-explorer/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Previewing the WebAssembly Explorer</a></li>
</ul>

<p>MDNにもWebAssemblyのドキュメントがまとめられており、日本語訳も有志によって進められているようです。</p>

<ul>
<li><a href="https://developer.mozilla.org/ja/docs/WebAssembly" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">WebAssembly | MDN</a></li>
<li><a href="https://developer.mozilla.org/ja/docs/WebAssembly/Concepts" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">WebAssembly のコンセプト</a></li>
</ul>

<h2>Firefox 52 <a id="firefox-52" data-wpel-link="internal"></a></h2>

<p>3月7日に、Firefox 52がリリースされました。Captive portal（Wi-Fiサービスのログインページ）の検出が追加されたり、HTTPなページでパスワードを扱っている場合警告が出たり、Flash以外のNPAPIプラグイン（AcrobatやSilverlight、Javaなど）が無効にされたりと、セキュリティ周りの機能強化が目立ちます。</p>

<p>とはいえ、フロントエンド周りの機能強化も、先述したCSS GridとWebAssemblyサポートに加えて、以下のようなものがあります。</p>

<ul>
<li><a href="https://developer.mozilla.org/ja/Firefox/Releases/52" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Firefox 52 for developers</a></li>
</ul>

<h3>space-evenly <a id="space-evenly-in-flexbox" data-wpel-link="internal"></a></h3>

<p>Flexboxの<code>justify-content</code>で<a href="https://drafts.csswg.org/css-align-3/#valdef-align-content-space-evenly" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><code>space-evenly</code>という新しい値</a>がサポートされました。</p>

<p><a href="https://drafts.csswg.org/css-align-3/#valdef-align-content-space-around" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><code>space-around</code></a>となにが違うかというと、<code>space-around</code>では連続したアイテム間では空白が左右のそれの倍になってしまうのですが、<code>space-evenly</code>では「even（均等）」と名のつく通り、空白の大きさが等しくなります。仕様書の画像がわかりやすいです。</p>

<div id="attachment_22842" style="width: 514px" class="wp-caption aligncenter"><img src="/wp-content/uploads/2017/04/space-around-vs-space-evenly.png" alt="justify-contentプロパティなどに指定する各種値のレンダリングの違いを比較した画像" width="504" height="218" class="size-full wp-image-22842" srcset="/wp-content/uploads/2017/04/space-around-vs-space-evenly.png 504w, /wp-content/uploads/2017/04/space-around-vs-space-evenly-300x130.png 300w, /wp-content/uploads/2017/04/space-around-vs-space-evenly-207x90.png 207w" sizes="(max-width: 504px) 100vw, 504px" /><p class="wp-caption-text">space-evenlyのほうがspace-aroundよりも使われそう</p></div>

<h3>CSS Color Level 4の<code>rgb()</code>と<code>hsl()</code> <a id="color4-notation" data-wpel-link="internal"></a></h3>

<p>CSS Color Level 4の<code>rgb()</code>, <code>hsl()</code>関数表記が実装されました。「もとからあったじゃないか」と思う方しかいないと思いますが、CSSお得意の構文変更です。</p>

<p>これまでの<code>rgb()</code>や<code>hsl()</code>は、それぞれの色の値をカンマで指定していました。</p>

<p>それが空白区切りになりました。</p>

<p></p><pre class="crayon-plain-tag">color: rgb(128 90 0);</pre><p></p>

<p>また、整数値しか取れなかったのが小数も受け入れるようになりました。<code>hsl()</code>については、これまで数値でしか指定できなかった色相を、角度（<code>deg</code>など）を使って指定可能になりました。</p>

<p></p><pre class="crayon-plain-tag">color: rgb(111.4 128 0.0);
color: hsl(120deg 100% 30%);</pre><p></p>

<p>そして、これまで別の関数表記だった<code>rgba()</code>, <code>hsla()</code>の機能を統合し、<code>rgb()</code>, <code>hsl()</code>からアルファを指定できるようになりました。アルファはスラッシュで区切り指定します。また、これまでは数値のみの指定でしたが、パーセンテージでも指定可能となりました。</p>

<p></p><pre class="crayon-plain-tag">color: rgb(128 90 0 / 50%);</pre><p></p>

<p>構文が変わったと書きましたが、互換性という名目で古い構文も引き続き定義されるので、移行しなければならないというわけではありません。</p>

<h3>ES2016, ES2017のサポート <a id="es-in-spidermonkey" data-wpel-link="internal"></a></h3>

<p>JavaScriptでは、ES2016やES2017の以下の機能が実装されました。</p>

<ul>
<li>Exponentiation operator（<code>**</code>）</li>
<li>Destructuring rest parameters</li>
<li>Async Functions（<code>async</code>/<code>await</code>）</li>
<li>Trailing commas in functions</li>
</ul>

<p>ES2016以降の実装について、ここ数リリースでのまとめも公開されています。</p>

<ul>
<li><a href="https://blog.mozilla.org/javascript/2017/02/22/ecmascript-2016plus-in-firefox/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">ECMAScript 2016+ in Firefox</a></li>
</ul>

<p>現在はまだ提案であるAsync Iteratorなどの実装も進められているようです。楽しみですね。</p>

<h3>新しいResponsive Design Modeになった開発者ツール <a id="rdm-in-fx-devtools" data-wpel-link="internal"></a></h3>

<p>開発者ツールでは、Responsive Design Modeが強化され、モバイル環境のエミュレーションがより細かく行えるようになりました。</p>

<ul>
<li><a href="https://hacks.mozilla.org/2016/11/new-responsive-design-mode-rdm-lands-in-firefox-dev-tools/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">New Responsive Design Mode: RDM Lands in Firefox Dev Tools</a></li>
<li><a href="https://developer.mozilla.org/en-US/docs/Tools/Responsive_Design_Mode" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Responsive Design Mode &#8211; Firefox Developer Tools | MDN</a></li>
</ul>

<p>UIが変わったほか、回線環境のスロットリングと、デバイスピクセル比のカスタマイズ、デバイスのプリセットなどが追加されました。回線のスロットリングができるようになったので、回線速度のレンダリングへの影響を検証しやすくなりました。</p>

<div id="attachment_22839" style="width: 650px" class="wp-caption aligncenter"><img src="/wp-content/uploads/2017/04/Screen-Shot-2017-04-11-at-01.15.51-640x395.png" alt="スクリーンショット：Firefox 52の開発者ツールで登場した新しいResponsive Design Mode" width="640" height="395" class="size-large wp-image-22839" srcset="/wp-content/uploads/2017/04/Screen-Shot-2017-04-11-at-01.15.51.png 640w, /wp-content/uploads/2017/04/Screen-Shot-2017-04-11-at-01.15.51-300x185.png 300w, /wp-content/uploads/2017/04/Screen-Shot-2017-04-11-at-01.15.51-207x128.png 207w" sizes="(max-width: 640px) 100vw, 640px" /><p class="wp-caption-text">Nexus 5をエミュレートすると、画面サイズやデバイスピクセル比はもちろん、UA文字列も切り替わる</p></div>

<p>ほか、Responsive Design Modeではありませんが、アニメーションパネルではイージングの視覚化も行われるようになりました。</p>

<ul>
<li>
<a href="https://hacks.mozilla.org/2016/11/visualize-animations-easing-in-devtools/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Visualize animations easing in DevTools</a></li>
</ul>

<p>同等の機能はChrome DevToolsにもだいぶ前からあるのですが、Escを押して現れるドロワーを開き、そこからAnimationタブを開くなど、機能への動線がよくなかったりします。</p>

<h2>Chrome 57 <a id="chrome-57" data-wpel-link="internal"></a></h2>

<p>Chrome 57がリリースされました。</p>

<ul>
<li><a href="https://developers.google.com/web/updates/2017/03/nic57" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">New in Chrome 57</a></li>
</ul>

<p>フロントエンド周りの機能強化は、先述したCSS GridとWebAssemblyサポート以外に以下のようなものがあります。</p>

<h3>text-decorationのサブプロパティが実装 <a id="text-decoration-props" data-wpel-link="internal"></a></h3>

<p>CSS Text Level 3の<code>text-decoration</code>プロパティが実装され、下線の色やスタイルを変更可能になりました。</p>

<p>これまでは<code>border</code>を使ってなんとかするハックだったので、これはうれしいですね。</p>

<p></p><pre class="crayon-plain-tag">/* リンクの下線を青色の点線にする */
:any-link {
  text-decoration-line: underline;
  text-decoration-style: dotted;
  text-decoration-color: slateblue;
}
/* text-decorationがショートハンドになったため、以下のようにも書ける */
:any-link {
  text-decoration: underline dotted slateblue;
}</pre><p></p>

<p>Firefoxがだいぶ前から（接頭辞つきですが）サポートしており、続いて何年か前にSafariが、そして今回ようやくChromeでもサポートされました。</p>

<p>日本語では特に影響がありませんが、<code>text-decoration-skip</code>プロパティも一部が実装されました。<code>text-decoration-skip: ink</code>と指定すると、ディセンダなどのある文字（gやjなど）に下線が重なるのを防げます。</p>

<div id="attachment_22840" style="width: 460px" class="wp-caption aligncenter"><img src="/wp-content/uploads/2017/04/Screen-Shot-2017-04-11-at-19.34.17.png" alt="text-decoration-skip: inkの例。「HTML5 Experts.jp」という文字の「p」と「j」のディセンダを避けて下線が引かれている" width="450" height="137" class="size-full wp-image-22840" srcset="/wp-content/uploads/2017/04/Screen-Shot-2017-04-11-at-19.34.17.png 450w, /wp-content/uploads/2017/04/Screen-Shot-2017-04-11-at-19.34.17-300x91.png 300w, /wp-content/uploads/2017/04/Screen-Shot-2017-04-11-at-19.34.17-207x63.png 207w" sizes="(max-width: 450px) 100vw, 450px" /><p class="wp-caption-text">フォントサイズが大きいととくにうれしい</p></div>

<h3>caret-colorプロパティ <a id="caret-color" data-wpel-link="internal"></a></h3>

<p>CSS UIで定義されている<a href="https://drafts.csswg.org/css-ui/#caret-color" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><code>caret-color</code>プロパティ</a>がサポートされました。キャレットの色を変更できます。</p>

<p></p><pre class="crayon-plain-tag">input {
  caret-color: orange;
}</pre><p></p>

<p>ファンシーな機能ではありますが、入力欄の色が薄い色になったときにコントラスト比が保てないという問題への対応でもあります。</p>

<div id="attachment_22841" style="width: 346px" class="wp-caption aligncenter"><img src="/wp-content/uploads/2017/04/Screen-Shot-2017-04-11-at-19.41.19.png" alt="スクリーンショット：caret-colorにorangeを指定したinput要素" width="336" height="58" class="size-full wp-image-22841" srcset="/wp-content/uploads/2017/04/Screen-Shot-2017-04-11-at-19.41.19.png 336w, /wp-content/uploads/2017/04/Screen-Shot-2017-04-11-at-19.41.19-300x52.png 300w, /wp-content/uploads/2017/04/Screen-Shot-2017-04-11-at-19.41.19-207x36.png 207w" sizes="(max-width: 336px) 100vw, 336px" /><p class="wp-caption-text">細くて見えないかも。なおキャレットの太さなどを指定するプロパティはありません</p></div>

<h3>V8 5.7ではpadStart/padEndが実装、高速化も <a id="v8-improvements" data-wpel-link="internal"></a></h3>

<p>Chromeのバージョンにあわせ、V8も5.7になりました。</p>

<ul>
<li><a href="https://v8project.blogspot.jp/2017/02/v8-release-57.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">V8 Release 5.7</a></li>
</ul>

<p>新機能については、文字列の詰めを行う<a href="https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/padStart" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><code>padStart()</code></a>と<a href="https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/padEnd" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><code>padEnd()</code></a>の導入が主でしょうか。</p>

<p>以前、<code>padStart()</code>と同様のことをする<a href="https://cpplover.blogspot.jp/2016/03/npmkik.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">left-padというモジュールが消えてnpmが大混乱になった</a>ので、Nodeで使えると依存を減らせて嬉しいかもしれません。</p>

<p><code>padStart()</code>, <code>padEnd()</code>は、Firefox 48, Safari 10で実装済みで、EdgeでもCreators UpdateのEdge（EdgeHTML 15）でサポートされます。</p>

<p>他に取り上げられているのは、パフォーマンスの向上です。
正規表現周りのパフォーマンス向上については、独立したエントリが1月に公開されています。</p>

<ul>
<li><a href="https://v8project.blogspot.jp/2017/01/speeding-up-v8-regular-expressions.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Speeding up V8 Regular Expressions</a></li>
</ul>

<p>また、V8チームはここ数バージョンほどES2015の実行速度改善に取り組んでおり、そのエントリも公開されています。</p>

<ul>
<li><a href="https://v8project.blogspot.jp/2017/02/high-performance-es2015-and-beyond.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">High-performance ES2015 and beyond</a></li>
</ul>

<p>V8 5.7時点でES5と比べた実行速度差は、平均で1.86倍、中央値で1.3倍にまで減少したとのことです。</p>

<p>まだ差があるため「やっぱりBabelか…」という話になるかもしれません。</p>

<p>が、コンパイル後のES5のコードの容量が増大すれば、JavaScriptのパースなどにコストがかかり、Webアプリの最初のレンダリングまでの時間に影響します。コードの容量と実行速度、どちらも与える影響を鑑みた上で選択できるといいですね。</p>

<h2>Safari 10.1リリース <a id="safari-10_1" data-wpel-link="internal"></a></h2>

<p>macOS 10.12.4とiOS 10.3がリリースされ、Safari 10.1もリリースとなりました。Safari 10.1で新しく入った機能が、AppleのドキュメンテーションやWebKitのブログで紹介されています。</p>

<ul>
<li><a href="https://developer.apple.com/library/content/releasenotes/General/WhatsNewInSafari/Articles/Safari_10_1.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Safari 10.1</a></li>
<li><a href="https://webkit.org/blog/7477/new-web-features-in-safari-10-1/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">New Web Features in Safari 10.1</a></li>
</ul>

<p>いくつか紹介します。</p>

<h3>Custom Elements v1 <a id="safari-custom-elements-v1" data-wpel-link="internal"></a></h3>

<p>Safari 10のShadow DOM v1サポートに引き続き、Custom Elements v1もサポートされました。</p>

<ul>
<li><a href="https://webkit.org/blog/7027/introducing-custom-elements/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Introducing Custom Elements</a></li>
</ul>

<h3>HTMLのForm Validation <a id="safari-html-form-validation" data-wpel-link="internal"></a></h3>

<p>ついにHTMLのForm ValidationがSafariでもフルサポートされました。</p>

<ul>
<li><a href="https://webkit.org/blog/7099/html-interactive-form-validation/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">HTML Interactive Form Validation</a></li>
</ul>

<p>HTML5から<code>type=email</code>といった新しい<code>input</code>の型や、<code>required</code>属性、<code>pattern</code>属性など、フォームの入力内容を調査する属性が導入されました。</p>

<p>検証項目に違反する入力内容があると、フォーム送信前にブロックされるという仕様なのですが、Safariは長らく対応していませんでした。DOMから入力内容がvalidかをチェックはできるのですが、UI上のサポートがなかったのがうれしくありません。</p>

<p>Safari 10.1では、他のブラウザと並んでフォーム送信時のチェック（ブロック）を行うようになったほか、好きなタイミングでフォームの検証状態を通知できる<code>reportValidity()</code>メソッドも一緒にサポートしました。こちらはBlinkのみで長らくサポートされていたもので、最近になりFirefoxもサポートしたものです。</p>

<h3>広色域の色指定 <a id="safari-css-wide-gamut-colors" data-wpel-link="internal"></a></h3>

<p>新しいデバイスにはDisplay P3という色域の広いディスプレイを導入しているAppleですが、その恩恵をWebコンテンツでも受けられるべく、sRGBを基準としているCSSの色域を拡張する提案を行い、その一部を実装しました。</p>

<ul>
<li><a href="https://webkit.org/blog/6682/improving-color-on-the-web/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Improving Color on the Web | WebKit</a></li>
</ul>

<p>実装されたのは、<a href="https://drafts.csswg.org/css-color/#color-function" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><code>color()</code>関数</a>とメディアクエリの<a href="https://drafts.csswg.org/mediaqueries-4/#color-gamut" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><code>color-gamut</code>媒体特性</a>です。</p>

<p><code>color()</code>は、RGB各色の度合いを色域を含め指定できる新しい関数です。</p>

<p></p><pre class="crayon-plain-tag">color(display-p3 0 1.0 0)</pre><p></p>

<p>このように指定すると、P3ディスプレイでの緑100%となり、sRGBでは表現できない、より濃い緑を発色できます。</p>
]]></content:encoded>
		
		<series:name><![CDATA[WEB標準化動向]]></series:name>
	</item>
		<item>
		<title>Firefox 51・Chrome 56リリース、Safari 10.1発表、Windows 10 Creator&#8217;s UpdateのEdge、WebKitほか──2017年1月のブラウザ関連ニュース</title>
		<link>/myakura/22272/</link>
		<pubDate>Tue, 07 Feb 2017 03:04:00 +0000</pubDate>
		<dc:creator><![CDATA[矢倉 眞隆]]></dc:creator>
				<category><![CDATA[最新動向]]></category>
		<category><![CDATA[Chrome]]></category>
		<category><![CDATA[Edge]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Safari]]></category>
		<category><![CDATA[WebKit]]></category>
		<category><![CDATA[WebRTC]]></category>
		<category><![CDATA[ブラウザ]]></category>

		<guid isPermaLink="false">/?p=22272</guid>
		<description><![CDATA[連載： WEB標準化動向 (21)2017年1月は新年早々いろいろ動きがありました。Firefox 51とChrome 56のリリース、Safari 10.1発表、Windows 10 Creator’s Updateの...]]></description>
				<content:encoded><![CDATA[<div class="seriesmeta">連載： <a href="https://html5experts.jp/series/webstandards-news/" class="series-156" title="WEB標準化動向" data-wpel-link="internal">WEB標準化動向</a> (21)</div><p>2017年1月は新年早々いろいろ動きがありました。Firefox 51とChrome 56のリリース、Safari 10.1発表、Windows 10 Creator’s UpdateのEdge、WebKitにWebRTCとCredential Management API、Facebookとブラウザベンダー協力の話など、注目ニュースが満載です！</p>

<h2>Firefox 51リリース <span id="firefox51"></span></h2>

<p>1月24日に、Firefox 51がリリースされました。</p>

<ul>
<li><a href="https://blog.mozilla.org/blog/2017/01/24/gets-better-video-gaming-non-secure-web-warning/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Firefox Gets Better Video Gaming and Warns of Non-Secure Websites | The Mozilla Blog</a></li>
<li><a href="https://www.mozilla.jp/firefox/51.0/releasenotes/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Firefox 51.0 リリースノート</a></li>
</ul>

<p><a href="https://hacks.mozilla.org/2017/01/webgl-2-lands-in-firefox/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">WebGL 2のサポート</a>や、<a href="https://blog.mozilla.org/security/2017/01/20/communicating-the-dangers-of-non-secure-http/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">非HTTPSなページ上のパスワードフォーム入力についてのUI改善</a>が目玉ですが、すでに知っているところだと思うので、地味なところをとりあげます。</p>

<ul>
<li><a href="https://developer.mozilla.org/ja/Firefox/Releases/51" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Firefox 51 for developers &#8211; Mozilla | MDN</a></li>
</ul>

<p><a href="https://drafts.csswg.org/css-pseudo/#placeholder-pseudo" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><code>::placeholder</code> 疑似要素</a>と <a href="https://drafts.csswg.org/selectors/#placeholder" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><code>:placeholder-shown</code> 擬似クラス</a>が実装されました。<code>input</code> 要素や<code>textarea</code> 要素の <code>placeholder</code> 属性で指定するプレースホルダ周りのスタイルを調整するためのものです。前者はプレースホルダのテキストを、後者はプレースホルダが表示されているときの要素（<code>input</code> など）を表します。</p>

<p>SVGでは、<a href="https://www.w3.org/TR/2016/CR-SVG2-20160915/linking.html#linkRefAttrs" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><code>xlink</code> 接頭辞なしの <code>href</code> 属性</a>がサポートされました。これまでSVG内で外部リソースを読み込んだりSVG内の要素を参照する際は、XLinkを使っていました。SVGがXMLのフォーマットというところに由来するのですが、名前空間の扱いの難やHTMLとの親和性などをふまえ、SVG 2.0で名前空間なしの属性が導入されました。</p>

<p>この名前空間なしの <code>href</code> 属性ですが、Internet ExplorerがSVGを初実装したIE9から使えます。SVGを実装するにあたって、検討段階だったSVG 2.0で取り入れたい機能の先行実装をさせたという話を以前SVG WGの人に聞いたことがあります。</p>

<p>SVGまわりでは、<code>tabindex</code> 属性や <code>data-</code> 属性に対応しました。使えなかったのに驚く方もいるかもしれませんが、これらはHTMLのグローバル属性だったので、SVGの要素では使えず、<code>dataset</code> プロパティなどのアクセサリーもなかったのでした。これらもSVG 2.0で導入されたものです。</p>

<h2>Chrome 56リリース <span id="chrome56"></span></h2>

<p>1月25日に、Chrome 56がリリースされました。</p>

<ul>
<li><a href="https://developers.google.com/web/updates/2017/01/nic56" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">New In Chrome 56  |  Web  |  Google Developers</a></li>
</ul>

<p>パフォーマンスの観点から、<a href="https://developers.google.com/web/updates/2017/01/scrolling-intervention" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">タッチイベントハンドラの <code>passive</code> オプションがデフォルトで <code>true</code> に</a>なりました。Android版Chromeでは多くの場合、スクロールがスムーズになるとのことです。</p>

<p>CSSでは、<code>position: sticky</code> が復活しました。むかーしむかし実装されていたのですが、パフォーマンスの観点から削除されていたのでした。<code>scroll</code> イベントを監視しなくてもよくなるので、パフォーマンス向上が期待できる機能です。</p>

<p>Web PaymentsのPayment Request APIに追加された　<a href="https://w3c.github.io/browser-payment-api/#canmakepayment-method" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><code>canMakePayment()</code>　メソッド</a>がサポートされました。このメソッド、昨年AppleがWebでのApple Payを発表した祭、<a href="https://lists.w3.org/Archives/Public/public-payments-wg/2016Jun/0013.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Web Paymentsにないものとして上げていたメソッド</a>のひとつです。Web PaymentsのアクティビティにもAppleが関わり、APIの差異を埋めているようなので、今後に期待ですね。</p>

<p>他にも、<a href="https://www.w3.org/TR/css3-background/#the-border-image-repeat" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><code>border-image-repeat: space</code></a>がサポートされています。これでようやく実装がそろった感じですね。</p>

<h2>Safari 10.1発表 <span id="safari101-announce"></span></h2>

<p>macOS Sierra 10.12.4のベータ版が開発者向けに公開され、Safariが10.1にアップデートすることがわかりました。昨年春にリリースされたSafari 9.1のように、WebKitがアップグレードされ、新しい機能が導入されます。</p>

<ul>
<li><a href="https://developer.apple.com/library/prerelease/content/releasenotes/General/WhatsNewInSafari/Articles/Safari_10_1.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Safari 10.1</a></li>
</ul>

<p>APIの目玉はCustom Elementsでしょうか。Safari 10でもShadow DOMがサポートされたので、Web Componentsがまたさらに進みます。<br />
ほかにも、Fetch APIやIndexed DB API　2.0, Gamepad APIがサポートされます。Gamepad APIはすこし意外ですね…ブラウザでゲームパッドを使うようなゲームを提供する顧客がいるのでしょうか？</p>

<p>JavaScriptでは、ES2017仕様のAsync Functionsや <code>SharedArrayBuffer</code> に対応します。</p>

<p>HTMLでは、HTML 5のフォームバリデーション機能がついに実装されました。これまでもDOM上では検証していたのですが、invalidな際にフォームの送信をブロックするという挙動を実装していなかったのでした。</p>

<ul>
<li><a href="https://webkit.org/blog/7099/html-interactive-form-validation/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">HTML Interactive Form Validation | WebKit</a></li>
</ul>

<p>CSSではGrid Layoutが有効になります。リリース時期を春とすると、FirefoxやChromeと同時期になります。いっきに使いどころが増えそうです。</p>

<h2>Windows 10 Creator&#8217;s UpdateのEdge <span id="edge-jan2017"></span></h2>

<p>Microsoftのブログが活発に更新され、Windows 10 Creator&#8217;s Updateで提供される各種機能の紹介がされています。<a href="https://html5experts.jp/myakura/21934/" data-wpel-link="internal">先月</a>から引き続きいくつか取り上げます。</p>

<ul>
<li><a href="https://blogs.windows.com/windowsexperience/2017/01/31/microsoft-edge-helps-organize-web/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Microsoft Edge helps you organize your web &#8211; Windows Experience BlogWindows Experience Blog</a></li>
</ul>

<p>このエントリでは、タブのサムネイルや一時退避といったブラウザのUIの機能（Operaみたいですね）や、EPUB、Payment Requset APIのサポートなど、EdgeHTML 15で目玉になる機能をまとめています。</p>

<ul>
<li><a href="https://blogs.windows.com/msedgedev/2017/01/31/introducing-webrtc-microsoft-edge/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Introducing WebRTC 1.0 and interoperable real-time communications in Microsoft Edge &#8211; Microsoft Edge Dev Blog</a></li>
</ul>

<p>WebRTC 1.0は互換性のため実装を始めたもので、あくまでORTCを推奨していくという立場のようです。コーデックもVP8をサポートしましたが、ソフトウェアでコードのため電力消費やCPUの使用はH.264よりも高いとのこと。</p>

<p>他にも、<a href="https://blogs.windows.com/msedgedev/2017/01/10/edge-csp-2/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Content Security Policy Level 2のサポート</a>、<a href="https://blogs.windows.com/windowsexperience/2017/01/27/announcing-windows-10-insider-preview-build-15019-pc/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">フルカラー絵文字のサポート</a>もあるようです。</p>

<h2>WebKitにWebRTCとCredential Management API <span id="webkit-webrtc-credmgmt"></span></h2>

<p>Safari 10.1もうれしいですが、次期メジャーバージョンでも嬉しい機能が入りそうです。</p>

<p>ひとつは、WebRTCです。1月19日に、Appleのエンジニアによって、WebKitにWebRTCのライブラリがチェックインされました。</p>

<ul>
<li><a href="https://trac.webkit.org/changeset/210942" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Changeset 210942 – WebKit — Source/ThirdParty/libwebrtc: [WebRTC] Upload libwebrtc code base ​</a></li>
</ul>

<p>WebRTCについては、<code>getUserMedia()</code> の実装が進んでいましたが、通信周りのAPIは特に進んでいませんでした。EdgeもEdgeHTMLでWebRTC (1.0)を実装しますが、ようやくといったところでしょうか。</p>

<p>コミットログを読むと、Chromeのソースコードをインポートして利用しており、Chromeとの互換性がなかなか期待できそうです。</p>

<p>もうひとつは、Credential Management APIです。1月24日に、AppleのエンジニアがWebKitにCredential Management APIを実装予定という旨のメールをメーリングリストに投稿しています。</p>

<ul>
<li><a href="https://lists.webkit.org/pipermail/webkit-dev/2017-January/028684.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">[webkit-dev] Implement Credential Management Level 1</a></li>
</ul>

<p>Credential Management APIはパスワードやソーシャルログインなど、ユーザーの認証情報を抽象化して扱うAPIで、ログイン周りの煩雑さを解消できます。現在はChromeでのみ使えますが、Safariでも使えるようになるとモバイルでのログイン周りがとても便利になりそうです。</p>

<p>次期iPhoneで顔認証が導入されるといった噂を目にしていまし、信憑性が高まった気もします。</p>

<h2>Facebookとブラウザベンダーの協力 <span id="facebook-browsers-caches"></span></h2>

<p>Facebookの開発者ブログに、ブラウザベンダーと協力してFacebookへのリクエストを省力化したという話が掲載されています。あわせて、Chrome、Mozillaの開発者ブログでも紹介されています。</p>

<ul>
<li><a href="https://code.facebook.com/posts/557147474482256" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">This browser tweak saved 60% of requests to Facebook | Engineering Blog | Facebook Code</a></li>
<li><a href="https://blog.chromium.org/2017/01/reload-reloaded-faster-and-leaner-page_26.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Chromium Blog: Reload, reloaded: faster and leaner page reloads</a></li>
<li><a href="https://hacks.mozilla.org/2017/01/using-immutable-caching-to-speed-up-the-web/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Using Immutable Caching To Speed Up The Web ★ Mozilla Hacks – the Web developer blog</a></li>
</ul>

<p>Facebookは各種アセットを、ハッシュ付きURL＋長大なキャッシュ有効時間というキャッシュ戦略で運用しています。キャッシュの有効時間が長ければ、ブラウザは再読込の際に同じリソースをダウンロードする確率が低くなるので、ネットワークにやさしいです。</p>

<p>しかし、これまでのHTTPキャッシュでは、ダウンロードは防げても、リクエスト自体は起こってしまっていました。パフォーマンスの観点からもうれしくありません。Facebookが自身のアクセスを解析したところ、全体の60％がそういったリクエストだったそうです。更に調べると、他のブラウザが13％〜22％だったのに対し、Chromeだけは63％ととても高い数値を示していたとのこと。</p>

<p>これを解消しようとFacebookのエンジニアがChromeチームに働きかけ、挙動を変更。結果63％だったものが24％まで減少したとのこと。</p>

<p>Firefoxでは、Chromeと同様の挙動変更を行わない代わりに、<code>Cache-Control: immutable</code> という新しいヘッダの値を実装しました。このヘッダについては、Jxckさんが自身のブログにまとめているのでそちらをご覧ください。</p>

<ul>
<li><a href="https://blog.jxck.io/entries/2016-07-12/cache-control-immutable.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Cache-Control の Immutable 拡張によるリロード時のキャッシュ最適化 | blog.jxck.io</a></li>
</ul>
]]></content:encoded>
		
		<series:name><![CDATA[WEB標準化動向]]></series:name>
	</item>
		<item>
		<title>Chrome 55リリース、Windows 10 Creators Updateほか──2016年12月のブラウザ関連ニュース</title>
		<link>/myakura/21934/</link>
		<pubDate>Tue, 10 Jan 2017 02:08:35 +0000</pubDate>
		<dc:creator><![CDATA[矢倉 眞隆]]></dc:creator>
				<category><![CDATA[最新動向]]></category>
		<category><![CDATA[Chrome]]></category>
		<category><![CDATA[Edge]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[ブラウザ]]></category>

		<guid isPermaLink="false">/?p=21934</guid>
		<description><![CDATA[連載： WEB標準化動向 (20)月に一度、前の月にリリースされたブラウザに導入された機能を取り上げるこのシリーズも、先ほど振り返ったところ一年ちょっと続いていたのに気づきました。 2017年も地味に更新していこうと思い...]]></description>
				<content:encoded><![CDATA[<div class="seriesmeta">連載： <a href="https://html5experts.jp/series/webstandards-news/" class="series-156" title="WEB標準化動向" data-wpel-link="internal">WEB標準化動向</a> (20)</div><p>月に一度、前の月にリリースされたブラウザに導入された機能を取り上げるこのシリーズも、先ほど振り返ったところ一年ちょっと続いていたのに気づきました。<br />
2017年も地味に更新していこうと思います。よろしくお願いいたします。</p>

<h2>Chrome 55リリース</h2>

<p>12月1日に、Chrome 55がリリースされました。新機能は、ベータ版が出た際に公開されたエントリにまとめられています。</p>

<ul>
<li><a href="https://developers-jp.googleblog.com/2016/11/chrome-55-beta-input-handling.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Google Developers Japan: Chrome 55 ベータ版: 入力ハンドリングの改善と async / await 関数</a></li>
</ul>

<p>ECMAScript 2017に導入されるAsync Functionsがサポートされました。導入された <code>async</code>, <code>await</code> というキーワードを使うと、Promiseが関わる非同期処理を同期処理に近いかたちで記述できます。</p>

<ul>
<li><a href="https://developers.google.com/web/fundamentals/getting-started/primers/async-functions?hl=ja" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Async functions &#8211; making promises friendly  |  Web  |  Google Developers</a></li>
</ul>

<p>他のブラウザでもすでに開発版で実装されており、それぞれの開発者向けバージョンでテストできます。Promiseを多用するService Worker内のコードなどは、トランスパイラなしでも利用できますね。</p>

<p>Pointer Eventsも実装されました。Pointer EventsはMicrosoftがW3Cに提出し標準化された、タッチやマウス、ペンなどの入力方式を「ポインタ」としてまとめ扱うイベントです。タッチ＋マウスなアプリを作る際に、別々のイベントモデル用のコードを書く手間が省けるのが利点です。</p>

<ul>
<li><a href="https://developers.google.com/web/updates/2016/10/pointer-events" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Pointing the Way Forward  |  Web  |  Google Developers</a></li>
</ul>

<p>ほか、<code>addEventListener()</code> のオプションに <code>once</code> が加わりました。<a href="https://html5experts.jp/myakura/21730/" data-wpel-link="internal">先月のFirefox 50リリースでも取り上げた</a>もので、一度だけ呼び出されるイベントリスナを設定できます。</p>

<h2>Windows 10 Creators UpdateのEdge</h2>

<p>ことし2017年リリースの<a href="https://www.microsoft.com/en-us/windows/upcoming-features" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Windows 10 Creators Update</a>では、Edgeももちろん更新予定です。あたらしくEdgeHTMLに搭載される機能が、Edgeのブログで少しずつ紹介されてきました。</p>

<ul>
<li><a href="https://blogs.msdn.microsoft.com/msedgedev_japan/2016/12/21/introducing-brotli-compression-in-microsoft-edge/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Microsoft Edgeでの Brotli 圧縮の導入 | Microsoft Edge Japan</a></li>
<li><a href="https://blogs.msdn.microsoft.com/msedgedev_japan/2016/12/20/simpler-web-payments-introducing-the-payment-request-api/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">よりシンプルな Web の決済方法 : Payment Request API の紹介 | Microsoft Edge Japan</a></li>
</ul>

<p>BrotliはWOFF 2.0で使われている圧縮アルゴリズムですが、HTTPでも利用できます。すでにFirefox, Chromeですでにサポートされていますが、ここにEdgeが加わります。</p>

<p>Payment Request APIは、Chrome 53から実装され始めたAPIで、決済情報入力の煩わしさを解消するAPIです。</p>

<ul>
<li><a href="https://developers.google.com/web/updates/2016/07/payment-request?hl=ja" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Payment Request API で簡単・高速な決済を実現する  |  Web  |  Google Developers</a></li>
</ul>

<p>Chromeでは今のところAndroid版でしか有効になっていませんが、Edgeではモバイル・デスクトップ両方で有効になるようです。Firefoxも<a href="https://groups.google.com/forum/#!topic/mozilla.dev.platform/n-2o58jcTK8" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">実装を表明</a>しています。</p>

<p>ほか、EdgeHTML 15で導入されるかはわかりませんが、<a href="https://developer.microsoft.com/en-us/microsoft-edge/platform/status/?q=edge%3A%27In+Development%27+edge%3A%27Preview+Release%27" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Platform Statusページで開発中・プレビュー版にある機能の一覧</a>を見ると、Service Workerやその関連API、CSS Custom Properties (Variables)などが並んでいます。これらのアナウンスもあるとうれしいですね。</p>

<h2>2017年はFlashの実行に許可が求められる</h2>

<p>2017年は、多くのベンダーがFlashの自動実行をやめることを宣言しています。12月は、Chrome, EdgeでのFlashの扱いについて、現状や今後の計画が改めて発表されました。</p>

<ul>
<li><a href="https://developers-jp.googleblog.com/2016/12/roll-out-plan-for-html5-by-default.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Google Developers Japan: HTML5 デフォルト化のリリース計画について</a></li>
<li><a href="https://blogs.msdn.microsoft.com/msedgedev_japan/2016/12/19/click-to-run%e3%81%a7%e3%81%ae-flash-%e3%81%ae%e3%83%a6%e3%83%bc%e3%82%b6%e3%83%bc%e3%82%b3%e3%83%b3%e3%83%88%e3%83%ad%e3%83%bc%e3%83%ab%e3%81%ae%e6%8b%a1%e5%bc%b5/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Click-to-Runでの Flash のユーザーコントロールの拡張 | Microsoft Edge Japan</a></li>
</ul>

<p>ChromeはChrome 56より、ページのFlashの実行には基本的に許可を求めるようになります。ただし、それまでアクセスしたページなど、関わり度合いの高いページについては、許可を求められる時期が遅れます。2017年10月からは、新規アクセスしたページのFlashコンテンツについては、許可を求められます。</p>

<p>Edgeについても、Creators Update以降は基本的に許可が必要になります。ただしChromeと似たようなかたちで、初期はFlashのリソース消費度合いを元に例外を設けるようです。あるていど後に、こちらも許可を求めるようになるそうです。</p>

<p>Firefoxも、2017年から許可を設けるとすでに発表しています。</p>

<ul>
<li><a href="https://www.mozilla.jp/blog/entry/10554/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Firefox 内での Adobe Flash 使用量を削減します | Mozilla Japan ブログ</a></li>
</ul>

<p>Safariについては、けっこう前のバージョンからFlash Playerが搭載されていません。なのでまずインストールが必要というところですでにある程度ブロックされていると思うのですが、Safari 10からはインストールされていたとしても実行にはユーザーの許可が必要になりました。</p>

<ul>
<li><a href="https://webkit.org/blog/6589/next-steps-for-legacy-plug-ins/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Next Steps for Legacy Plug-ins | WebKit</a></li>
</ul>

<p>Flashを使うコンテンツも少なくなってきましたが、デフォルトでブロックされるようになると、新規に作るサービスではさらに採用が減りそうですね。</p>
]]></content:encoded>
		
		<series:name><![CDATA[WEB標準化動向]]></series:name>
	</item>
		<item>
		<title>Chrome Dev Summit開催、Firefox 50リリースの最新情報を解説──2016年11月のブラウザ関連ニュース</title>
		<link>/myakura/21730/</link>
		<pubDate>Wed, 28 Dec 2016 00:32:53 +0000</pubDate>
		<dc:creator><![CDATA[矢倉 眞隆]]></dc:creator>
				<category><![CDATA[最新動向]]></category>
		<category><![CDATA[Chrome]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[ブラウザ]]></category>

		<guid isPermaLink="false">/?p=21730</guid>
		<description><![CDATA[連載： WEB標準化動向 (19)2016年11月のブラウザ関連ニュースは、サンフランシスコで開催されたChrome Dev Summitと11月15日にリリースされたFirefox 50についてお届けします。 Chro...]]></description>
				<content:encoded><![CDATA[<div class="seriesmeta">連載： <a href="https://html5experts.jp/series/webstandards-news/" class="series-156" title="WEB標準化動向" data-wpel-link="internal">WEB標準化動向</a> (19)</div><p>2016年11月のブラウザ関連ニュースは、サンフランシスコで開催されたChrome Dev Summitと11月15日にリリースされたFirefox 50についてお届けします。</p>

<h2>Chrome Dev Summit開催</h2>

<p>11月はChromeのリリースがありませんでしたが、サンフランシスコにて<a href="https://developer.chrome.com/devsummit/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Chrome Dev Summit</a>が開催されました。</p>

<ul>
<li><a href="https://blog.chromium.org/2016/11/chrome-dev-summit-2016-mobile-web-moves.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Chromium Blog: Chrome Dev Summit 2016: The Mobile Web Moves Forward</a></li>
</ul>

<p>名前にChromeと冠していますが、トピックはProgressive Web Appsです。Progressive Web Appsが認識され広がりつつある今年は、LyftやCNETのPWA開発の裏側といったケーススタディや、フレームワークを使った際にどうパフォーマンスを見たり改善したりするかといった実践的な話が多かったです。</p>

<p>ビデオも30分くらいのセッションがほとんど多いので、さくさくと観られます。</p>

<ul>
<li><a href="https://www.youtube.com/playlist?list=PLNYkxOF6rcIBTs2KPy1E6tIYaWoFcG3uj" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Chrome Dev Summit 2016 &#8211; YouTube</a></li>
</ul>

<h2>Firefox 50リリース</h2>

<p>11月15日に、Firefox 50がリリースされました。</p>

<ul>
<li><a href="https://www.mozilla.jp/firefox/50.0/releasenotes/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Firefox 50.0 リリースノート</a></li>
<li><a href="https://developer.mozilla.org/ja/Firefox/Releases/50" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Firefox 50 for developers</a></li>
</ul>

<p>Firefoxもついに50になりました。</p>

<p>訪問済・未訪問を問わないリンクにマッチする <a href="https://drafts.csswg.org/selectors-4/#the-any-link-pseudo" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><code>:any-link</code> 擬似クラス</a>がサポートされました。<code>a</code> と何が違うのか疑問に思う方がいるかもしれませんが、<code>:link</code>, <code>:visited</code>, <code>:any-link</code> は <code>area</code> や <code>link</code> といった要素型にもマッチしますし、<code>href</code> 属性の有無もふまえます。ちゃんと「リンクされているか」を見るってことですね。</p>

<p>DOMでは、<code>NodeList</code> インターフェースがiterableになり、<code>querySelectorAll()</code> の結果に直接 <code>forEach()</code> などをくっつけられるようになりました。他のブラウザも<a href="https://html5experts.jp/myakura/19326/" data-wpel-link="internal">Chrome 51</a>、Safari 10も対応済みですし、だんだんと使える環境が広がっていますね。</p>

<p>最近のDOM仕様では、<code>addEventListener()</code> の第三引数に <a href="https://dom.spec.whatwg.org/#dictdef-addeventlisteneroptions" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><code>AddEventListenerOptions</code></a> というディクショナリを取れるようになっているのですが、そのうちの一つ <code>once</code> がサポートされました。jQueryの <code>one()</code> のように、一度だけ呼び出されるイベントリスナを設定できます。</p>

<p>セキュリティ関連では、<code>X-Content-Type-Options: nosniff</code> がサポートされました。ブラウザはサーバから来る <code>Content-Type</code> ヘッダを見てコンテンツの種類を判断しますが、状況や特定のファイルによってはコンテンツの中身を少し見てからその種類を推定したりします。これを「Content sniffing」や「MIME sniffing」といいます。<br />
便利なときもあるのでしょうが、セキュリティ上の懸念があるため、それを無効にするための手立てとして <code>X-Content-Type-Options: nosniff</code> というヘッダがIE8に導入され、Opera, Chromeも追従し、最終的に<a href="https://fetch.spec.whatwg.org/#x-content-type-options-header" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Fetch
仕様に取り込まれました</a>。</p>

<p>このほか、<a href="https://developer.mozilla.org/ja/docs/Web/CSS/border-image-repeat" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><code>border-image-repeat: space</code></a> や、Chromeが独自に実装していた<a href="https://developer.mozilla.org/en-US/docs/Web/API/File_and_Directory_Entries_API/Firefox_support" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">FileSystem APIの一部のサポート</a>、<code>dotted</code> もしくは <code>dashed</code> を設定したボックスに <code>border-radius</code> をかけたときの見た目の改善などが行われています。</p>
]]></content:encoded>
		
		<series:name><![CDATA[WEB標準化動向]]></series:name>
	</item>
		<item>
		<title>WebAssembly、CPU Throttling、Custom Elementsの最新情報を解説──2016年10月のブラウザ関連ニュース</title>
		<link>/myakura/21567/</link>
		<pubDate>Fri, 04 Nov 2016 00:00:17 +0000</pubDate>
		<dc:creator><![CDATA[矢倉 眞隆]]></dc:creator>
				<category><![CDATA[最新動向]]></category>
		<category><![CDATA[Custom Elements]]></category>
		<category><![CDATA[DevTools]]></category>
		<category><![CDATA[Google Chrome]]></category>
		<category><![CDATA[WebAssembly]]></category>
		<category><![CDATA[ブラウザ]]></category>

		<guid isPermaLink="false">/?p=21567</guid>
		<description><![CDATA[連載： WEB標準化動向 (18)2016年10月のブラウザ関連ニュースは、10月12日にリリースされたChrome 54の追加機能からCustom Elements v1、DevToolsのCPU Throttling...]]></description>
				<content:encoded><![CDATA[<div class="seriesmeta">連載： <a href="https://html5experts.jp/series/webstandards-news/" class="series-156" title="WEB標準化動向" data-wpel-link="internal">WEB標準化動向</a> (18)</div><p>2016年10月のブラウザ関連ニュースは、10月12日にリリースされたChrome 54の追加機能からCustom Elements v1、DevToolsのCPU Throttling、WebAssemblyについて紹介します。</p>

<h2>Chrome 54リリース</h2>

<p>10月12日に、Chrome 54がリリースされました。追加された機能のまとめは、ベータ版時点で公開されたポストが詳しいです。</p>

<ul>
<li><a href="https://googledevjp.blogspot.jp/2016/10/chrome-54-beta-custom-elements-v1.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Google Developers Japan: Chrome 54 ベータ版：Custom Elements V1、BroadcastChannel、メディア プラットフォームの強化</a></li>
</ul>

<p>以下、気になったものを取り上げます。</p>

<h3>Custom Elements v1</h3>

<p>54で実装された大きな機能としては、Custom Elements v1でしょう。<a href="https://html5experts.jp/myakura/21074/" data-wpel-link="internal">Shadow DOM v1のとき</a>と同じように、Custom Elements仕様もベンダー間の合意をとりつけ前進した新しい仕様を「v1」と呼んでいます。現在Safariも実装を進めており、近くリリースされる新しいTechnology Previewで有効になるはずです。</p>

<p>Custom Elements v1での大きな変更点は、ES 2015のクラス構文を使いカスタム要素を定義するようになったことです。たとえば、<code>hx-element</code> というカスタム要素を定義する際には以下のようなコードで要素のコンストラクタを定義し、そのコンストラクタをもとに <code>hx-element</code> という要素名に登録します。</p>

<p></p><pre class="crayon-plain-tag">// カスタム要素のコンストラクタ
class HXElementCtor extends HTMLElement {
  // 要素が作成された段階に実行されるコールバック
  constructor () {
    super()
    // ...
  }
  // 要素がドキュメントに突っ込まれたとき
  connectedCallback () {
    // ...
  }
  // ...
}
// hx-element という名前でカスタム要素を登録
window.customElements.define('hx-element', HXElementCtor)</pre><p></p>

<p>カスタム要素のコンストラクタには、「要素が作成された」「要素がドキュメントに追加された」「属性が変更された」などの状態に応じてコードを実行するためのライフサイクルコールバックと呼ばれる関数を記述します。くわしくはチュートリアルがWeb Fundamentalsで公開されているので、そちらをどうぞ。</p>

<ul>
<li><a href="https://developers.google.com/web/fundamentals/getting-started/primers/customelements" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Custom Elements v1: Reusable Web Components</a></li>
</ul>

<h3>DevToolsのCPU Throttling</h3>

<p>DevToolsでは、CPU Throttlingがサポートされました。CPUの速度を制限し、スマートフォンなどのパワフルでない環境での処理を模した状態でタイムラインを取得できます。</p>

<p>HTML5 Experts.jpのトップページで、タイムラインを録って比較してみました。</p>

<div id="attachment_21642" style="width: 578px" class="wp-caption aligncenter"><img src="/wp-content/uploads/2016/10/Screen-Shot-2016-10-31-at-17.11.30-copy.png" width="568" height="94" class="size-full wp-image-21642" srcset="/wp-content/uploads/2016/10/Screen-Shot-2016-10-31-at-17.11.30-copy.png 568w, /wp-content/uploads/2016/10/Screen-Shot-2016-10-31-at-17.11.30-copy-300x50.png 300w, /wp-content/uploads/2016/10/Screen-Shot-2016-10-31-at-17.11.30-copy-207x34.png 207w" sizes="(max-width: 568px) 100vw, 568px" /><p class="wp-caption-text">CPU Throttlingなしのオーバービュー</p></div>

<p>通常状態では、レイアウト関連処理（紫色）が3回、JavaScript関連処理（黄色）が3回、描画関連処理が1回、チャートの上端に達しています。この状態でもCPUをけっこう専有しているようです。</p>

<div id="attachment_21643" style="width: 580px" class="wp-caption aligncenter"><img src="/wp-content/uploads/2016/10/Screen-Shot-2016-10-31-at-17.11.33-copy.png" width="570" height="94" class="size-full wp-image-21643" srcset="/wp-content/uploads/2016/10/Screen-Shot-2016-10-31-at-17.11.33-copy.png 570w, /wp-content/uploads/2016/10/Screen-Shot-2016-10-31-at-17.11.33-copy-300x49.png 300w, /wp-content/uploads/2016/10/Screen-Shot-2016-10-31-at-17.11.33-copy-207x34.png 207w" sizes="(max-width: 570px) 100vw, 570px" /><p class="wp-caption-text">“5x slowdown”を指定し制限し読み込んだもの</p></div>

<p>CPU Throttolingで5分の1に制限したものではまず、ページ読み込みに倍近くの時間がかかっています。また、レイアウト関連処理やJavaScriptの処理時間が大幅に伸びており、別れていた山がくっついてしまっています。</p>

<p>と、このような感じでCPUの性能がレンダリングに及ぼす影響を確かめられます。気をつけないといけないのが、“2x slowdown”といったように使っているコンピューターのCPUをもとにした制限になってることです。ですので特定のプロセッサをエミュレートできるわけではありません。Network Throttlingよりも「あくまで目安」度合いが高そうです。</p>

<h2>WebAssemblyがさらに進捗、ブラウザプレビュー段階に</h2>

<p>10月31日に、<a href="http://webassembly.org/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">WebAssembly</a>がブラウザプレビュー段階に入ったと、Mozilla, Google, Microsoftが発表しました。</p>

<ul>
<li><a href="https://hacks.mozilla.org/2016/10/webassembly-browser-preview/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">WebAssembly Browser Preview ★ Mozilla Hacks – the Web developer blog</a></li>
<li><a href="http://v8project.blogspot.jp/2016/10/webassembly-browser-preview.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">V8 JavaScript Engine: WebAssembly Browser Preview</a></li>
<li><a href="https://blogs.windows.com/msedgedev/2016/10/31/webassembly-browser-preview/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">A peek into the WebAssembly Browser Preview | Microsoft Edge Dev Blog</a></li>
</ul>

<p>WebAssemblyは<a href="https://html5experts.jp/myakura/18768/" data-wpel-link="internal">3月に各ブラウザで試験実装が入った</a>のですが、今回はWebAssemblyのバイナリフォーマットがリリース候補段階になったこと、それにSpiderMonkeyとV8のナイトリービルド、Chakraの開発版が互換性のある形で対応した旨が発表されました。バイナリフォーマットがほぼ固まったため、このブラウザプレビュー段階では幅広いフィードバックを集めたいとのことです。</p>

<p>今後のWebAssemblyですが、<a href="http://webassembly.org/roadmap/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">公開されているロードマップ</a>によると、解決に時間のかかる問題が見つからなければ2017年第1四半期にはバイナリフォーマットの初期バージョンが策定完了するとのこと。そしてその時点で、ブラウザの実装をデフォルトで有効にするようです。Firefoxは52での有効化を試みているそうです。</p>

<p>なお、発表には加わっていないものの、WebKitでも<a href="https://bugs.webkit.org/show_bug.cgi?id=159775" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">JavaScriptCoreに実装中</a>です。主要なエンジンすべてで実装されるので、ゲームや計算コストの大きなアプリケーションをWebに持ち込むのがさらに容易になりそうですね。</p>
]]></content:encoded>
		
		<series:name><![CDATA[WEB標準化動向]]></series:name>
	</item>
		<item>
		<title>details要素がサポート追加となったFirefox 49リリース、Safari 10リリースやベンチマークのMotionMarkなど──2016年9月のブラウザ関連ニュース</title>
		<link>/myakura/21141/</link>
		<pubDate>Thu, 13 Oct 2016 23:58:18 +0000</pubDate>
		<dc:creator><![CDATA[矢倉 眞隆]]></dc:creator>
				<category><![CDATA[最新動向]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[MotionMark]]></category>
		<category><![CDATA[Safari]]></category>
		<category><![CDATA[WebKit]]></category>
		<category><![CDATA[details]]></category>
		<category><![CDATA[ブラウザ]]></category>

		<guid isPermaLink="false">/?p=21141</guid>
		<description><![CDATA[連載： WEB標準化動向 (17)2016年9月のブラウザ関連ニュースは、details要素がサポート追加となったFirefox 49や、Safari 10リリースとベンチマークのMotionMarkなどについて紹介しま...]]></description>
				<content:encoded><![CDATA[<div class="seriesmeta">連載： <a href="https://html5experts.jp/series/webstandards-news/" class="series-156" title="WEB標準化動向" data-wpel-link="internal">WEB標準化動向</a> (17)</div><p>2016年9月のブラウザ関連ニュースは、details要素がサポート追加となったFirefox 49や、Safari 10リリースとベンチマークのMotionMarkなどについて紹介します。</p>

<h2>Firefox 49リリース</h2>

<p>9月20日に、Firefox 49がリリースされました。</p>

<ul>
<li><a href="https://www.mozilla.jp/firefox/49.0/releasenotes/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Firefox 49.0 リリースノート</a></li>
</ul>

<p>今回はいつも以上にいろいろ追加されてる気がします。</p>

<p>HTML関連では、<a href="https://developer.mozilla.org/ja/docs/Web/HTML/Element/details" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><code>&lt;details&gt;</code> 要素</a>がサポートされました。トグルで表示・非表示を切り替えるウィジェットをJavaScriptなしに導入できます。</p>

<p>これ関連で面白いなと思ったのが、<a href="https://gist.github.com/ericclemmons/b146fe5da72ca1f706b2ef72a20ac39d" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">HTML5 &lt;details&gt; in GitHub</a> です。参考情報としてエラーログなどを張りつける際にログを <code>&lt;details&gt;</code> で囲むことで、ページが長くなるのを防ぎます。</p>

<p>Qiitaでも対応したとのことなので、コード一式をとりあえず書いておくとかそんなときに使えそうですね。</p>

<ul>
<li><a href="http://blog.qiita.com/post/151329031329/detailssummarysupport" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">details,summary要素に対応し、投稿内で指定箇所を折りたためるようになりました &#8211; Qiita Blog</a></li>
</ul>

<p>DOMまわりでは、<code>before()</code>, <code>after()</code>, <code>replaceWith()</code>, <code>append()</code>, <code>prepend()</code> メソッドがサポートされました。jQueryで見たことがあるメソッド名が多いですが、それらとほぼ同様で、要素の追加・置き換えを行います。なお要素を削除する <code>remove()</code> については、Firefox 23からサポートされています。</p>

<p>CSSでは、Level 4の機能がいくつかサポートされました。</p>

<p><code>#rrggbbaa</code> 式の色表記がサポートされました。こちらは先日Blinkでも有効にされかけたのですが、WebViewの誤った実装との互換性をとるため<a href="https://bugs.chromium.org/p/chromium/issues/detail?id=618518" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">無効にされてしまいました</a>。</p>

<p><a href="https://drafts.csswg.org/css-backgrounds-4/#valdef-background-clip-text" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><code>background-clip: text</code></a> がサポートされました。背景画像でテキストをくり抜く表現が実現できます。もともとWebKitの独自拡張でしたが、広く使われてしまったこともあり、Backgrounds &amp; BordersモジュールLevel 4で定義されました。</p>

<p><a href="https://developer.mozilla.org/ja/docs/Web/CSS/background-position-x" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><code>background-position-x</code>/<code>-y</code></a>もサポートされました。<code>background-position</code> は水平方向・垂直方向の位置両方を指定しなければいけませんが、これらを使うと個別の方向ごとに位置を指定できます。もともと古いIEやWebKitでサポートされていたもので、こちらもBackgrounds &amp; BordersモジュールLevel 4で定義されました。</p>

<p>背景画像系ではほかにも、Level 3の <a href="https://developer.mozilla.org/ja/docs/Web/CSS/background-repeat" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><code>background-repeat</code></a>　の <code>round</code> と <code>space</code>がサポートされました。他のブラウザでは結構前からサポートされていたので、追いついたかたちです。</p>

<h3><code>-webkit-</code> サポートも追加</h3>

<p>もともと独自拡張だった機能のサポートがこのバージョンで行われたのには理由があります。Firefox 49では、<code>-webkit-</code> 接頭辞つきのCSSプロパティやAPIの一部をエイリアスとしてサポートしたからです。これによって、主にモバイル向けWebサイト・アプリの互換性が向上します。</p>

<ul>
<li><a href="https://www.mozilla.jp/blog/entry/10559/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Webkit を念頭に作成されたサイトで起きるブラウザ互換性問題に対する Firefox の対応 | Mozilla Japan ブログ</a></li>
</ul>

<p><code>-webkit-</code> の部分的サポートは突然始まったことではなく、日本や中国などの特定サイトに限定し行われていました。それが方針転換し、すべてのサイトに適用されるようになりました。</p>

<ul>
<li><a href="http://myakura.hatenablog.com/entry/2015/04/24/211849" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">FirefoxのCSS Unprefixing Service &#8211; fragmentary</a></li>
<li><a href="http://www.otsukare.info/2016/01/04/webkit-resolved-fixed" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Webkit! RESOLVED FIXED &#8211; otsukare</a></li>
</ul>

<p>標準化された機能と接頭辞つき実装には、標準化の過程でプロパティ名や値の取り扱いなどに違いが生まれます。こうした違いをどう埋めるかを明文化すべく、<a href="https://compat.spec.whatwg.org/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Compatibility Standard</a>という仕様も作られています。ただ、すべての接頭辞つき機能がここで記されるわけではなく、<a href="https://dom.spec.whatwg.org/#dom-element-webkitmatchesselector" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><code>webkitMatchesSelector()</code></a> などは標準仕様に取り込まれるかたちで定義されています。</p>

<h2>Safari 10リリースとベンチマークのMotionMark</h2>

<p>9月13日のiOS 10と9月20日のmacOS 10.12 Sierraリリースにともない、Safari 10がリリースされました。Sierraだけでなく、El Capitanにも提供されています。</p>

<ul>
<li><a href="https://developer.apple.com/library/prerelease/content/releasenotes/General/WhatsNewInSafari/Articles/Safari_10_0.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Safari 10.0</a></li>
</ul>

<p>Safari 10の新機能については、<a href="https://html5experts.jp/myakura/19921/" data-wpel-link="internal">過去の記事</a>で取り上げているので、気になる方はそちらをご覧ください。</p>

<p>さて、9月21日に、WebKitからMotionMarkという、グラフィックス処理のパフォーマンスを計測するベンチマークが発表されました。</p>

<ul>
<li><a href="https://webkit.org/blog/6943/motionmark-a-new-graphics-benchmark/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">MotionMark: A New Graphics Benchmark | WebKit</a></li>
<li><a href="http://browserbench.org/MotionMark/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">MotionMark 1.0</a></li>
</ul>

<p>MotionMarkは、既存のグラフィクス関連ベンチマークが抱えていたいくつかの問題を解決するために用意したとのこと。計測対象がフレームレートではなく、フレームレートが閾値以下になったときのアニメーションの複雑さであることや、いろんなテストをいちシーンに詰め込まず、問題を切り分けやすくするといった工夫がされているようです。</p>

<div id="attachment_21230" style="width: 650px" class="wp-caption aligncenter"><img src="/wp-content/uploads/2016/10/Screen-Shot-2016-09-30-at-20.23.47-640x429.png" alt="Safari 10でMotionMarkを実行した結果。スコアは145.15（±5.12％）" width="640" height="429" class="size-large wp-image-21230" srcset="/wp-content/uploads/2016/10/Screen-Shot-2016-09-30-at-20.23.47.png 640w, /wp-content/uploads/2016/10/Screen-Shot-2016-09-30-at-20.23.47-300x201.png 300w, /wp-content/uploads/2016/10/Screen-Shot-2016-09-30-at-20.23.47-207x139.png 207w" sizes="(max-width: 640px) 100vw, 640px" /><p class="wp-caption-text"><br />この記事を書いているマシン（2011年のMacBook Air、11インチモデル）上のSafari 10で実行してみた</p></div>
]]></content:encoded>
		
		<series:name><![CDATA[WEB標準化動向]]></series:name>
	</item>
		<item>
		<title>Firefox 48の新機能、EdgeHTML 14を搭載したMicrosoft Edgeリリース──2016年8月のブラウザ関連ニュース</title>
		<link>/myakura/21074/</link>
		<pubDate>Fri, 23 Sep 2016 01:21:32 +0000</pubDate>
		<dc:creator><![CDATA[矢倉 眞隆]]></dc:creator>
				<category><![CDATA[最新動向]]></category>
		<category><![CDATA[Chrome]]></category>
		<category><![CDATA[Edge]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[ブラウザ]]></category>

		<guid isPermaLink="false">/?p=21074</guid>
		<description><![CDATA[連載： WEB標準化動向 (16)2016年8月のブラウザ関連ニュースは、8月2日にリリースされたFirefox 48、8月31日にリリースされたChrome 53について紹介します。 Firefox 48リリース 8月...]]></description>
				<content:encoded><![CDATA[<div class="seriesmeta">連載： <a href="https://html5experts.jp/series/webstandards-news/" class="series-156" title="WEB標準化動向" data-wpel-link="internal">WEB標準化動向</a> (16)</div><p>2016年8月のブラウザ関連ニュースは、8月2日にリリースされたFirefox 48、8月31日にリリースされたChrome 53について紹介します。</p>

<h2>Firefox 48リリース</h2>

<p>8月2日に、Firefox 48がリリースされました。マルチプロセスが状況に応じて有効化されたり、Chrome拡張API互換のWebExtensionsが安定版となったりしました。</p>

<p>Web関連の新機能ですが、Web Animations APIのひとつ <code>Element.animate()</code> がサポートされました。</p>

<ul>
<li><a href="https://hacks.mozilla.org/2016/08/animating-like-you-just-dont-care-with-element-animate/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Animating like you just don’t care with Element.animate</a></li>
</ul>

<p>とても雑に紹介するならば、jQueryの <code>animate()</code> メソッドの標準版です。とはいってもCSSアニメーションとおなじバックエンドを使うため、基本的にjQueryのアニメーションよりもスムーズ・低負荷なものになるはずです。</p>

<p>CSSでは <a href="https://developer.mozilla.org/ja/docs/Web/CSS/text-combine-upright" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><code>text-combine-upright: all</code></a> がサポートされ、縦中横ができるようになりました。縦中横は日本語の縦書きで、短い桁の数値を一文字分に収めたりするのによく使われています。</p>

<div id="attachment_21075" style="width: 370px" class="wp-caption aligncenter"><img src="/wp-content/uploads/2016/09/tcu-fx.png" alt="スクリーンショット：「平成28年」という縦書き文字列中の「28」を縦中横にした例" width="360" height="280" class="size-full wp-image-21075" srcset="/wp-content/uploads/2016/09/tcu-fx.png 360w, /wp-content/uploads/2016/09/tcu-fx-300x233.png 300w, /wp-content/uploads/2016/09/tcu-fx-207x161.png 207w" sizes="(max-width: 360px) 100vw, 360px" /><p class="wp-caption-text">通常は横に寝てしまう「28」を縦中横にしたので、ちょっと読みやすくなった</p></div>

<p>開発者ツールには、Firebug由来の機能が追加されました。ほかにも、CSSのルールを編集する際によく使われるプロパティ名が優先的にサジェストされるなど、細かなところの使い勝手が向上しています。</p>

<ul>
<li><a href="https://hacks.mozilla.org/2016/04/developer-edition-48-firebug-features-editable-storage-inspector-improvements-and-more/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Developer Edition 48 – Firebug features, editable storage, inspector improvements and more…</a></li>
</ul>

<h2>EdgeHTML 14リリース</h2>

<p>8月3日にWindows 10 Anniversary Updateがリリースされ、Microsoft EdgeもEdgeHTML 14を搭載した新しいものにアップグレードされました。</p>

<ul>
<li><a href="https://blogs.windows.com/msedgedev/2016/08/04/introducing-edgehtml-14/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Introducing EdgeHTML 14 with the Windows 10 Anniversary Update</a></li>
</ul>

<p>このAnniversary Updateで、Edge公開時点のロードマップで言及されていた拡張機能がついに導入されました。こちらもChrome拡張APIと互換となっています。これで拡張を作るモチベーションが多少上がりますね。</p>

<p>EdgeHTML 14で導入されたWeb関連機能は多岐にわたります。Web Notifications APIやWOFF 2.0などはすでに実装・利用されていますが、Fetch APIやES 2015, ES 2016など他のブラウザと同じ時期に実装しているものもあります。また、FIDO 2.0などはEdgeが先行しています。今後の動向も注目です。</p>

<h2>Chrome 53リリース</h2>

<p>8月31日に、Chrome 53がリリースされました。</p>

<p>52でのMac版に続き、Windows版でも見た目がすっきりしました。これについて、リデザインに関わったGoogleのSebastien Gabrielが、その経緯や技術的なところをMediumに投稿しています。</p>

<ul>
<li><a href="https://medium.com/@KounterB/redesigning-chrome-desktop-769aeb5ab987" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Redesigning Chrome desktop</a></li>
</ul>

<p>Material Designへの移行にあたり、SVGでおこしたデザインをコードに変換する方法に切り替えたことで、使っていた画像のアセットが大幅に減ったといった話などは面白いですね。</p>

<p>Web関連機能では、新しいShadow DOMのAPI、通称「Shadow DOM v1」が実装されました。</p>

<ul>
<li><a href="https://developers.google.com/web/fundamentals/primers/shadowdom/?hl=ja" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Shadow DOM v1: self-contained web components</a></li>
</ul>

<p>Shadow DOMはChrome 35から実装されていますが、これは「v0」と呼ばれる、Blinkのみでしか使えないものです。標準化が進むにつれ、<a href="http://hayato.io/2016/shadowdomv1/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">APIに結構大きな変更が生まれた</a>ため、新しいAPIは「v1」として区別されています。v1 APIは他ベンダーの合意もとりつけ、<a href="https://webkit.org/blog/4096/introducing-shadow-dom-api/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Safari 10でも実装</a>されます。</p>

<p>Android版では、Payment Request APIが有効になりました。</p>

<ul>
<li><a href="https://developers.google.com/web/updates/2016/07/payment-request?hl=ja" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Payment Request API で簡単・高速な決済を実現する</a></li>
<li><a href="https://developers.google.com/web/fundamentals/primers/payment-request/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Payment Request API integration guide</a></li>
</ul>

<p>モバイルで決済をする際にとても煩わしいのが、決済フォームへのクレジットカード番号や住所の入力でしょう。Payment Request APIは、端末やブラウザに保存されている情報を利用し、それらをブラウザ側で用意されたUIで提供することで、決済周りの体験をスムーズにする目的で策定されているAPIです。</p>

<p>こちらもAndroid版ですが、<code>muted</code> 属性が指定された <code>video</code> 要素に限り、<code>autoplay</code> 属性や <code>play()</code> メソッドによる自動再生が可能になりました。</p>

<ul>
<li><a href="https://developers.google.com/web/updates/2016/07/autoplay?hl=ja" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Muted autoplay on mobile: say goodbye to  hacks and animated GIFs!</a></li>
</ul>

<p>これまではビデオの自動再生ができなかったため、アニメーションGIFやCanvasで擬似的に行うといったハックが使われていました。しかしアニメーションGIFには容量の増大や色数の制限、描画パフォーマンスなどに問題がありますし、CanvasもビデオファイルをJavaScriptでデコードするといった無茶をしており、うれしくありません。こうした本末転倒な状況を解消するため、無音状態に限り自動再生できるように要件が緩和されました。</p>

<p>同様の変更は、iOS 10のSafariでも行われます。</p>

<ul>
<li><a href="https://webkit.org/blog/6784/new-video-policies-for-ios/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">New &lt;video&gt; Policies for iOS</a></li>
</ul>

<p>多くのサイトが、負荷の高いアニメーションGIFからビデオに移行してくれればなあと強く思います。</p>
]]></content:encoded>
		
		<series:name><![CDATA[WEB標準化動向]]></series:name>
	</item>
		<item>
		<title>Chrome 52新機能、最新macOS「Sierra」パブリックベータ公開─2016年7月のブラウザ関連ニュース</title>
		<link>/myakura/20202/</link>
		<pubDate>Mon, 15 Aug 2016 00:26:44 +0000</pubDate>
		<dc:creator><![CDATA[矢倉 眞隆]]></dc:creator>
				<category><![CDATA[最新動向]]></category>
		<category><![CDATA[Chrome]]></category>
		<category><![CDATA[Sierra]]></category>
		<category><![CDATA[ブラウザ]]></category>

		<guid isPermaLink="false">/?p=20202</guid>
		<description><![CDATA[連載： WEB標準化動向 (15)2016年7月のブラウザ関連ニュースは、7月20日にリリースされたChrome 52、macOSの最新バージョン「Sierra」のパブリックベータ公開についてお伝えします！ Chrome...]]></description>
				<content:encoded><![CDATA[<div class="seriesmeta">連載： <a href="https://html5experts.jp/series/webstandards-news/" class="series-156" title="WEB標準化動向" data-wpel-link="internal">WEB標準化動向</a> (15)</div><p>2016年7月のブラウザ関連ニュースは、7月20日にリリースされたChrome 52、macOSの最新バージョン「Sierra」のパブリックベータ公開についてお伝えします！</p>

<h2>Chrome 52リリース</h2>

<p>7月20日にChrome 52がリリースされました。</p>

<p>Mac版は見た目がすっきりしました。</p>

<div id="attachment_20277" style="width: 650px" class="wp-caption aligncenter"><img src="/wp-content/uploads/2016/08/chrome_52_interface_change-640x360.png" alt="スクリーンショット：Chrome 51とChrome 52のウインドウを並べたもの" width="640" height="360" class="size-large wp-image-20277" srcset="/wp-content/uploads/2016/08/chrome_52_interface_change.png 640w, /wp-content/uploads/2016/08/chrome_52_interface_change-300x169.png 300w, /wp-content/uploads/2016/08/chrome_52_interface_change-207x116.png 207w" sizes="(max-width: 640px) 100vw, 640px" /><p class="wp-caption-text">グラデーションや丸みがなくなりすっきりした。タブも少し大きくなった</p></div>

<p>新しい見た目は、モバイル版ChromeやChrome OSと同じものになっています。細かいところについては、GoogleでChromeのデザインをしているSebastien Gabrielが自身のサイトやMediumでまとめています。</p>

<ul>
<li><a href="http://sebastien-gabriel.com/work/chrome-ios" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Chrome for iOS</a></li>
<li><a href="http://sebastien-gabriel.com/work/chrome-android" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Chrome Android</a></li>
<li><a href="http://sebastien-gabriel.com/work/chrome-cros" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Chrome for Chrome OS</a></li>
<li><a href="https://medium.com/google-design/redesigning-chrome-android-11eab15dc7ee" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Redesigning Chrome Android. Part 1</a></li>
<li><a href="https://medium.com/google-design/redesigning-chrome-android-part-2-of-2-8884f0430940" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Redesigning Chrome Android. Part 2</a></li>
</ul>

<p>新しい機能の紹介をしましょう。今回はパフォーマンス向上に貢献しそうなものが多く入っています。</p>

<p>Service Worker/Fetch API関連で、レスポンスを <code>ReadableStream</code> で作成し返せるようになりました。</p>

<ul>
<li><a href="https://developers.google.com/web/updates/2016/06/sw-readablestreams" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Stream Your Way to Immediate Responses</a></li>
<li><a href="https://jakearchibald.com/2016/streams-ftw/#creating-your-own-readable-stream" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Creating your own readable stream: 2016 &#8211; the year of web streams</a></li>
</ul>

<p>うまく使えば段階的にコンテンツを表示できるので、体感速度が上がります。</p>

<p>CSSではCSS Containmentというものが実装されました。指定した要素について、レイアウトや描画のスコープを設けられる仕組みです。</p>

<ul>
<li><a href="https://developers.google.com/web/updates/2016/06/css-containment?hl=ja" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Chrome 52 に CSS Containment が導入</a></li>
</ul>

<p>基本的にレイアウトや描画はドキュメント全体がスコープになるため、一部のみ変更する際にはドキュメント全体が対象となる無駄な処理が走ります。それを抑制できるので、とくに複雑なページで使うと恩恵が大きいでしょう。</p>

<p>また、新機能ではありませんが、外部スタイルシートが起こすレンダリングの挙動が変更されました。</p>

<ul>
<li><a href="https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/ZAPP8aTnyn0" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Intent to Implement: Block parser on external CSS</a></li>
</ul>

<p>これまでは外部スタイルシートをパーザが発見した場合、それが読み込まれるまで描画をブロックしていたのですが、すでにパーザが処理したDOMの描画も止めていたため、段階的なレンダリングができませんでした。新しい挙動は外部スタイルシートが見つかった箇所以降のみレンダリングのブロックが発生します。段階的なレンダリングにやさしくなります。</p>

<p>この挙動とHTTP/2を組みあわせ、必要なときに必要なCSSを読みこむやり方が検討されています。</p>

<ul>
<li><a href="https://jakearchibald.com/2016/link-in-body/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">The future of loading CSS</a></li>
</ul>

<p>パフォーマンス計測のためのPerformance Observerも実装されました。Navigation Timingをはじめとした各種パフォーマンス情報をObserverで取得する新しいAPIです。ポーリングなどをしなくてもよくなりますし、必要なパフォーマンス情報を絞れるので、扱いやすくなるかと思います。</p>

<p>パフォーマンス関連以外の機能もちょこちょこあります。</p>

<ul>
<li>Canvas APIに <code>ctx.filter</code> が追加され、フィルタを指定できるようになりました</li>
<li><s>CSS Color Module Level 4で定義されている <code>#rrggbbaa</code> 記法が使えるようになりました</s><br>（<strong>8月25日追記</strong>：<a href="https://bugs.chromium.org/p/chromium/issues/detail?id=618518" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">リリース直前に無効にされていました…</a>）</li>
<li><a href="https://v8project.blogspot.jp/2016/06/release-52.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">V8も更新され</a>、ES7のexponentiation operator（<code>**</code>）が実装されました</li>
</ul>

<h2>macOS Sierraパブリックベータ公開</h2>

<p>OS Xから名前が変わったmacOSの最新バージョン、Sierraのパブリックベータが公開されました。</p>

<p>Safari 10が入っていますが、<a href="https://developer.apple.com/library/prerelease/content/releasenotes/General/WhatsNewInSafari/Articles/Safari_10_0.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">開発者向けのドキュメント</a>で取り上げられていない機能も一部入っています。</p>

<p>ひとつはCSSアニメーションのの <code>spring()</code> です。「ばね」と名のつくように、ぼよんぼよんと動くアニメーションを簡単に使えるものです。<a href="https://github.com/w3c/web-animations/issues/155#issuecomment-228198739" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Appleが内部で必要として試験的に実装されたもの</a>で、後にAppleより標準化も提案されています。</p>

<ul>
<li><a href="https://github.com/w3c/csswg-drafts/issues/280" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">spring() timing function</a></li>
<li><a href="https://webkit.org/demos/spring/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Spring timing function demo</a></li>
</ul>

<p>頑張れば既存の仕組みでも実現できるかもしれませんが、専用の関数が用意されているとだいぶ楽そうです。
また、タイミング関数を自作できる仕組みもほしいという話もコミュニティから出ています。</p>

<ul>
<li><a href="https://github.com/w3c/csswg-drafts/issues/229" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Complex timing functions</a></li>
</ul>

<p>動きもコンポーネント的に定義できれば、ライブラリとしての提供もしやすそうです。</p>

<p>もうひとつは、初期のベータだけですが、WebPがOSレベルでサポートされていました。</p>

<ul>
<li><a href="https://groups.google.com/a/webmproject.org/forum/#!msg/webp-discuss/J8HLhTaklYE/RAtX14MEAQAJ" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">WebP is now supported on Safari 10 both on macOS sierra and iOS 10</a></li>
</ul>

<p>しかし、後のベータでは<a href="https://twitter.com/grorgwork/status/760205585044217856" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">削除され</a>、<a href="https://twitter.com/othermaciej/status/760579458956865536" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">ベータに含める意図がなかった</a>ことも明らかになっています。Appleが実装するまでWebPに興味があったというのが、うれしいニュースでしょうか。</p>
]]></content:encoded>
		
		<series:name><![CDATA[WEB標準化動向]]></series:name>
	</item>
	</channel>
</rss>
