<?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>Chakra &#8211; HTML5Experts.jp</title>
	<atom:link href="/tag/chakra/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>【HTML5 Experts.jp】2016年1月のブラウザ関連ニュース</title>
		<link>/myakura/18382/</link>
		<pubDate>Wed, 09 Mar 2016 00:00:26 +0000</pubDate>
		<dc:creator><![CDATA[矢倉 眞隆]]></dc:creator>
				<category><![CDATA[最新動向]]></category>
		<category><![CDATA[Chakra]]></category>
		<category><![CDATA[Chrome]]></category>
		<category><![CDATA[Edge]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Safari]]></category>
		<category><![CDATA[ブラウザ]]></category>

		<guid isPermaLink="false">/?p=18382</guid>
		<description><![CDATA[連載： WEB標準化動向 (9)2016年1月のブラウザニュースは、Safari 9.1のリリース、Firefox 44リリース、Chrome 48リリース、EdgeのJavaScriptエンジンChakraのオープンソ...]]></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> (9)</div><p>2016年1月のブラウザニュースは、Safari 9.1のリリース、Firefox 44リリース、Chrome 48リリース、EdgeのJavaScriptエンジンChakraのオープンソース版「ChakraCore」についてお届けします。<br></p>

<h2>Safari 9.1発表</h2>

<p>iOS 9.3とOS X 10.11.4のベータ版が開発者向けに提供され、その中でSafari 9.1のリリースが明らかとなりました。</p>

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

<p>9.1では先月紹介したタップ時の350msの遅延をなくす仕組みや、CSS Custom Properties（CSS Variables）、<code>font-feature-settings</code> プロパティとそれに関連する <code>font-variant</code> 系サブプロパティ、<code>will-change</code> プロパティがサポートされるようです。</p>

<p>セキュリティや安定性向上のためのアップデートではない、マイナーアップデートは久しぶりです。Safariはこれまで、新しい機能の追加やバグの修正を年一度のメジャーアップデートでしか提供しておらず、開発者の不満を高めていました。ChromeやFirefox、Edgeほどを望む必要があるかはわかりませんが、9.1のようにエンジンのバージョンアップを含むリリースがもうすこしあるとうれしいですね。</p>

<h2>Firefox 44リリース、Service Workerが有効に</h2>

<p>1月26日にFirefox 44がリリースされました。</p>

<p>このバージョンでついにFirefoxでもService Workerが有効になりました。</p>

<p>CSSの <a href="https://developer.mozilla.org/docs/Web/CSS/%40font-face/unicode-range" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><code>unicode-range</code></a> デスクリプタがサポートされました。</p>

<p>開発者ツールではCSS Animationsのエディタが協力になりました。Chromeにもあるような、スライダーでアニメーションの状態を逐次確認できるようなUIがついています。</p>

<ul>
<li><a href="https://developer.mozilla.org/en-US/docs/Tools/Page_Inspector/How_to/Work_with_animations" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Work with animations &#8211; Firefox Developer Tools | MDN</a></li>
<li><a href="https://hacks.mozilla.org/2015/11/developer-edition-44-creative-tools-and-more/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Developer Edition 44: New visual editing and memory management tools ★ Mozilla Hacks – the Web developer blog</a></li>
</ul>

<p>CSSアニメーションを学べるDevTools Challengerというサイトも、44がDeveloper Editionだった昨年11月ころから公開されています。アニメーションで動く深海生物を開発者ツールから操作するというチュートリアルです。</p>

<ul>
<li><a href="http://devtoolschallenger.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">DevTools Challenger</a></li>
</ul>

<h2>Chrome 48リリース、縦書きCSSの向上</h2>

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

<p>このリリースで、CSS Writing Modesの接頭辞がとれました。Writing Modesについては昨年末のCodeGridで取り上げられています。</p>

<ul>
<li><a href="https://app.codegrid.net/series/2015-vertical-script" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">ブラウザにおける縦書き最新事情 ― CodeGrid</a></li>
</ul>

<p>また、OpenTypeフォントの機能にアクセスする <code>font-feature-settings</code> も接頭辞がとれました。Safari 9.1の公開も近いようなので、接頭辞まわりがだいぶすっきりしますね。</p>

