ep120 Monthly Platform 202304

published_at
2023-05-15
guest
@myakura
toc
headings

Theme

第 120 回のテーマは 2023 年 04 月の Monthly Platform です。

Show Note

Chrome 動向

Stable: 113

Updates

Intents

V8

Other

Firefox 動向

Stable: 113

Updates

Intents

Other

Safari 動向

Stable:16.4

Updates

  • WebKit Features in Safari 16.4
    • https://webkit.org/blog/13966/webkit-features-in-safari-16-4/
    • Web Push on iOS and iPadOS
    • Improvements for Web Apps
    • Web Components
    • CSS
      • Margin Trim
      • Typography
      • Pseudo-classes
      • Color
      • Media Queries Syntax Improvements
      • Custom Properties
      • Web Animations
      • Outline + Border Radius
      • CSS Typed OM
    • HTML
    • JavaScript and WebAssembly
    • Web API
      • Offscreen Canvas
      • Fullscreen API
      • Screen Orientation API
      • Screen Wake Lock API
      • User Activation API
      • WebGL Canvas Wide Gamut Color
      • Compression Streams API
      • And more
    • Images, Video, and Audio
    • WKWebView
    • Developer Tooling
      • Inspectable WebKit and JavaScriptCore API
      • WebDriver
    • Web Inspector
      • Typography Tooling
      • Tooling for Conditionals in CSS
      • Badging HTML Elements
      • And more
    • Safari Web Extensions
      • Enhancements to Declarative Net Request
      • SVG Icon Support in Web Extensions
      • Dynamic Content Scripts
      • Toggle Reader Mode
      • Session Storage
      • Background Modules
  • Safari 16.4 Release Notes | Apple Developer Documentation
  • Release Notes for Safari Technology Preview 167
    • https://webkit.org/blog/14100/release-notes-for-safari-technology-preview-167/
    • CSS
      • Implemented CSS text-transform with multiple values (261419@main)
      • Added offsets into shape-outside Shapes (261331@main)
      • Added support for top-level & selector for CSS Nesting (261739@main)
      • Added support for counter() with @counter-style (261985@main)
    • JavaScript
      • Added ClassSetCharacter syntax tests for RegExp v flag and fix issues found (261746@main)
      • Added more tests for RegExp v flag and fix issues found (261714@main)
      • Added ProxyObjectHas IC to optimize "has" trap (261628@main)
    • WebAssembly
      • Added support for anyref behind flag (261711@main)
      • Implemented cast operations behind flag (261445@main)
      • Implemented eqref and ref.eq behind flag (261663@main)
      • Implemented initial minimal JS API for Wasm GC behind flag (261544@main)
    • Media
      • Fixed video in picture-to-picture snaps to incorrect size (261383@main)
      • Fixed a page with one document doing capture and another playing correctly handle remote commands (261414@main)
      • Fixed readyState to change back to HAVE_METADATA when removing a sample at the current playtime (261955@main)
      • Fixed SourceBuffer.buffered to return the same object if it's not modified (261848@main)
      • Fixed video's readyState incorrectly switching between HAVE_CURRENT_DATA and HAVE_METADATA (262112@main)
    • Popover
      • Avoided conflicting interactions in the top layer (261317@main)
      • Made element.togglePopover() more interoperable (261386@main, 261436@main)
      • Implemented popover focusing steps (261400@main)
      • Implemented popovertarget & popovertargetaction attributes (261346@main)
      • Added an exception when calling dialog.show() on an open popover (261351@main)
    • Web API
      • Added support for Apple Pay in cross-origin iframes with allow=payment attribute (262616@main)
      • Implemented Priority Hints (261689@main)
      • Implemented the Response.json static method (261960@main)
    • Accessibility
      • Added support for code ARIA role (261640@main)
      • Implemented generic role mapping (261894@main)
  • Release Notes for Safari Technology Preview 168
    • https://webkit.org/blog/14106/release-notes-for-safari-technology-preview-168/
    • CSS
      • Added CSS Nesting serialization support for CSSOM (262177@main)
      • Added support for @supports font-format() (262305@main)
      • Implemented two-value syntax of font-size-adjust (262309@main, 262374@main)
      • Implemented CSSOM insertRule() on StyleRule (262394@main)
    • JavaScript
      • Added ImplementationVisibility to Wasm::Callee (262191@main)
      • Aligned RegExp V Flags Syntax errors with V8 (262017@main)
      • Applied the new display computation for digital in Intl.DurationFormat (262682@main)
    • Lockdown Mode
      • Disabled the Web Codecs API (262653@main)
    • Web API
      • Implemented URL.canParse() (262072@main)
  • Release Notes for Safari Technology Preview 169
    • https://webkit.org/blog/14135/release-notes-for-safari-technology-preview-169/
    • CSS
      • Implemented overflow-block and overflow-inline media query features (263088@main)
      • Implemented the from-font value for font-size-adjust (262800@main)
    • JavaScript
      • Added and optimized enumerator_put_by_val (263056@main)
      • Optimized Array#join's toString operation for Objects (263117@main)
      • Implemented megamorphic load IC (262872@main, 263200@main)
    • Popover
      • Renamed :open to :popover-open and removed :closed (262764@main)
    • Web API
      • Added customElements.getName method (263281@main)
      • Added missing service worker content filter check (262972@main)
  • Safari 16.5 Beta Release Notes | Apple Developer Documentation
  • Badging for Home Screen Web Apps
  • A quick introduction to the WPE WebKit Project
  • Introducing WebKit Documentation

