JSer.info #483 - jQuery 3.5.0がリリースされました。
jQuery 3.5.0では、jQuery 4.0で削除される予定の非標準な:even
と:odd
セレクタの代わりに、.even()
と.odd()
メソッドが追加されています。
また3.5.0はマイナーアップデートですが、非互換な変更を含むセキュリティアップデートが含まれています。
jQuery.htmlPrefilterでは正規表現を使って、$("<div />")
のようなXHTMLのself-closeなタグを$("<div></div>")
へと展開する処理が行われていました。
この正規表現での展開を使ったXSSが見つかったため、jQuery 3.5.0ではこの正規表現による展開を削除しています。
単一の<div />
のようなケースは特に違いはありません。
$('<div/>').append(document.body);
// <div></div> が追加される
次のように複数のself-closedなタグを書いた場合に3.4と3.5では挙動が異なります。
$( "<div/><span/>" ).append(document.body);
jQuery 3.4まではjQuery.htmlPrefilterによって次のように展開されていました。
<div></div>
<span></span>
jQuery 3.5ではこの展開がなくなったため、次のような結果になります。
<div>
<span></span>
</div>
このセキュリティアップデートによってjQueryを使ったライブラリにも一部影響が出ているようです。
jQuery Migrateを使ったワークアラウンドや詳細については次のマイグレーションガイドにまとめられています。
Firefox 75.0がリリースされました。
- Firefox 75: Ambitions for April - Mozilla Hacks - the Web developer blog
- Firefox 75.0, See All New Features, Updates and Fixes
- Firefox 75 サイト互換性情報 | Firefox サイト互換性情報
- Firefox 75 for developers - Mozilla | MDN
開発者ツールのコンソールにInstant evaluation previewsの追加、Async Stack Traceの対応などが行われています。
JavaScriptではPublic static fieldsやIntl.Localeのサポートが追加されています。
その他には、<img loading=lazy>
での画像の遅延ロードのサポート、CSSのmin()
/max()
/clamp()
のサポート、Web Animations APIの改善なども行われています。
リリースが延期していたChrome 81がリリースされました。
リリーススケジュールがずれたため、次のChrome 82はスキップされ83が3週間早くリリースされる予定です。
今後のリリーススケジュールについては次のページで確認できます。
[PR] JavaScript Primerが発売予定
ここ数年書いていたJavaScript PrimerというJavaScriptの入門書が2020年4月27日に発売予定です。
物理書籍版はAmazon等で予約できるので欲しい人は予約してください。電子書籍版(Kindle/epub/PDF)も後日発売されます。
書籍の内容はOSSとして公開しているウェブ版の https://jsprimer.net/ と同じですが、
レイアウトなどは書籍として読みやすくするために最適化されています。
詳細は次の記事を参照してください。
ヘッドライン
Release 10.4.0 · preactjs/preact
github.com/preactjs/preact/releases/tag/10.4.0
Preact 10.4.0リリース。
vnodeの厳密な比較によるパフォーマンス改善、SSR時にhydrationがうまく行かなかった際のfallbackを追加など
jQuery 3.5.0 Released! | Official jQuery Blog
blog.jquery.com/2020/04/10/jquery-3-5-0-released/
jQuery 3.5.0リリース。
jQuery.htmlPrefilter
の正規表現のタグ展開によってXSSが発生する問題の修正。これによって$("<div><div/></div>")
のようなself-closedなタグと他のタグの組わせの挙動が変更される破壊的な変更も含まれる。
4.0で削除される予定の:even
と:odd
の代わりに.even()
と.odd()
を追加など
Firefox 75: Ambitions for April - Mozilla Hacks - the Web developer blog
hacks.mozilla.org/2020/04/firefox-75-ambitions-for-april/
Firefox 75リリース。
開発者ツールのコンソールにInstant evaluation previewsの追加、Async Stack Traceの対応。
<img loading=lazy>
での画像の遅延ロードのサポート、CSSのmin()
/max()
/clamp()
のサポート、Web Animations APIの改善など。
- Firefox 75.0, See All New Features, Updates and Fixes
- Firefox 75 Site Compatibility | Firefox Site Compatibility
- Firefox 75 for developers - Mozilla | MDN
New in Chrome 81 | Web | Google Developers
developers.google.com/web/updates/2020/04/nic81
延期していたChrome 81リリース。
次のChrome 82はスキップされ83が3週間早くリリースされる。
Badging APIのサポート、Intl.DisplayNamesの実装、Origin TrialとしてWeb NFC APIの追加など
Release Notes for Safari Technology Preview 104 | WebKit
webkit.org/blog/10264/release-notes-for-safari-technology-preview-104/
Safari Technology Preview 104リリース。
(macOSの開発版で)HTTP3をフラグ付きでサポート、CSSの:is()
のサポート、WebRTC HEVC(H.265)のサポートなど
アーティクル
Web Animations in Safari 13.1 | WebKit
webkit.org/blog/10266/web-animations-in-safari-13-1/
Safari 13.1でサポートされたWeb Animations APIについて
WebSocketStream: integrating streams with the WebSocket API
PromiseベースであるWebSocketStream APIについての記事。
ReadableStream
やWritableStream
などの基本的な使い方、Backpressureについて、Streamの閉じ方についてなど
Digging into the Privacy Sandbox
web.dev/digging-into-the-privacy-sandbox/
プライバシー保護に関するAPIセットであるPrivacy Sandboxについての紹介記事。
現在のPrivacy Sandboxに関係するProposalの概要やゴール、関連する用語の解説など
Under-the-hood of web bundlers (e.g. Webpack) - ITNEXT
itnext.io/under-the-hood-of-web-bundlers-e-g-webpack-926e868f7f5e
JavaScriptのBundlerについての発表動画の記事版。
bundlerの行っていることの解説、小さなコンパイラを作りながらbundlerの動作の解説、実際にbundlerを使ってウェブアプリを出力するところまでを解説している。
- Under-the-hood of web bundlers (e.g. Webpack) - YouTube
- craigtaub/our-own-webpack: Our own version of Webpack in <200 lines
スライド、動画関係
電子情報学特論:Chromiumのアーキテクチャを解き明かす - Google スライド
Chromiumのプロセスアーキテクチャについてのスライド。
マルチプロセスアーキテクチャ、埋め込みコンテンツでのSpectreのメモリ読み取り、iframeでのSite Isolation、ChromeのGCの実装についてなど。
またレンダリング処理がParsing、Style、Layering、Rasterのステージに分けていて中間データをそれぞれ扱うことで動的な変更に対応している話など
ソフトウェア、ツール、ライブラリ関係
Hopding/pdf-lib: Create and modify PDF documents in any JavaScript environment
PDFを作成できるNode.jsライブラリ
書籍関係
JavaScript Primer 迷わないための入門書 | azu, Suguru Inatomi |本 | 通販 | Amazon
www.amazon.co.jp/dp/4048930737/
2020年4月27日発売
JavaScriptの入門書。
https://jsprimer.net/ の書籍版。