<h2>ChakraCoreが公開</h2>

<p>12月分で取り上げた、EdgeのJavaScriptエンジンChakraのオープンソース版「ChakraCore」ですが、1月13日に公開されました。</p>

<ul>
<li><a href="https://blogs.windows.com/msedgedev/2016/01/13/chakracore-now-open/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">ChakraCore GitHub repository is now open | Microsoft Edge Dev Blog</a></li>
</ul>

<p><a href="https://github.com/Microsoft/ChakraCore/wiki/Roadmap" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">ロードマップ</a>も公開されています。JITなしでUbuntuでもまず動かせるようにするとか、WebAssemblyへの対応、Async FunctionをECMAScript仕様に持っていくといったことが書かれています。</p>

<p>一週間後には、ChakraCoreをNodeのエンジンにするべくPull Requestが投げられました。</p>

<ul>
<li><a href="https://blogs.windows.com/msedgedev/2016/01/19/nodejs-chakracore-mainline/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Submitting a Pull Request to Node.js with ChakraCore | Microsoft Edge Dev Blog</a></li>
</ul>

<p>JavaScriptエンジンの競争がさらに盛んになってきそうですね。</p>
]]></content:encoded>
		
		<series:name><![CDATA[WEB標準化動向]]></series:name>
	</item>
		<item>
		<title>【HTML5 Experts.jp】2015年12月のブラウザ関連ニュース振り返り</title>
		<link>/myakura/18263/</link>
		<pubDate>Tue, 09 Feb 2016 00:00:54 +0000</pubDate>
		<dc:creator><![CDATA[矢倉 眞隆]]></dc:creator>
				<category><![CDATA[最新動向]]></category>
		<category><![CDATA[Chakra]]></category>
		<category><![CDATA[Chrome]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Microsoft Edge]]></category>
		<category><![CDATA[WebKit]]></category>
		<category><![CDATA[ブラウザ]]></category>

		<guid isPermaLink="false">/?p=18263</guid>
		<description><![CDATA[連載： WEB標準化動向 (8)Chrome 47リリース 12月1日に、Chrome 47がリリースされました。 次期ECMAScript仕様の Array.prototype.includes() がサポートされまし...]]></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> (8)</div><h2>Chrome 47リリース</h2>

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

<p>次期ECMAScript仕様の <a href="https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/includes" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><code>Array.prototype.includes()</code></a> がサポートされました。これで <code>indexOf()</code> を使うハックから解消されますね。このメソッド、もともとは <code>has()</code> という名前で検討されていましたが、MooToolsで同名のメソッドが定義されてしまっていたため名前が変わったなんて経緯があります。</p>

<p>パフォーマンス関連では、 <code>requestIdleCallback()</code> というAPIがサポートされました。実行させたい処理のスケジューリングをよしなにしてほしい時に使うAPIです。そんな説明ではわからないと思うので、Google Developersのエントリや、エキスパートの川田さんがpixivのアドベントカレンダーで取り上げた詳細な記事をご覧ください。</p>

<ul>
<li><a href="https://developers.google.com/web/updates/2015/08/using-requestidlecallback" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Using requestIdleCallback | Web Updates &#8211; Google Developers</a></li>
<li><a href="http://inside.pixiv.net/entry/2015/12/24/182248" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">JSがブラウザを固めてつらいので、新しいAPI「requestIdleCallback」を使うことにした &#8211; pixiv inside</a></li>
</ul>

<p>DOMでは、<code>Event.timeStamp</code> の返す値が <code>DOMTimeStamp</code> から <code>DOMHighResTimeStamp</code> に変更されました。より細かい精度をもつ値を返すようになったのですが、<code>DOMTimeStamp</code> はUNIXのエポック時間を返すのに対し、<code>DOMHighResTimeStamp</code> はページヘのアクセスが起点になっていおり、互換性への懸念があります。</p>

<p>と思ったら、どうやら<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1231619" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Angularのアニメーション機能で衝突した</a>ようです。MozillaでもFirefox NightlyとDeveloper Editionで限定的に有効にしているのですが、対策を検討しています。</p>