Standard Positions

Other

Edge 動向

Stable: 113

Updates

Chakra

Other

WHATWG/W3C 動向

Draft

Other

TC39 動向

Meeting

3/21

  • Test262 funding status
  • Iterator helpers
  • Set methods: What to do about intersection order?
    • Set には内部的に順序がある
    • 集合の Intercection をしたばあい、 receive の順序を維持したまま後ろに追加されたい
    • V8/SM はそれができるが、 JSC は実装が linked list だからパフォーマンスが出ない
    • どうするか?
    • 引数とレシーバのサイズ(どっちが大きいか)によって結果が変わる
    • ちょっと奇妙な挙動だが、決定論的
  • Async Explicit Resource Management
    • 今は using await で提案されている
    • using await, await using, async using, using async で poll 中
    • Champion は await using でいきたい
    • これで stage 3 にいきたい
  • Decorator Metadata Update
    • Decorator に Metadata を載せたい
    • 複雑なため一度 Decorator からは外された
    • ユースケースによってはこれが必要
    • その実装方法について 3 つの案
    • Option 1 でコンセンサス

3/22

  • Import reflection update
  • Import assertions/attributes for Stage 3
    • Import Assertions は loading に関与しないので、例えば CSP は全部 script-src になる
    • これを指定したい。
    • が、そもそもそれはもう assertion ではない
    • import attributes に変えよう
    • でも ship しちゃってる互換性リスクは?
    • assert を非推奨にして with に移っていく予定。
  • Iterator.range for Stage 2
    • Number.range から rename
    • 賛否両論、とくに浮動小数の range どうするか
    • Stage 2 にするが引き続き議論
  • Float16Array for Stage 2 & 3
  • Decimal Stage 1 Update
    • 金融や科学でもユースケースあり
    • 実装方法がいくつかある
    • もうすこし調査が必要
  • Next steps for RegExp escaping
    • escape よりも template tag の方が良さそう
  • Type Annotations Proposal Update
    • Type in JS の方法として二つある
      • 型の消去
      • 型のチェック
    • 二つ目に手を出したい
    • でも、 3 ブラウザが拒否、型消去以外は受け入れられない
  • Type Annotations Delimiting Concerns
    • Type Annotation によって間違ったコードが型として消される場合があるよね
      • < > がジェネリクスになっちゃうとか
  • Await Dictionary for stage 1
    • const obj = { shape: await getShape(), color: await getColor() }
    • これが waterfall になるから、並行してやりたいけど、 Promise.all は面倒
    • Stage1

