Chrome 112 เบต้า

การซ้อน CSS, องค์ประกอบภาพเคลื่อนไหว และพารามิเตอร์ผู้ส่งสำหรับตัวสร้าง FormData

การเปลี่ยนแปลงที่อธิบายไว้ด้านล่างจะมีผลกับ Chrome เวอร์ชันเบต้าใหม่ล่าสุดสำหรับ Android, ChromeOS, Linux, macOS และ Windows เว้นแต่จะระบุไว้เป็นอย่างอื่น เรียนรู้เพิ่มเติมเกี่ยวกับฟีเจอร์ที่แสดงรายการไว้ที่นี่ผ่านลิงก์ที่ให้ไว้หรือจากรายการใน ChromeStatus.com Chrome 112 เป็นเวอร์ชันเบต้าตั้งแต่วันที่ 9 มีนาคม 2023 คุณดาวน์โหลดเวอร์ชันล่าสุดได้จาก Google.com สำหรับเดสก์ท็อปหรือ Google Play Store ใน Android

CSS

การฝัง CSS

ความสามารถในการซ้อนกฎสไตล์ CSS ภายในกฎสไตล์อื่นๆ โดยรวมตัวเลือกจากด้านนอกกับกฎภายในเพื่อเพิ่มโมดูลและความสามารถในการบำรุงรักษาของสไตล์ชีต ดูข้อมูลเพิ่มเติมได้ในบทความเกี่ยวกับการฝัง CSS

พร็อพเพอร์ตี้ CSS animation-composition

พร็อพเพอร์ตี้ animation-composition อนุญาตให้ใช้ข้อกำหนดของการดำเนินการผสมเมื่อภาพเคลื่อนไหวหลายรายการส่งผลต่อพร็อพเพอร์ตี้เดียวกันพร้อมกัน ดูตัวอย่างในการสาธิตนี้

API ของเว็บ

"โหลดหน้านี้ซ้ำ" แถบข้อมูลจะไม่แสดงอีกต่อไปหากเฟรมระดับบนสุดสังเกตเห็นการเปลี่ยนแปลงสิทธิ์

ระงับส่วน "โหลดหน้านี้ซ้ำ" แถบข้อมูล หากเฟรมระดับบนสุดสมัครรับเหตุการณ์ onchange ของ PermissionStatus ซึ่งจะถือว่าเป็นการบ่งชี้ว่าแอปพลิเคชันต้องการตอบสนองต่อการเปลี่ยนแปลงสิทธิ์เข้าถึงกล้องหรือไมโครโฟนแบบไดนามิกที่เริ่มต้นผ่านกล่องโต้ตอบข้อมูลของหน้า ไม่ว่า Listener เหตุการณ์จะมีอยู่หรือไม่ก็ตาม การทำงานที่มีอยู่จะไม่เปลี่ยนแปลง นั่นคือสตรีมสื่อจะสิ้นสุดทันทีเมื่อมีการเพิกถอนสิทธิ์

เพิ่มพารามิเตอร์ผู้ส่งที่ไม่บังคับลงในตัวสร้าง FormData

อนุญาตให้ส่งปุ่มส่งไปยังเครื่องมือสร้าง FormData หากปุ่มมีชื่อหรือเป็นปุ่มรูปภาพ ปุ่มดังกล่าวจะมีผลกับชุดข้อมูลของแบบฟอร์ม ซึ่งจะช่วยให้สร้างออบเจ็กต์ FormData ที่มีชุดข้อมูลเดียวกันกับการส่งแบบฟอร์มวานิลลาที่ทริกเกอร์โดยปุ่มได้

แฟล็ก RegExp v พร้อมสัญลักษณ์ชุดและคุณสมบัติของสตริง

เพิ่มการดำเนินการของชุด ลิเทอรัลสตริง คลาสที่ซ้อนกัน และพร็อพเพอร์ตี้ Unicode ของสตริงลงในคลาสอักขระของนิพจน์ทั่วไป คุณสมบัติของชุดการดำเนินการและ Unicode ของสตริงทำให้นักพัฒนาซอฟต์แวร์สามารถสร้างนิพจน์ทั่วไปจับคู่สตริงกับอักขระ Unicode บางตัวได้อย่างง่ายดาย

เช่น /[\p{Script_Extensions=Greek}&&\p{Letter}]/v ตรงกับตัวอักษรกรีกทั้งหมด

อัปเดตอัลกอริทึมการโฟกัสเริ่มต้น <dialog> แล้ว

มีการเปลี่ยนแปลงบางอย่างกับองค์ประกอบที่เลือกให้โฟกัสเมื่อมีการเปิดองค์ประกอบ <dialog> ดังนี้

  • ทำให้ขั้นตอนการโฟกัสของกล่องโต้ตอบดูองค์ประกอบที่โฟกัสได้ของแป้นพิมพ์แทนที่จะเป็นองค์ประกอบที่โฟกัสได้
  • ทำให้องค์ประกอบกล่องโต้ตอบได้รับโฟกัสหากตั้งค่าแอตทริบิวต์การโฟกัสอัตโนมัติไว้
  • ทำให้องค์ประกอบกล่องโต้ตอบได้รับโฟกัสเป็นโฟกัสสำรอง แทนที่จะให้โฟกัสเป็นแบบ "รีเซ็ต" กับองค์ประกอบ Body