<p>最後にUIの話を。選択範囲の描画方法が変わりました。これまでChromeはSafariと同じようにテキストの外側にも選択範囲が描画されていましたが、今後はテキストや画像などの周りだけが選択範囲として描画されます。パフォーマンスの向上や、モバイルで選択範囲をわかりやすくするねらいがあるようです。</p>

<div id="attachment_18266" style="width: 650px" class="wp-caption aligncenter"><img src="/wp-content/uploads/2016/01/chrome_selection_gap_painting-640x240.png" alt="Chrome 46とChrome 47でページの一部を選択したスクリーンショット。" width="640" height="240" class="size-large wp-image-18266" srcset="/wp-content/uploads/2016/01/chrome_selection_gap_painting.png 640w, /wp-content/uploads/2016/01/chrome_selection_gap_painting-300x113.png 300w, /wp-content/uploads/2016/01/chrome_selection_gap_painting-207x78.png 207w" sizes="(max-width: 640px) 100vw, 640px" /><p class="wp-caption-text">Chromeの選択範囲。46（左）ではページの大部分に選択範囲が描画されているのに対し、47（右）ではテキストまわりのみになっている</p></div>

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

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

<p>このリリースで、Chromeに続いて<code>Array.prototype.includes()</code> がサポートされました。リリースサイクルを考えるとFirefoxのほうがたぶん早く実装してるんですが、リリースは同時期になっちゃいましたね（タイミングが合うと使い始めやすいかもですが）。</p>

<p>今回も開発者ツールを取り上げましょうか。</p>

<p><a href="https://developer.mozilla.org/ja/docs/Tools/Web_Console/Console_messages#Server" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Server Logging</a>というのが実装されました。サーバーから送られるメッセージをコンソールに出せるようです。仕組みとしては<a href="https://craig.is/writing/chrome-logger" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Chrome Logger</a>というChrome拡張が使ってるプロトコルをFirefoxの開発者ツールに実装したようです。<a href="https://craig.is/writing/chrome-logger/techspecs" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">仕様</a>を見ると、独自のHTTPヘッダにBase64エンコードしたJSONを渡すというものだそうで。</p>

<p>スタイルパネルも便利になりました。スタイルを見るときに、別の宣言で上書きされていたりすることはしばしばです。どのスタイルで上書きされているかを調べるには、スタイルパネルを辿って調べるわけですが面倒です。そうしたものを簡単に見つける機能が追加されました。</p>

<div id="attachment_18271" style="width: 453px" class="wp-caption aligncenter"><img src="/wp-content/uploads/2016/01/fxdevtools_style_filter_inheritance.png" alt="Firefox開発者ツールのスタイルパネル" width="443" height="305" class="size-full wp-image-18271" srcset="/wp-content/uploads/2016/01/fxdevtools_style_filter_inheritance.png 443w, /wp-content/uploads/2016/01/fxdevtools_style_filter_inheritance-300x207.png 300w, /wp-content/uploads/2016/01/fxdevtools_style_filter_inheritance-207x143.png 207w" sizes="(max-width: 443px) 100vw, 443px" /><p class="wp-caption-text">上書きされている宣言の横についている虫眼鏡アイコンをクリックすると、プロパティ名でフィルタをかけた状態になる</p></div>

<p>ほかにも、「Use in Console」なるコンテキストメニューがインスペクタパネルに追加されました。任意の要素の上で「Use in Console」を選択すると、それが <code>temp0</code> といった変数から参照できます。</p>

<p><img src="/wp-content/uploads/2016/01/fxdevtools_useinconsole.png" alt="Firefox開発者ツールのインスペクタパネルで、Use in Consoleを実行。コンソールが開き、選択した要素がtemp0という変数として使えるように。" width="452" height="353" class="aligncenter size-full wp-image-18273" srcset="/wp-content/uploads/2016/01/fxdevtools_useinconsole.png 452w, /wp-content/uploads/2016/01/fxdevtools_useinconsole-300x234.png 300w, /wp-content/uploads/2016/01/fxdevtools_useinconsole-207x162.png 207w" sizes="(max-width: 452px) 100vw, 452px" /></p>