3/23

  • Shared Structs update
    • worker 間でシェアできる struct
    • GC heap allocatited だから SAB にはできない(?)
    • Google が MS と組んで Chromium にトライアルの開発をしている
  • Async Context
    • Async な Context
    • ユースケースをもっと説明する必要がある
    • Stage2
  • Promise.withResolvers
  • Quick Regex Escaping update
    • Security Concerns が解決したので RegExp.escape が使えそう
  • Temporal nanoseconds precision follow-up
    • nano 秒と micro 秒で議論してたが、基本は nano を返すようにようなった
  • Time Zone Canonicalization for Stage 1
    • よくわからん
    • Stage 1
      • Temporal.TimeZone.from('Asia/Calcutta').equals('Asia/Kolkata');
      • // => true
      • らしい
  • Class constructor and method parameter decorators
    • Decorator から分割された仕様
    • TS にはある機能なので入れたい
    • Stage 1
    • Stage 2 になるには function decorator を進める必要がある
  • Import reflection discussion continuation
    • 次回 Stage 3 をめざす
  • Async Explicit Resource Management again
    • 条件付き Stage 3

Proposals Diff

New Proposals

Other

WinterCG 動向

Meeting

IETF 動向

IETF116

WG

Other

CDN 動向

Cloudflare

Fastly

Akamai

Other

セキュリティ動向

周辺動向

イベント

Wrap Up

  • Chrome
    • 112
      • CSS Nesting
      • Skipping service worker no-op fetch handlers
    • 113
      • CSS linear() easing function
      • CSS image-set()
      • Headers.getSetCookie()
      • WebGPU
      • Private State Token
      • deprecate document.domain
      • First-party Sets
    • 114 Beta
      • CSS text-wrap: balance
      • BFCache NotRestored Reason
      • CHIPS
      • Popover
      • Background Blur API Origin Trial
    • DevTools 113
      • override network response headers
    • Ship
      • CSS display with multiple values
      • Partitioning Storage, Service Worker, Communication APIs
      • Scroll-driven Animations
      • URLSearchParams.has() value argument
      • Regexp v flag for HTML pattern
    • Prototype
      • Detect/Disable UA transitions
    • Experiment
      • Explicit Compile Hints with Magic Comments
      • Storage Buckets API
      • "is-cross-site" HTTP Cache Partitioning key
    • Deprecate and Remove
      • CSS zoom property
      • Remove Web SQL
      • deprecate unload event
    • web.dev
      • INP
      • Baseline
    • Chrome Developers
      • CSS layout and source order
    • Chromium blog
      • update on the lock icon
    • other blogs
      • INO to CWV in 2024
      • new TLDs
    • other
      • Jake Archibald leaving Google
  • Firefox
    • 112
      • right click to reveal password
      • inert
      • CSS math functions
      • CSS linear()
    • 113
      • Animated AVIF
      • CSS Level 4 color features
      • CSS color-mix()
      • :nth-child(of S)
      • scripting media feature
      • Compression Streams
    • Ship
      • Module Workers
      • rel=modulepreload
    • Prototype
      • String.isWellFormed()
      • Array.fromAsync
      • DNS over OHTTP
      • Font visibility restrictions in Private Browsing Mode
    • other
      • MDN blog
  • Safari
    • 16.4
      • Web Push on iOS
      • PWA improvements
      • Declacative Shadow DOM
      • CSS Color features
      • Media Queries Range syntax
      • @property
      • iframe lazy-loading
    • 16.5 Beta
      • CSS Nesting
    • TP 167
      • CSS Nesting
      • Priority Hints
      • Response.json()
    • TP 168
      • CSS Nesting serialization
      • @supports font-format()
      • URL.canParse()
    • TP 169
      • customElements.getName()
    • blog
      • WebKit Documentation
    • other
      • fantasai → Apple
  • W3C/WHATWG
    • other
      • seeking next CEO
      • AB election
      • Interop minutes
  • TC39
    • 2023/3 meeting
    • Iterator Helpers が三つに分割
    • Decorator Metadata Update
    • Import assertions が attributions に
    • RegExp escape を template tag に
    • Type Annotation を型チェックしたいが反対多数
    • Await Dictionary
    • Promise.withResolvers
  • WinterCG
    • AbortSignal.any()
    • ReadableStream.from(asynciterable)
  • IETF
    • IETF116
      • Cookiebis が WGLC 間近
      • Alt-Svc の DNS 版が必要そう
      • Resumable Uploads のエラー周り
      • Sidemeeting で Dictionary Compression
  • CDN 動向
  • セキュリティ動向
    • RSA Conference
  • 周辺動向
    • IPA サイト 404
    • Open Web Docs の API 名 rename
    • ARIA 版の caniuse