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

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

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

API ของเว็บ

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

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

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

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

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

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

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

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

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

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

การเรียกใช้ WebAssembly tail

เพิ่มการเรียก Tail อย่างชัดแจ้งและ opcode ของการเรียกใช้โดยอ้อมไปยัง WebAssembly

WebGLContextEvent ใน Web Workers

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

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

ข้ามเครื่องจัดการการดึงข้อมูลที่ไม่มีการดำเนินการของ Service Worker

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

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

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

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

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

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

แม้ว่า Chrome จะรองรับการเข้ารหัสเนื้อหาประเภท HTTP สำหรับ Brotli (Accept-Encoding: br) จากเวอร์ชัน 50 แต่ Chrome ไม่ได้เปิดใช้ 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-Requested-With ใน WebView

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

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

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

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

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

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

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

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

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

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