<?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>DevTools &#8211; HTML5Experts.jp</title>
	<atom:link href="/tag/devtools/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>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>
	</channel>
</rss>
