Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Yearly Web 2019 #DevFest19 #devfest19 2019/12/14 Jxck
Slide 2
Slide 2 text
No content
Slide 3
Slide 3 text
mozaic.fm ep61: Yearly Web 2019
Slide 4
Slide 4 text
2019 年の Web を振り返る
Slide 5
Slide 5 text
Dark Mode High Contrast Mode
Slide 6
Slide 6 text
Media Queries Level 5 ● prefers-color-scheme ○ OS に設定した色を取得 ● prefers-contrast ○ コントラストを高く ● prefers-reduced-motion ○ チラつきなどの動きを抑制 ● prefers-reduced-transparency ○ 透過表現を抑制 ● inverted-colors ○ 色の反転 ● forced-colors ○ 特定の色の強制
Slide 7
Slide 7 text
Slide 8
Slide 8 text
8 ● 画面遷移を CSS でアレンジ ○ アニメーションできる ○ 先読みでシームレスに ● 展開できる iframe ○ 中身を操作はできない ○ postMessage は可能 ● まだ完成とは程遠い ○ まだバグが多い ○ 最近 History が修正 ○ 今日は Canary が Crash ○ 遊ぶにはちょうど良い
Slide 9
Slide 9 text
WASM / WASI
Slide 10
Slide 10 text
WASM/WASI 2019/3: WASI ● WASM というポータブルなバイナリ仕様ができた ● これでシステムプログラミングもしたい ● POSIX ではなくモダンな設計にしよう 2019/11: Bytecode Alliance ● WASM / WASI やってこうぜ ● Moziila, Fastly, Intel, Redhat etc 2019/12: WASM W3C Recommendation ● WASM はもう安心して使ってください
Slide 11
Slide 11 text
WebAuthN
Slide 12
Slide 12 text
WebAuthN ● Authenticator を使った認証 API ○ Yubikey, Touch ID, Win Hello etc ○ 二段階/二要素/パスワードレスなどが可能 ○ github, google, yahoo などが対応開始 ● ログインの選択肢が増加 ○ どう実装するのが正解かは難しい ○ ユーザも Authenticator にまだ慣れてない ○ フローやリカバリや普及などは来年以降
Slide 13
Slide 13 text
ES/JS
Slide 14
Slide 14 text
ES2019 ● Optional catch binding ● JSON superset ● Symbol.prototype.description ● Function.prototype.toString ● Object.fromEntries ● Well-formed JSON.stringify ● String.prototype.{trimStart,trimEnd} ● Array.prototype.{flat,flatMap}
Slide 15
Slide 15 text
Private Class Fields class Counter { // Class Field (stage 3) // Private Field (stage 3) #count = 0 }
Slide 16
Slide 16 text
Nullish Coalescing/Optional Chaining // nullish Coalescing (stage 3) // param が false/0/'' の時も上書き param = param || 'default' // param が null/undefined の時だけ上書き param = param ?? 'default' // optional chaining (stage 4) o = {a: {b: {c: 10}} // error にはならない o?.a?.b?.x // undefined
Slide 17
Slide 17 text
Promise.any/allSettled // allSettled (stage 4) // 全部完了するまで実施 Promise.allSettled([ fetch('/1'), fetch('/2'), fetch('/3') ]) // any (stage 3) // どれかが成功するまで実施 Promise.any([ fetch('/1'), fetch('/2'), fetch('/3') ])
Slide 18
Slide 18 text
Intelligent Tracking Prevention
Slide 19
Slide 19 text
ITP ● 合意の無いトラッキングはダメです ○ 3rd Party Cookie などの制限へ ● Safari だけではない ○ 2019/2: Safari ITP2.1 ○ 2019/4: Safari ITP2.2 ○ 2019/6: Edge Tracking Protection ○ 2019/9: Safari ITP2.3 ○ 2019/9: Firefox Tracking Protection ○ 2019/12: Edge Tracking Protection Update
Slide 20
Slide 20 text
Project Fugu
Slide 21
Slide 21 text
Close the Gap ● Native File System API ● Periodic Background Sync ● Contact Picker API ● SMS Receiver API ● etc etc
Slide 22
Slide 22 text
DoH
Slide 23
Slide 23 text
DNS over HTTPS/TLS ● DNS クエリも暗号化 ○ プライバシー保護 ○ 改竄の防止 ○ 1.1.1.1 や 8.8.8.8 が対応開始 ● できないことも増える ○ フィルタリング ○ ペアレンタルコントロール ○ ISP からの反対 ○ Opt-Out (canary domain)や適用範囲などの議論
Slide 24
Slide 24 text
Edge
Slide 25
Slide 25 text
MS Edge over Chromium ● 2018 に EdgeHTML の開発終了発表 ● Edge のレンダリングエンジンを Chromium に ● ロゴもでき Beta も順調? ● 来年にはリリースされそう
Slide 26
Slide 26 text
WebPackaging
Slide 27
Slide 27 text
WebPackaging ● Signed HTTP Exchange ○ レスポンスに署名をする ○ どこから取得しても自分のドメインで表示 ○ AMP の URL 問題を解決 ● WebBundles ○ 複数のレスポンスを 1 ファイルにまとめる ○ ローカルに保存して AirDrop でサイトを共有したり ● WebPackaging ○ WebBundles + Signed HTTP Exchange
Slide 28
Slide 28 text
WebTransport WebCodecs
Slide 29
Slide 29 text
ゲームで本当に欲しかったもの ● 通信 ○ Fetch でも WebSocket でも WebRTC でもない ○ Client/Server で UDP でバイナリ送りたい ○ WebTransport ● 描画 ○ DOM でも Canvas でもない ○ Codec -> Video したい ○ WebCodecs ● ゲーム業界中心に割と盛り上がりつつある
Slide 30
Slide 30 text
WebComponents v1
Slide 31
Slide 31 text
WebComponents v0 -> v1 ● Chrome で v0 を deprecate する計画 ○ 2020/2 Chrome80 まで延期 ○ reverse origin trial ○ polyfill for v0 ● HTML Modules は? ○ JSON / HTML などまとめて Synthetic Modules の提案 ○ 今は問題が見つかり議論中
Slide 32
Slide 32 text
Same Site Cookie
Slide 33
Slide 33 text
Same Site Cookie Lax by default ● Same Site Cookie ○ Cookie を同じサイトでしか送られなくする ○ これまでは設定によって CSRF 対策に活用 ● by default M80 ○ Chrome 80 がデフォルトにするアナウンス ○ 安全性を優先 ○ しかし壊れるサイトが多く出る ○ 来年の 2 月までに直す必要
Slide 34
Slide 34 text
TLS1.0/1.1
Slide 35
Slide 35 text
TLS1.0/1.1 Deprecate ● TLS は 1.2 以降を使うべき ○ 1.0/1.1 は削除 ○ 各ブラウザやサービスが削除を始めている ● Chrome も UI を変更 ○ 79 (2020/1): Not Secure 表示 ○ 80 (2020/3): Block
Slide 36
Slide 36 text
and more & more...
Slide 37
Slide 37 text
Jack thanks