หน่วยวิวพอร์ต CSS ใหม่, API การจัดการข้อมูลเข้าสู่ระบบแบบรวมศูนย์, แบบอักษร COLRv1 แบบตัวแปร และอื่นๆ
การเปลี่ยนแปลงที่อธิบายไว้ด้านล่างจะมีผลกับ Chrome เวอร์ชันเบต้าใหม่ล่าสุดสำหรับ Android, ChromeOS, Linux, macOS และ Windows เว้นแต่จะระบุไว้เป็นอย่างอื่น เรียนรู้เพิ่มเติมเกี่ยวกับฟีเจอร์ที่แสดงรายการไว้ที่นี่ผ่านลิงก์ที่ให้ไว้หรือจากรายการใน ChromeStatus.com Chrome 108 เป็นเวอร์ชันเบต้าตั้งแต่วันที่ 27 ตุลาคม 2022 คุณดาวน์โหลดเวอร์ชันล่าสุดได้จาก Google.com สำหรับเดสก์ท็อปหรือ Google Play Store ใน Android
CSS
Chrome 108 มีฟีเจอร์ CSS ใหม่ๆ มากมาย
CSS Overflow สำหรับองค์ประกอบที่ถูกแทนที่
Chrome จะเริ่มเปิดตัวการเปลี่ยนแปลงที่อนุญาตให้นักพัฒนาแอปใช้พร็อพเพอร์ตี้ overflow
ที่มีอยู่ซึ่งมีองค์ประกอบที่ถูกแทนที่ซึ่งแสดงผลนอกกล่องเนื้อหา เมื่อใช้ร่วมกับ object-view-box
คุณจะใช้เพื่อสร้างรูปภาพที่มีแสงหรือเงาที่กำหนดเองได้ แต่ก็มีลักษณะการทำงานของการล้นด้วยหมึกที่เหมาะสมเช่นเดียวกับเงา CSS
การเปลี่ยนแปลงนี้อาจเป็นการเปลี่ยนแปลงที่ส่งผลกับส่วนอื่นในระบบ ดูข้อมูลเพิ่มเติมได้ในการเปลี่ยนแปลงกับองค์ประกอบที่ถูกแทนที่
หน่วยวิวพอร์ตขนาดเล็ก ขนาดใหญ่ ไดนามิก และตรรกะ
การดำเนินการนี้จะเพิ่มการรองรับหน่วยขนาดเล็ก (svw
, svh
, svi
, svb
, svmin
, svmax
), ขนาดใหญ่ (lvw
, lvh
, lvi
, lvb
, lvmin
, lvmax
), แบบไดนามิก (dvw
, dvh
, dvi
, dvb
, dvmin
, dvmax
) และ vi
) และตรรกะ (vi
)vb
การรองรับ CSS break-after
, break-before
และ break-inside
รองรับค่าการหลีกเลี่ยงของคุณสมบัติการกระจายตัวของ CSS break-before
, break-after
และ break-inside
เมื่อพิมพ์ ค่านี้จะบอกเบราว์เซอร์ให้หลีกเลี่ยงการขัดข้องก่อน หลัง หรือภายในองค์ประกอบที่ใช้เบราว์เซอร์นั้น ตัวอย่างเช่น CSS ต่อไปนี้จะช่วยหลีกเลี่ยงตัวเลขที่เสียหายในตัวแบ่งหน้า
figure {
break-inside: avoid;
}
มีการเพิ่มฟีเจอร์นี้เนื่องจาก Chrome 108 เพิ่มการรองรับการพิมพ์ LayoutNG
การจัดข้อความรายการพื้นฐานล่าสุด
ฟีเจอร์นี้ช่วยให้นักพัฒนาแอปสามารถจัดเรียงรายการภายในเลย์เอาต์แบบยืดหยุ่นหรือแบบตารางกริดตามเส้นฐานล่าสุด แทนที่จะเป็นแบบแรก โดยทําผ่านพร็อพเพอร์ตี้ต่อไปนี้
align-items: last baseline;
justify-items: last baseline;
align-self: last baseline;
justify-self: last baseline;
ContentVisibilityAutoStateChanged
เหตุการณ์
เหตุการณ์ที่เริ่มทำงานในองค์ประกอบที่มี content-visibility: auto
เมื่อสถานะการแสดงผลขององค์ประกอบมีการเปลี่ยนแปลงเนื่องจากแอตทริบิวต์ที่ทำให้องค์ประกอบดังกล่าวเกี่ยวข้องกับผู้ใช้
กรณีการใช้งานนี้มีไว้เพื่อให้นักพัฒนาแอปควบคุมได้มากขึ้นว่าจะหยุดหรือเริ่มแสดงผลเมื่อใดเพื่อตอบสนองต่อ User Agent ที่หยุดหรือการเริ่มแสดงผลของแผนผังย่อยที่มองเห็นได้ เช่น นักพัฒนาซอฟต์แวร์อาจต้องการหยุดการอัปเดต React ในแผนผังย่อยที่ไม่ได้แสดงผลโดย User Agent ในทำนองเดียวกัน นักพัฒนาซอฟต์แวร์อาจต้องการหยุดการอัปเดตสคริปต์อื่นๆ (เช่น การอัปเดต Canvas) เมื่อ User Agent ไม่แสดงผลองค์ประกอบ
API ของเว็บ
การจัดการการรับรองแบบรวมศูนย์ (เดิมคือ WebID)
Federated Credential Management API ช่วยให้ผู้ใช้นำข้อมูลประจำตัวแบบรวมศูนย์ของตนมาเข้าสู่ระบบเว็บไซต์ในลักษณะที่เข้ากันได้กับการปรับปรุงความเป็นส่วนตัวของเบราว์เซอร์
ส่วนขยายแหล่งที่มาของสื่อในผู้ปฏิบัติงาน
เปิดใช้งานการใช้ API ของ Media Source Extensions (MSE) จากบริบท DedicatedWorker เพื่อปรับปรุงประสิทธิภาพในการบัฟเฟอร์สื่อสำหรับการเล่นโดย HTMLMediaElement ในบริบทของ Windows หลัก การสร้างออบเจ็กต์ MediaSource ในบริบท DedicatedWorker อาจทำให้แอปพลิเคชันได้รับ MediaSourceHandle แล้วโอนแฮนเดิลนั้นไปยังเทรดหลักเพื่อใช้ในการแนบ HTMLMediaElement บริบทที่สร้างออบเจ็กต์ MediaSource อาจใช้ในการบัฟเฟอร์สื่อ
Sec-CH-Prefers-Reduced-Motion
ส่วนหัวคำแนะนำของไคลเอ็นต์สำหรับฟีเจอร์สื่อค่ากำหนดของผู้ใช้
ส่วนหัวคำแนะนำไคลเอ็นต์สำหรับฟีเจอร์สื่อที่ต้องการของผู้ใช้จะกำหนดชุดส่วนหัวคำแนะนำไคลเอ็นต์ HTTP รอบๆ ฟีเจอร์สื่อค่ากำหนดของผู้ใช้ ตามที่กำหนดโดยคำค้นหาสื่อระดับ 5 หากใช้เป็น Critical Client Hints ส่วนหัวเหล่านี้จะช่วยให้เซิร์ฟเวอร์เลือกทางเลือกต่างๆ ได้อย่างชาญฉลาด เช่น CSS Ininline Sec-CH-Prefers-Reduced-Motion
แสดงค่ากำหนด prefers-reduced-motion
ของผู้ใช้
ผู้อ่าน BYOB ของ WebTransport
รองรับเครื่องอ่าน BYOB(bring-your-own-buffer) สำหรับ WebTransport เพื่อให้อ่านได้ในบัฟเฟอร์ที่นักพัฒนาซอฟต์แวร์มีให้ เครื่องอ่าน BYOB สามารถลดบัฟเฟอร์สำเนาและลดการจัดสรรหน่วยความจำได้
ไวลด์การ์ดในต้นทางนโยบายสิทธิ์
ข้อกำหนดของนโยบายสิทธิ์จะกำหนดกลไกที่ให้นักพัฒนาซอฟต์แวร์เลือกเปิดและปิดการใช้งานฟีเจอร์และ API ต่างๆ ของเบราว์เซอร์ได้ ความสามารถอย่างหนึ่งของกลไกนี้ทำให้เปิดใช้ฟีเจอร์ได้เฉพาะในต้นทางที่มีการแจกแจงอย่างชัดแจ้ง (เช่น https://foo.com/
) เท่านั้น กลไกนี้ไม่ยืดหยุ่นพอสำหรับการออกแบบ CDN บางแห่ง ซึ่งแสดงเนื้อหาผ่านต้นทางที่อาจโฮสต์อยู่ในโดเมนย่อยที่เป็นไปได้หลายร้อยรายการ
ดังนั้น ฟีเจอร์นี้จะเพิ่มการรองรับไวลด์การ์ดในนโยบายสิทธิ์ที่มีโครงสร้าง เช่น SCHEME://*.HOST:PORT
(เช่น https://*.foo.com/
) ซึ่งจะสร้างต้นทางที่ถูกต้องจาก SCHEME://HOST:PORT
(เช่น https://foo.com/
) ซึ่งกำหนดให้ HOST เป็นโดเมนที่จดทะเบียนได้ ซึ่งหมายความว่า https://*.bar.foo.com/
จะใช้ได้ แต่ https://*.com/
จะไม่ทำงาน (หากต้องการอนุญาตให้ทุกโดเมนใช้ฟีเจอร์นี้ได้ คุณควรมอบสิทธิ์ให้กับ *
)
เมธอดการซิงค์สำหรับ AccessHandles ใน File System Access API
อัปเดตเมธอด flush()
, getSize()
และ truncate()
แบบไม่พร้อมกันใน FileSystemSyncAccessHandle
ใน File System Access API เป็นเมธอดแบบซิงโครนัส
ปัจจุบัน FileSystemSyncAccessHandle
มีทั้งวิธีการซิงค์และอะซิงโครนัส ซึ่งขัดขวางประสิทธิภาพและความสามารถในการใช้งาน โดยเฉพาะสำหรับแอปพลิเคชันที่พอร์ต C/C++ ไปเป็น Wasm การอัปเดตนี้จะทำให้การใช้งาน API มีความสอดคล้องกันและปรับปรุงประสิทธิภาพสำหรับไลบรารีที่ใช้ Wasm ด้วย
การเปลี่ยนแปลงนี้อาจเป็นการเปลี่ยนแปลงที่ส่งผลกับส่วนอื่นในระบบ อ่านข้อมูลเพิ่มเติมได้ในการเปลี่ยนแปลงที่ส่งผลกับส่วนอื่นในระบบ: วิธีการซิงค์สำหรับ AccessHandles
UI แบบมีเงื่อนไขของ WebAuthn
UI แบบมีเงื่อนไขสำหรับ WebAuthn ใช้ได้ใน Windows 22H2 ขึ้นไป, macOS และ Android P ขึ้นไป นอกจากนี้ยังมีการรีเฟรช UI WebAuthn บนแพลตฟอร์มเดสก์ท็อปด้วย
การตรวจหาแบบอักษรและฟีเจอร์แบบอักษร COLRv1
รองรับแบบอักษร COLRv1
แบบอักษรเวกเตอร์สี COLRv1 ได้รับการสนับสนุนตั้งแต่ Chrome 98 แต่รุ่นแรกนี้รองรับเฉพาะฟังก์ชันการทำงานแบบคงที่ของตาราง COLRv1 ข้อกำหนด COLRv1 กำหนดการผสานรวมกับรูปแบบ OpenType ซึ่งอนุญาตให้แก้ไขคุณสมบัติแบบอักษรของการไล่ระดับสีและการเปลี่ยนรูปแบบด้วยการเปลี่ยนพารามิเตอร์แกนตัวแปร ขั้นตอนที่ 2 นี้จะรองรับรูปแบบดังกล่าวกับ COLRv1
ส่วนขยายเงื่อนไข font-tech()
และ font-format()
รายการไปยัง CSS @supports
การใช้ font-tech()
และ font-format()
ร่วมกับ CSS @supports จะช่วยให้ตรวจจับเทคโนโลยีแบบอักษรและการรองรับรูปแบบได้ รวมถึงการเพิ่มประสิทธิภาพเนื้อหาแบบต่อเนื่อง ตัวอย่างต่อไปนี้คือการทดสอบการรองรับแบบอักษร COLRv1
@supports font-tech(color-COLRv1) {
}
การรองรับฟังก์ชัน tech()
ในข้อบ่งชี้ @font-face src:
CSS Fonts ระดับ 4 เป็นวิธีเพิ่มเติมในการเลือกหรือกรองทรัพยากรแบบอักษร เปิดตัวฟังก์ชัน tech()
ซึ่งช่วยให้ส่งรายการเทคโนโลยีแบบอักษรที่ BLOB แบบอักษรที่เกี่ยวข้องนี้ต้องใช้ในการทำงาน User Agent จะเลือกทรัพยากรที่เหมาะสมรายการแรก
Chrome บน Android
ขณะนี้ Android OSK ปรับขนาดวิวพอร์ตภาพโดยค่าเริ่มต้น
แป้นพิมพ์บนหน้าจอของ Android ปรับขนาดวิวพอร์ตภาพโดยค่าเริ่มต้นแทนบล็อกแรกที่มี ผู้เขียนสามารถเลือกไม่ใช้การตั้งค่านี้ได้โดยใช้คีย์เมตาวิวพอร์ตของ interactive-widget
ใหม่
ช่วงทดลองใช้จากต้นทาง
Chrome รุ่นนี้มีการทดลองใช้ต้นทางใหม่ 2 รายการ
ข้อมูลระบุตัวตนของผู้ขายในเหตุการณ์ canmakepayment
เหตุการณ์ Service Worker ของ canmakepayment
ช่วยให้ผู้ขายทราบว่าผู้ใช้มีบัตรอยู่ในแอปการชำระเงินที่ติดตั้งไว้หรือไม่ ซึ่งจะส่งข้อมูลต้นทางและข้อมูลที่กําหนดเองของผู้ขายไปยัง Service Worker จากต้นทางของแอปการชำระเงินโดยไม่มีการแจ้งเตือน การสื่อสารข้ามต้นทางนี้จะเกิดขึ้นเมื่อมีการสร้าง PaymentRequest
ใน JavaScript ไม่ต้องใช้ท่าทางสัมผัสของผู้ใช้ และไม่แสดงอินเทอร์เฟซผู้ใช้ การทดลองของนักพัฒนาแอปสำหรับการนำช่องข้อมูลประจำตัวออกจาก "canmakepayment" สามารถเปิดใช้กิจกรรมผ่าน: chrome://flags/#clear-identity-in-can-make-payment
การเปิดใช้งาน Flag นี้จะทำให้ช่องข้อมูลประจำตัวใน "canmakepayment" ว่างเปล่า เหตุการณ์ (และ IS_READY_TO_PAY
Intent ของ Android)
ดูข้อมูลเพิ่มเติมในการอัปเดตลักษณะการทำงานของเหตุการณ์ CanMakePayment ของ Payment Handler API
Back-Forward Cache NotRestoredReason API
NotRestoredReason API จะรายงานรายการเหตุผลที่หน้าเว็บไม่แสดงผลจาก BFcache ในโครงสร้างเฟรมแบบต้นไม้ผ่าน Performance NavigationTiming API
หน้าต่างๆ อาจถูกบล็อกจาก BFcache ด้วยเหตุผลต่างๆ เช่น เหตุผลตามที่กำหนดและเหตุผลที่เกี่ยวข้องกับการใช้งานเบราว์เซอร์โดยเฉพาะ นักพัฒนาซอฟต์แวร์สามารถรวบรวมอัตรา Hit ของ BFCache บนเว็บไซต์ของตนโดยใช้พารามิเตอร์ของตัวแฮนเดิลการแสดงหน้าเว็บที่มีอยู่และ PerformanceNavigationTiming.type(back-forward)
API นี้ช่วยให้เว็บไซต์รวบรวมข้อมูลเหตุผลที่ไม่ใช้ BFCache ในการนำทางตามประวัติได้ เพื่อให้เว็บไซต์ดำเนินการกับเหตุผลแต่ละข้อและทำให้หน้าเว็บเข้ากันได้กับ BFCache
การเลิกใช้งานและการนำออก
Chrome เวอร์ชันนี้แนะนำการเลิกใช้งานและการนำออกตามที่ระบุไว้ด้านล่าง ไปที่ ChromeStatus.com เพื่อดูรายการการเลิกใช้งานที่วางแผนไว้ การเลิกใช้งานปัจจุบัน และการนำออกก่อนหน้านี้
การเลิกใช้งาน
Chrome รุ่นนี้เลิกใช้งานฟีเจอร์เดียว
เลิกใช้งานและนำ window.defaultStatus
และ window.defaultstatus
ออก
API เหล่านี้คือ API ที่ไม่ได้มาตรฐานและไม่ได้เปิดใช้งานโดยเบราว์เซอร์ทั้งหมด และไม่มีผลต่อการทำงานของเบราว์เซอร์ ซึ่งจะเป็นการทำความสะอาดและลบสัญญาณฟิงเกอร์ปรินต์ที่อาจเกิดขึ้น
เดิมทีมีการใช้ไอคอนเหล่านี้เพื่อแก้ไข/ควบคุม "แถบสถานะ" ที่ด้านล่างของหน้าต่างเบราว์เซอร์ อย่างไรก็ตาม แท็กดังกล่าวไม่เคยส่งผลกระทบใดๆ ต่อแถบสถานะของ Chrome และไม่ใช่แอตทริบิวต์ที่เป็นมาตรฐาน Gecko ไม่สนับสนุนแอตทริบิวต์เหล่านี้ตั้งแต่เวอร์ชัน 23 WebKit ยังคงรองรับแอตทริบิวต์เหล่านี้ แอตทริบิวต์ window.status
ที่เกี่ยวข้องเป็นมาตรฐานแล้ว แต่ก็ต้องไม่มีผลกระทบต่อแถบสถานะหน้าต่างด้วย
การนำออก
Chrome รุ่นนี้จะนำฟีเจอร์ 4 รายการออก
นำ ImageDecoderInit.premultiplyAlpha
ออก
ฟีเจอร์นี้ไม่ส่งผลกระทบที่สังเกตได้ใน Use Case หลัก แต่อาจจำกัดการใช้งานในลักษณะที่ไม่เหมาะสม ดูรายละเอียดเพิ่มเติมในปัญหานี้ ตามความเห็นพ้องของตัวแก้ไขข้อกำหนดของ WebCodecs และการขาดการใช้งาน (0.000000339% - 0.00000687% ของการโหลดหน้าเว็บต่อตัวนับการใช้งานใน M106)
นำ navigateEvent.restoreScroll()
ออก
กำลังแทนที่ restoreScroll()
ด้วย navigateEvent.scroll()
scroll()
ทำงานในลักษณะเดียวกัน เว้นแต่ว่าจะอนุญาตให้นักพัฒนาซอฟต์แวร์ควบคุมเวลาในการเลื่อนสำหรับการนำทางแบบไม่ข้ามผ่าน (scroll()
ทำงานเมื่อการเลื่อนไม่ใช่การคืนค่า จึงมีการเปลี่ยนชื่อตามการเปลี่ยนแปลงลักษณะการทำงาน)
นำ navigateEvent.transitionWhile()
ออก
transitionWhile()
จะแทนที่ด้วย navigateEvent.intercept()
เนื่องจากข้อบกพร่องในการออกแบบที่รายงานโดยนักพัฒนาแอป Intercept() ทำงานแทบจะเหมือนกันกับ conversionและลองอีกครั้ง แต่แทนที่จะรับพารามิเตอร์ Promise ที่จำเป็น จะมีการใช้ฟังก์ชันของตัวแฮนเดิลที่ไม่บังคับซึ่งแสดงผล Promise วิธีนี้จะช่วยให้เบราว์เซอร์ควบคุมได้ว่าตัวแฮนเดิลจะทำงานเมื่อใด ซึ่งทำได้ง่ายกว่าและง่ายกว่าสำหรับ transitionWhile()
นำ googIPv6
ของ WebRTC mediaConstraint ออก
คุณสามารถใช้ "googIPv6: false"
เพื่อปิดใช้การสนับสนุน IPv6 ใน WebRTC ดังตัวอย่างต่อไปนี้
new RTCPeerConnection({}, {mandatory:{googIPv6:false}});
IPv6 มีการเปิดใช้งานโดยค่าเริ่มต้นมาหลายปีแล้ว และเราก็ไม่ควรจะปิดไม่ได้ นี่เป็น API เดิมที่ไม่มีในข้อกำหนด