<p>便利かどうかわかりませんが、<code>$0</code> よりも多少使いやすいでしょうか。</p>

<h2>EdgeのChakraがオープンソースに</h2>

<p>12月5日に開催されたJSConf US Last Callでの発表で、Microsoft EdgeやInternet Explorerで使われているJavaScriptエンジン、Chakraがオープンソースになることが発表されました。</p>

<ul>
<li><a href="https://blogs.windows.com/msedgedev/2015/12/05/open-source-chakra-core/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Microsoft Edge’s JavaScript engine to go open-source | Microsoft Edge Dev Blog</a></li>
</ul>

<p>ただ発表時点では公開されませんでした。オープンソース化する部分の整備を進めており、公開されるのは1月になるとのこと。</p>

<p>オープンソースになるのは、ChakraCoreと呼ばれるものです。ChakraCoreはこれまでのChakraから、WindowsアプリやEdgeなどと連携させるためのプライベートAPIを除いたものとのこと。1月のリリース時にはWindowsでしか使えないようですが、今後は汎用的なJavaScriptエンジンとして利用できるように整備していくとのことです。</p>

<p>MicrosoftはWindows 10 IoTでNodeを利用するために、<a href="https://github.com/Microsoft/node-v0.12" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">ChakraにV8のshimをはさんで動かすNode</a>を開発するなどしています。現行メジャーブラウザのJavaScriptエンジンがすべてオープンソースになるなんて、すごい時代になりましたね。</p>

<h2>WebKitでタップ時の遅延が条件下で削除</h2>

<ul>
<li><a href="https://webkit.org/blog/5610/more-responsive-tapping-on-ios/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">More Responsive Tapping on iOS | WebKit</a></li>
</ul>

<p>モバイルブラウザで画面をタップしてから、反応までにすこし時間がかかると思った方はいるでしょうか。</p>

<p>それなりに知られている話だとは思いますが、これはダブルタップかシングルタップなのかを区別するために、シングルタップと認識するまでに意図的に遅延を入れているからです。ダブルタップでズームするという挙動があるため、ズームしたいのかタップなのかを区別するために入っているんですね。</p>

<p>この遅延、Chrome, Firefoxでは300ms、WebKitでは350msとなっています。</p>

<p>ただ、ChromeとFirefox、Edgeでは、特定の条件下でこの遅延を消せます。具体的には、viewportの指定が <code>width=device-width</code> や <code>user-scalable=no</code> と設定された、ズームを必要としないページについては、ダブルタップを区別しないでよいため、遅延がなくなります。</p>

<p>viewportによる遅延の削除は<a href="https://developers.google.com/web/updates/2013/12/300ms-tap-delay-gone-away" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Chrome 32</a>、<a href="https://www.fxsitecompat.com/ja/versions/30/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Firefox 30</a>から、そして<a href="http://stackoverflow.com/a/33293649/1954313" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Edgeは最初から</a>対応しているのですが、SafariとWebKitはまだ対応できていません。<a href="http://developer.telerik.com/featured/300-ms-click-delay-ios-8/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">iOS 8からはゆっくりタップした場合には遅延がない</a>ようになったらしいのですが、せっかちさんは救われません。</p>

<p>対応していないブラウザに対しては、<a href="https://github.com/ftlabs/fastclick" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">fastclick</a>などのライブラリが開発されています。ただこうしたものは遅延を消すためにタッチイベントを使っているため、タッチイベントを利用するライブラリやページと競合するなんてこともあります。</p>

<p>今回の変更で、他のブラウザと同様の挙動になりました。また、viewportをカスタマイズできないページへの対応として、CSSの <a href="https://developer.mozilla.org/ja/docs/Web/CSS/touch-action" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><code>touch-action</code>
プロパティ</a>も実装されました。クリッカブルな要素に <code>touch-action: manipulation</code> を指定すれば、その要素はダブルタップを考慮しなくなり、遅延がなくなります。</p>
]]></content:encoded>
		
		<series:name><![CDATA[WEB標準化動向]]></series:name>
	</item>
	</channel>
</rss>
