2016年11月のブラウザ関連ニュースは、サンフランシスコで開催されたChrome Dev Summitと11月15日にリリースされたFirefox 50についてお届けします。
Chrome Dev Summit開催
11月はChromeのリリースがありませんでしたが、サンフランシスコにてChrome Dev Summitが開催されました。
名前にChromeと冠していますが、トピックはProgressive Web Appsです。Progressive Web Appsが認識され広がりつつある今年は、LyftやCNETのPWA開発の裏側といったケーススタディや、フレームワークを使った際にどうパフォーマンスを見たり改善したりするかといった実践的な話が多かったです。
ビデオも30分くらいのセッションがほとんど多いので、さくさくと観られます。
Firefox 50リリース
11月15日に、Firefox 50がリリースされました。
Firefoxもついに50になりました。
訪問済・未訪問を問わないリンクにマッチする :any-link
擬似クラスがサポートされました。a
と何が違うのか疑問に思う方がいるかもしれませんが、:link
, :visited
, :any-link
は area
や link
といった要素型にもマッチしますし、href
属性の有無もふまえます。ちゃんと「リンクされているか」を見るってことですね。
DOMでは、NodeList
インターフェースがiterableになり、querySelectorAll()
の結果に直接 forEach()
などをくっつけられるようになりました。他のブラウザもChrome 51、Safari 10も対応済みですし、だんだんと使える環境が広がっていますね。
最近のDOM仕様では、addEventListener()
の第三引数に AddEventListenerOptions
というディクショナリを取れるようになっているのですが、そのうちの一つ once
がサポートされました。jQueryの one()
のように、一度だけ呼び出されるイベントリスナを設定できます。
セキュリティ関連では、X-Content-Type-Options: nosniff
がサポートされました。ブラウザはサーバから来る Content-Type
ヘッダを見てコンテンツの種類を判断しますが、状況や特定のファイルによってはコンテンツの中身を少し見てからその種類を推定したりします。これを「Content sniffing」や「MIME sniffing」といいます。
便利なときもあるのでしょうが、セキュリティ上の懸念があるため、それを無効にするための手立てとして X-Content-Type-Options: nosniff
というヘッダがIE8に導入され、Opera, Chromeも追従し、最終的にFetch
仕様に取り込まれました。
このほか、border-image-repeat: space
や、Chromeが独自に実装していたFileSystem APIの一部のサポート、dotted
もしくは dashed
を設定したボックスに border-radius
をかけたときの見た目の改善などが行われています。