Chrome 96 ãªãªã¼ã¹ãã¼ãã¾ã¨ã
Published on
Chrome 96 ã®ãªãªã¼ã¹ãã¼ãé¢é£ã®æ å ±ãã¾ã¨ãã¾ããã
- https://developer.chrome.com/blog/new-in-chrome-96/
- https://developer.chrome.com/blog/new-in-devtools-96/
- https://developer.chrome.com/blog/deps-rems-96/
- https://www.chromestatus.com/features#milestone%3D96
- https://v8.dev/blog/v8-release-96
New In Chrome (Chrome 96)
Chrome 96ã§æ°ãã追å ãããæ©è½ã§ãã
Manifest id for PWAs
ä»ã¾ã§ã¯PWAãã¤ã³ã¹ãã¼ã«ããéããã©ã¦ã¶å´ã§PWAãä¸æã«èå¥ããããã®æ確ãªæ¹æ³ãåå¨ãã¦ãããããã©ã¦ã¶ã®å¤æã«å§ãããã¦ãã¾ããã(å®éãã©ã¦ã¶ã«ãã£ã¦PWAãããã§ã¹ããã¡ã¤ã«ã®start_url
ãå©ç¨ããã¦ãããããããã§ã¹ããã¡ã¤ã«èªä½ã®ãã¹ãªã©ãå©ç¨ãããããã¦ãã¾ã)
ä»åã®ã¢ãããã¼ãã«ããããããã§ã¹ããã¡ã¤ã«å
ã§PWAã®èå¥åãid
ããããã£ã¨ãã¦æ示çã«å®ç¾©ã§ããããã«ãªãã¾ããã
ãããã§ã¹ãã«id
ããããã£ã追å ããã¨ããããã§ã¹ããã¡ã¤ã«ã®start_url
ããããã£ããããã§ã¹ããã¡ã¤ã«å ´æã¸ä¾åããªããªãããããã®ãã£ã¼ã«ããæ´æ°ãããã¨ã容æã«ãªãã¾ãã
ãµãã¼ãç¶æ³ã¨äºå®
ãã¹ã¯ãããã®Chromiumæè¼ãã©ã¦ã¶
- Chrome 96ããidããããã£ããµãã¼ãããã¾ãã
ã¢ãã¤ã«ãã©ã¦ã¶(ãããã§ã¹ããã¡ã¤ã«ã®URLãã¦ãã¼ã¯IDã¨ãã¦ä½¿ç¨ãã¦ãããã®)
- 2022å¹´ååã«ãµãã¼ããéå§ãããäºå®ã§ãã
idããããã£ã®è¿½å ã«ã¤ãã¦
ãã§ã«éç¨ãã¦ããPWAã®ãããã§ã¹ããã¡ã¤ã«ã«idã追å ããå ´å
- ãã©ã¦ã¶ããå²ãå½ã¦ãããIDã使ç¨ããå¿ è¦ãããã¾ãã
- å²ãå½ã¦ããã¦ããID ã¯ãDev Tools ã®
Application
ããã«ã®Manifest
ãã¤ã³ã§ç¢ºèªã§ãã¾ãã
æ°ããPWAãä½æããå ´å
- idããããã£ã«å¥½ããªæååãè¨å®ãããã¨ãã§ãã¾ãããå°æ¥çã«å¤æ´ãããã¨ã¯ã§ããªãã®ã§æ éã«é¸ãã§ãã ããã
URL protocol handlers for PWAs
ä»ã¾ã§webãã¼ã¸ã§å©ç¨å¯è½ã ã£ãURL protocol handler
ã®ç»é²ãChrome 96ããã¯PWAã§ãã¤ã³ã¹ãã¼ã«æã«è¡ããããã«ãªãã¾ããã
PWAã®å ´åã¯ä»¥ä¸ã®ããã«protocol_handlers
ããããã£ããããã§ã¹ããã¡ã¤ã«ã«è¨è¼ãããã¨ã§ç»é²ã§ãã¾ãã
{
...
"protocol_handlers": [
{
"protocol": "web+tea",
"url": "/tea?type=%s"
},
{
"protocol": "web+coffee",
"url": "/coffee?type=%s"
}
]
}
ãããããprotocol
ã«ã¯ç»é²ããããããã³ã«åããurl
ã«ã¯ãã®ãããã³ã«ã®URLãã¯ãªãã¯ããã¨ãã«éãã¦ã»ããURLãæå®ãã¾ãããã ãããããã®ãããã³ã«ç»é²ã«ã¯ããã¤ãã®å¶éãããã¾ãã詳細ãç»é²æ¹æ³ãªã©ã¯ãã¡ããåç
§ãã¦ãã ããã
Priority hints (origin trial)
ãã©ã¦ã¶ããã¼ã¸å
ãªã½ã¼ã¹(image
,script
,CSS
)ãèªã¿è¾¼ãéã®åªå
度ãã³ãã追å ã§ããæ©è½ãOrigin Trialsã¨ãã¦å®é¨çã«å©ç¨ã§ããããã«ãªãã¾ããã
å
·ä½çã«ã¯ä»¥ä¸ã®ãããªå½¢ã§å¯¾è±¡ã¨ãªããªã½ã¼ã¹ã«importance
å±æ§ã§åªå
度(high
,low
,auto
ããé¸æ)ãæå®ãã¾ãã
<!-- We don't want a high priority for this above-the-fold image -->
<img src="/not-important.svg" importance="low">
<!-- Initiate an early fetch for a resource, but de-prioritize it -->
<link rel="preload" href="/script.js" as="script" importance="low">
<script>
fetch('https://example.com/', {importance: 'high'})
.then(data => {
// Trigger a high priority fetch
});
</script>
ä»åã®ãªãªã¼ã¹ãã¼ãã§ã¯ Google Flights ãã¼ã¸ã§ãPriority hitns
ã®æç¡ã«ãããLCP(æ大è¦è¦ã³ã³ãã³ãã®è¡¨ç¤ºæé)ã®æ¯è¼ãè¡ã£ãçµæãç´¹ä»ãã¦ãã¾ãããã®æ¯è¼ã§ã¯èæ¯ç»åã®img
ã¿ã°ã«å¯¾ãã¦importance="high"
ãæå®ãããã¨ã§LCPã 2.6s ãã 1.9s ã«åä¸ããã¨ãã¦ãã¾ãã
æ©è½è©³ç´°ãOrigin Trialã¨ãã¦ç»é²ããæ¹æ³ããµã³ãã«ãªã©ã«ã¤ãã¦ã¯Optimizing resource loading with Priority Hintsãåèã«ãã¦ãã ããã
Emulate Chrome 100 in the UA string
æ¥å¹´ã®æ©ã段éã§Chromeã¯ãã¼ã¸ã§ã³100ããªãªã¼ã¹ãããäºå®ã§ããããã以éï¼æ¡ã®ãã¼ã¸ã§ã³çªå·ã«çªå
¥ãã¾ãããã®ããããã¼ã¸ã§ã³çªå·ãå©ç¨ãã¦ããã³ã¼ããUserAgent
ããã¼ã¹ãã¦ããã³ã¼ããï¼æ¡ã®ãã¼ã¸ã§ã³çªå·ã§ãæ£ããåä½ãããã¨ãä¿è¨¼ããå¿
è¦ãããã¾ãã
ããããæ¤è¨¼ããããChrome 96ã§ã¯#force-major-version-to-100
ã¨ãããã©ã°ã追å ããã¾ããããã®ãã©ã°ãæå¹ã«ããã¨Chromeã®ãã¼ã¸ã§ã³ã ãã100ã«ãªã£ãç¶æ
ãã·ãã¥ã¬ã¼ããããã¨ãã§ãããã¼ã¸ã§ã³çªå·ãæ±ãåä½ã«åé¡ããªããã®æ¤è¨¼ãè¡ããã¨ãã§ãã¾ãã
詳ãã㯠Force Chrome major version to 100 in the User-Agent string. ãåç §ãã¦ãã ããã
Chrome Dev Summit
Chrome Dev Summitã«ããããã¹ã¦ã®åç»ãã³ã³ãã³ãã¯ãªã³ã©ã¤ã³ã§è¦è´å¯è½ã§ãã詳ãã㯠Chrome Dev Summit site ãã覧ãã ãããã¾ãkeynoteãé ä¿¡ãè¦éããæ¹ã¯Chrome Developers YouTube Channelã® CDS Playlist ãåããã¦åç §ãã¦ãã ããã
ãã®ä»
Back/forward cache
ã®æ©è½ãstable
ã«ãªãã¾ããã
- ããã«ããFireFoxãSafariã¨æåãæãããã¨ãã§ããããã«ãªãã¾ããã
What's New In DevTools (Chrome 96)
DevTools ã«ã¤ãã¦ã¯ãã¡ãã®æ¥æ¬èªè¨³ãåç §ãã ããã
https://developer.chrome.com/ja/blog/new-in-devtools-96/
Deprecations and removals in Chrome 96
Chrome96ã§éæ¨å¥¨ã«ãªã£ããã®ããããã¯åé¤ããããã®ã§ã
https://developer.chrome.com/blog/deps-rems-96/
The "basic-card" method of PaymentRequest API
PaymentRequestãå¼ã³åºãã¨ãã«æå®ã§ããbasic card
method(ãã©ã¦ã¶ã§ä¿åããã¦ããã«ã¼ãæ
å ±ã使ãæ¹æ³)ãéæ¨å¥¨ã«ãªãã¾ãã
Chrome 96ã§ã¯basic card
ã使ã£ã¦ããã¨DevToolsã®Consoleã«warningã¡ãã»ã¼ã¸ã表示ããã¾ããã¾ããChrome 100ã§ã¯å©ç¨ã§ããªããªãã¾ããbasic card
ã使ã£ã¦ããå ´åã¯å¥ã®methodã«å¤æ´ããããã«æ©ãã«å¯¾å¿ããã»ããè¯ãããã§ãã
https://blog.chromium.org/2021/10/sunsetting-basic-card-payment-method-in.html
ãã®ä»Chrome Platform Statusã«è¨è¼ããã¦ãããã®
https://www.chromestatus.com/features#milestone%3D96
Adding captureTimestamp and senderCaptureTimeOffset to RTCRtpContributingSource.
WebRTC APIã®ä¸ã¤ã§ããRTCRtpContributingSource
ã«ãªã¼ãã£ãªã¨ãããªãã¬ã¼ã ã®åæãend-to-endã®é
延ã測å®ã§ããcaptureTimestamp
ã¨senderCaptureTimeOffset
ããããã£ã追å ããã¾ãã
https://www.chromestatus.com/feature/5728533701722112
CSS @counter-style descriptor 'speak-as'
@counter-style
ã使ã£ãéã«ã«ã¦ã³ã¿ã¼ãé³å£°å½¢å¼ã§ã©ã®ããã«è¡¨ãããããæå®ã§ããããããã£speak-as
ã追å äºå®ã§ãç¾ç¶ã¯In developer trial
ã§è©¦é¨éç¨ä¸ã§ãã
https://www.chromestatus.com/feature/5687059677184000 https://developer.mozilla.org/en-US/docs/Web/CSS/@counter-style/speak-as
Clipboard: Preserve PNG metadata
ã¯ãªãããã¼ãããPNGãèªã¿è¾¼ãéã«ãµãã¿ã¤ãºãããªããªãã¾ãã (åã¾ã§ã¯ã¡ã¿ãã¼ã¿ãåé¤ãã¦ãã¾ãã)
https://www.chromestatus.com/feature/5629962485760000
Cross-Origin-Embedder-Policy: credentialless
COEPã«credentialless
ã追å ã§ããããã«ãªãã¾ããã
credentialless
ãæå®ããã¨ãµã¼ãã¼ã¸ã®ãªã¯ã¨ã¹ãæã«èªè¨¼æ¹æ³(CookieãAuthorizationããããªã©)ãçãããããã«ãªãã¾ãã
https://www.chromestatus.com/feature/4918234241302528
åè: SharedArrayBuffer ã¨é渡æ㪠cross-origin isolation ã®è©± https://blog.agektmr.com/2021/11/cross-origin-isolation.html
Disable propagation of body style to viewport when contained
ã«ã¼ããbodyè¦ç´ ã«contain: none
以å¤ã®å¤ã使ç¨ããã¨bodyããã®CSSããããã£ã®ä¼æ¬ãç¡å¹ã«ãªãã¾ãã
https://www.chromestatus.com/feature/5663240823504896
EME MediaKeySession Closed Reason
MediaKeySessionã®closeã¡ã½ãããMediaKeySessionClosedReason
ãè¿ãããã«ãªãã¾ãã
sessionãéããããçç±(internal-error
, closed-by-application
ãªã©)ãåå¾ãã¦ãã³ããªã³ã°ã§ããããã«ãªãã¾ãã
const keySystemAccess = await navigator.requestMediaKeySystemAccess(
// ...
);
// Create media keys.
const mediaKeys = await keySystemAccess.createMediaKeys();
// Create a key session.
keySession = mediaKeys.createSession();
// Generate a fake license request.
await keySession.generateRequest("webm", new Uint8Array([1, 2, 3]));
keySession.closed.then((reason) => {
// Reason is either undefined if not supported, "internal-error",
// "closed-by-application", "release-acknowledged",
// "hardware-context-reset", or "resource-evicted".
log(`Media key session was closed. Reason: "${reason}".`);
});
https://www.chromestatus.com/feature/5632124143009792
åè: EME MediaKeySession Closed Reason Sample https://googlechrome.github.io/samples/media/key-session-closed-reason.html
HTTP->HTTPS redirect for HTTPS DNS records
DNSã®HTTPSã¬ã³ã¼ããå¾æ¥ã®Aã¬ã³ã¼ããAAAAã¬ã³ã¼ãã¨ä¸ç·ã«ç §ä¼ãã解æããããã«ãªãã¾ãã HTTPSã¬ã³ã¼ãã追å ããChromeããããåä¿¡ããã¨Chromeã¯å¸¸ã«ãã®ã¦ã§ããµã¤ãã«HTTPSã§æ¥ç¶ãã¾ãã
https://www.chromestatus.com/feature/5485544526053376
InteractionID in EventTiming
Event Timing APIã®PerformanceEventTimingã«interactionId
ã追å ããã¾ããã
ã¦ã¼ã¶ã¼ã®æä½ã«å¯¾ãã¦é¢é£ããã¤ãã³ã(ãã¨ãã°ã¦ã¼ã¶ã¼ãã¿ããããæã«ã¯pointerdownâmousedownâpointerupâmouseupâclickã®ã¤ãã³ããçºçãã)ã¯interactionId
ãåãã«ãªãã¾ãã
https://www.chromestatus.com/feature/5674224959094784
Media Queries: prefers-contrast feature
OSãè¨å®ãã¦ããè²ã®ã³ã³ãã©ã¹ãè¨å®ã«å¯¾å¿ããã¡ãã£ã¢ã¯ã¨ãªprefers-contrast
ã追å ããã¾ããã
.contrast {
/* ... */
}
@media (prefers-contrast: more) {
.contrast {
/* OSã§ã³ã³ãã©ã¹ãã®è¨å®ãé«ãå ´åã«é©å¿ããã */
}
}
@media (prefers-contrast: less) {
.contrast {
/* OSã§ã³ã³ãã©ã¹ãã®è¨å®ãä½ãå ´åã«é©å¿ããã */
}
}
https://www.chromestatus.com/feature/5646323212615680
åè: prefers-contrast(MDN)
https://developer.mozilla.org/ja/docs/Web/CSS/@media/prefers-contrast
Support calc(<number>
) where only accepts <integer>
cssã®calc()
é¢æ°ã§integerããåãåããªããããªå ´æã§ãnumberãæå®ã§ããããã«ãªãã¾ããã
ãã£ã¨ãè¿ãæ´æ°ã«ä¸¸ãããã¾ãã
ä¾ãã°ãä¸è¨ã¯ããããcolumn-count: 1
ã¨å義ã§ãã
.example {
column-count: calc(1.2);
column-count: calc(0.6);
}
https://www.chromestatus.com/feature/5656451751084032
åè: https://drafts.csswg.org/css-values-4/#calc-range
V8 release v9.6
V8ã®ã¢ãããã¼ãæ å ±ã§ãã
WebAssembly : Reference Types
WebWebAssemblyã§ãããã¼ã¶ã«ã¨ãã¦ææ¡ããã¦ããReference TypeãV8 v9.6ãããµãã¼ãããã¾ãã
ç¾ç¶ãWASMã®é¢æ°ã¯å¼æ°ãæ»ãå¤ã«ãæ´æ°ãæµ®åå°æ°ç¹æ°ã¨ãã£ãããªããã£ããªåããæ±ãã¾ããããReference Types
æ©è½ã¯ããã«å ãã¦ãJavaScriptãªãã¸ã§ã¯ãã¸ã®åç
§ã渡ããããã«ãããã®ã§ãã
è¨äºã«é¢ããå ±åãªã©ã¯ãã¡ããã