การเรียก WebAssembly

เพิ่มการเรียกใช้ Tail และ opcode ของการเรียกแบบทางอ้อมใน WebAssembly

WebGLContextEvent ใน Web Workers

กำหนดประเภท WebGLContextEvent ใน Khronos แล้ว ข้อกำหนด WebGL มาหลายปีแล้ว แต่ยังไม่สังเกตเห็นจนกระทั่งเมื่อเร็วๆ นี้ว่า Blink ไม่มีการเปิดเผยประเภทนี้ใน Web Worker

แอปพลิเคชันส่วนใหญ่เพียงเพิ่ม Listener เหตุการณ์สำหรับประเภท และไม่ได้มองหาต้นแบบในขอบเขตทั้งหมด นี่เป็นการแก้ไข Web IDL ของ Blink สำหรับ WebGLContextEvent ง่ายๆ แต่เป็นการเปลี่ยนแปลงที่เปิดเผยจากเว็บ

ข้ามตัวแฮนเดิลการดึงที่ไม่มีการดำเนินการของ Service Worker

ฟีเจอร์นี้ช่วยให้ไปยังส่วนต่างๆ ของหน้าเว็บที่มีตัวแฮนเดิลการดึงโปรแกรมทำงานของบริการที่ไม่มีการดำเนินการได้อย่างรวดเร็วด้วยการข้าม

บางเว็บไซต์มี Listener สำหรับการดึงข้อมูลแบบไม่จำเป็นต้องดำเนินการ (เช่น onfetch = () => {}) เนื่องจากการมี Listener การดึงข้อมูลเป็นหนึ่งในข้อกำหนดในการเป็น Progressive Web App (PWA) เราจึงสันนิษฐานว่าจะต้องดำเนินการดังกล่าวเพื่อให้เว็บไซต์จดจำเป็น PWA อย่างไรก็ตาม เครื่องมือจะมีค่าใช้จ่ายในการเริ่มต้นโปรแกรมทำงานของบริการและเรียกใช้ Listener ที่ไม่ทำเท่านั้น โดยไม่ให้ประโยชน์ใดๆ ของฟีเจอร์ เช่น การแคชหรือความสามารถในการออฟไลน์ เนื่องจากโค้ดจะไม่ดำเนินการใดๆ

เพื่อให้การไปยังหน้าดังกล่าวเร็วขึ้น ตั้งแต่ Chrome 112 เป็นต้นไป เราจะละเว้นการเริ่มโปรแกรมทำงานของบริการ (Service Worker) และส่ง Listener ออกจากเส้นทางสำคัญในการนำทาง หาก User Agent ระบุว่า Listener การดึงข้อมูลของโปรแกรมทำงานทั้งหมดนั้นไม่ทำงาน

ในการเปลี่ยนแปลงนี้ Chromium จะแสดงคำเตือนในคอนโซลหาก Listener การดึงข้อมูลของโปรแกรมทำงานของบริการทั้งหมดไม่มีการดำเนินการ และแนะนำให้นักพัฒนาซอฟต์แวร์นำ Listener การดึงข้อมูลที่ไร้ประโยชน์ออก หวังว่าเว็บไซต์จะหยุดใช้ Listener การดึงข้อมูลที่ไม่มีประโยชน์ และเราจะเลิกใช้งานฟีเจอร์นี้ได้ในอนาคต

ยอมรับการเข้ารหัส: br (Brotli) บนการเชื่อมต่อ HTTPS ใน WebView

Brotli (ประเภทการเข้ารหัสเนื้อหา: br) เป็นอัลกอริทึมการบีบอัดแบบไม่สูญเสียรายละเอียดที่มีวัตถุประสงค์การใช้งานทั่วไป ซึ่งให้การบีบอัดที่หนาแน่นกว่าโดยมีอัตราส่วนการบีบอัดและความเร็วเทียบเท่ากับวิธีการบีบอัดอเนกประสงค์ที่ดีที่สุดที่มีให้บริการในปัจจุบัน (โปรดดูรายละเอียดเพิ่มเติมที่ google/brotli และ RFC 7932)

แม้ว่า Chrome รองรับประเภทการเข้ารหัสเนื้อหา HTTP สำหรับ Brotli (Accept-Encoding: br) จากเวอร์ชัน 50 แต่เวอร์ชันดังกล่าวยังไม่เปิดใช้สำหรับ WebView จนถึงตอนนี้ เราจะทยอยเปิดตัวฟีเจอร์นี้เพื่อให้มีความเสถียรและจะพร้อมให้บริการแก่ผู้ใช้ 50% บน WebView เวอร์ชันเบต้า

ช่วงทดลองใช้จากต้นทางอยู่ระหว่างดำเนินการ

ใน Chrome 112 คุณเลือกใช้ช่วงทดลองใช้จากต้นทางต่อไปนี้ได้

FedCM: API การตรวจสอบสิทธิ์ซ้ำอัตโนมัติ

FedCM เวอร์ชันล่าสุดมีฟีเจอร์การตรวจสอบสิทธิ์ซ้ำอัตโนมัติที่เลือกเข้าร่วมได้ ซึ่งช่วยให้สามารถตรวจสอบสิทธิ์ซ้ำได้โดยอัตโนมัติเมื่อผู้ใช้กลับมาหลังจากการตรวจสอบสิทธิ์ครั้งแรกโดยใช้ FedCM

ปัจจุบันหลังจากที่ผู้ใช้สร้างบัญชีแบบรวมศูนย์ในกลุ่ม RP (ผู้ที่พึ่งพาอาศัย) ด้วย IdP (ผู้ให้บริการข้อมูลประจำตัว) ผ่าน FedCM ในครั้งถัดไปที่ผู้ใช้เข้าชมเว็บไซต์ จะต้องทำตามขั้นตอนเดียวกันในอินเทอร์เฟซผู้ใช้ กล่าวคือ ผู้ใช้จะต้องยืนยันและตรวจสอบสิทธิ์อีกครั้งอย่างชัดเจนจึงจะดําเนินการลงชื่อเข้าใช้ได้ ในฐานะที่เป็นหนึ่งในเป้าหมายหลักของ FedCM ก็คือเพื่อป้องกันการติดตามโดยไม่เปิดเผย ประสบการณ์ของผู้ใช้ (UX) นี้เหมาะสมก่อนที่ผู้ใช้จะสร้างบัญชีแบบรวมศูนย์ แต่มีความไม่จำเป็นและยุ่งยากหลังจากที่ผู้ใช้ได้ตรวจสอบแล้วครั้งหนึ่ง Chrome จึงขอแนะนำ UX ที่มีประสิทธิภาพมากขึ้นซึ่ง RP สามารถเลือกสำหรับผู้ใช้ที่กลับมา

ลงทะเบียนสำหรับการทดลองใช้การตรวจสอบสิทธิ์ซ้ำอัตโนมัติของ FedCM จากต้นทาง

ช่วงทดลองใช้การเลิกใช้งาน

เมธอด getStats() ของ RTCPeerConnection จะไม่แสดงออบเจ็กต์สถิติที่ type == "track" หรือ "stream" อีกต่อไป เรานำฟีเจอร์นี้ออกจาก Chrome 112 แล้ว โปรดเลือกรับช่วงทดลองใช้นี้เพื่อให้มีเวลาแก้ไขเพิ่มเติม

ลงทะเบียนทดลองใช้การเลิกใช้งานนี้

X-Request-With ในการเลิกใช้งาน WebView

ช่วงทดลองใช้จากต้นทางที่มีการเลิกใช้งานรองรับการเปิดใช้ล่วงหน้าแบบข้ามต้นทางเมื่อเรียกใช้บริการที่ใช้ส่วนหัว X-Requested-With ตัวเลือกนี้มีอยู่ใน WebView จาก Chrome 112 ดูวิธีใช้ฟีเจอร์นี้ในวิธีการตั้งค่าช่วงทดลองใช้จากต้นทาง

ลงทะเบียนทดลองใช้การเลิกใช้งาน X-Requested พร้อม WebView

การเลิกใช้งานและการนำออก

Chrome เวอร์ชันนี้แนะนำการเลิกใช้งานและการนำออกตามที่ระบุไว้ด้านล่าง ไปที่ ChromeStatus.com เพื่อดูรายการการเลิกใช้งานที่วางแผนไว้ การเลิกใช้งานปัจจุบัน และการนำออกก่อนหน้านี้

Chrome รุ่นนี้เลิกใช้งานฟีเจอร์เดียว

เลิกใช้งานตัวตั้งค่า document.domain

ตัวตั้งค่า document.domain ช่วยให้นักพัฒนาแอปผ่อนปรนนโยบายต้นทางเดียวกัน ทำให้ขอบเขตความปลอดภัยพื้นฐานที่เราตั้งใจรักษาไว้ซับซ้อนขึ้น และนำ Roadblock ไปขัดขวางการเปลี่ยนแปลงโมเดลกระบวนการของ Chromium หลังสเปกตรัม ตอนนี้เป็นการเลือกใช้ผ่านคลัสเตอร์ Agent ที่ผูกกับต้นทางแล้ว

Chrome รุ่นนี้จะนำฟีเจอร์ 1 รายการออก

นำออบเจ็กต์สถิติ track และ stream ออกจากเมธอด getStats() ของ RTCPeerConnection

เมธอด getStats() ของ RTCPeerConnection จะไม่แสดงออบเจ็กต์สถิติที่ type == "track" หรือ "stream" อีกต่อไป ยังไม่จัดส่งใน Chrome 112 และมีการทดลองใช้การเลิกใช้งาน (ตามที่ระบุไว้ข้างต้น) เพื่อขยายความพร้อมใช้งานของเมตริกเหล่านี้ไปยัง Chrome 115