การรองรับภาพเคลื่อนไหวการเข้าและออกของตารางกริด CSS, การจัดกลุ่มอาร์เรย์, ตัวช่วยตัววนซ้ำ และอื่นๆ
การเปลี่ยนแปลงที่อธิบายจะมีผลกับ Chrome เวอร์ชันเบต้ารุ่นล่าสุดสำหรับ Android, ChromeOS, Linux, macOS และ Windows เว้นแต่จะระบุไว้เป็นอย่างอื่น ดูข้อมูลเพิ่มเติมเกี่ยวกับฟีเจอร์ต่างๆ ที่ระบุไว้ที่นี่ผ่านลิงก์ที่ให้ไว้หรือจากรายการใน ChromeStatus.com โดย Chrome 117 เป็นรุ่นเบต้า ณ วันที่ 16 สิงหาคม 2023 คุณดาวน์โหลดเวอร์ชันล่าสุดได้ที่ Google.com สำหรับเดสก์ท็อปหรือ Google Play Store บน Android
CSS
รุ่นนี้ได้เพิ่มฟีเจอร์ CSS ใหม่ 6 รายการ พร็อพเพอร์ตี้ 3 รายการแรกเป็นส่วนหนึ่งของงานเพื่อให้เปลี่ยนพร็อพเพอร์ตี้แยกกัน ซึ่งจะทำให้ภาพเคลื่อนไหวเข้าและออกได้
กฎ @starting-style
กฎพื้นฐานนี้ช่วยให้ผู้เขียนเริ่มการเปลี่ยน CSS ในการอัปเดตรูปแบบครั้งแรกได้
การเปลี่ยน CSS จะไม่ทริกเกอร์การเปลี่ยนจากรูปแบบเริ่มต้นในการอัปเดตรูปแบบครั้งแรกสำหรับองค์ประกอบ หรือเมื่อประเภทการแสดงผลเปลี่ยนจาก none
เป็นประเภทอื่น ทั้งนี้เพื่อหลีกเลี่ยงการเปลี่ยนแปลงที่ไม่คาดคิดจากรูปแบบเริ่มต้น หากต้องการเริ่มการเปลี่ยนจากการอัปเดตสไตล์ครั้งแรก ตอนนี้คุณใช้สไตล์จากภายในกฎ @starting-style
ได้แล้ว ตัวอย่างเช่น CSS ต่อไปนี้จะเริ่มการเปลี่ยนสีพื้นหลังจากสีเขียวเป็นมะนาวในการอัปเดตรูปแบบครั้งแรกสำหรับ div
div {
transition: background-color 0.5s;
background-color: lime;
}
@starting-style {
div {
background-color: green;
}
}
คุณสมบัติการวางซ้อน
พร็อพเพอร์ตี้ overlay
ช่วยให้นักพัฒนาซอฟต์แวร์เก็บองค์ประกอบไว้ที่เลเยอร์บนสุดสำหรับการเปลี่ยนเมื่อออก ระบบจะเพิ่มคุณสมบัติการวางซ้อนเพื่อระบุว่าองค์ประกอบอยู่ในเลเยอร์บนสุดหรือไม่ และสามารถใช้ค่าได้ 2 ค่า ได้แก่ none
หรือ auto
พร็อพเพอร์ตี้พฤติกรรมการเปลี่ยนของ CSS
พร็อพเพอร์ตี้ CSS transition-behavior
เป็นพร็อพเพอร์ตี้ transition
แบบยาว ซึ่งช่วยให้สามารถใช้พร็อพเพอร์ตี้ที่แยกจากกันในทรานซิชันได้ เมื่อระบุค่า allow-discrete
สำหรับพฤติกรรมการเปลี่ยน คุณสมบัติเฉพาะที่จะเริ่มต้นภาพเคลื่อนไหวและพลิกจากค่าเริ่มต้นเป็นค่าสุดท้ายที่ 50% สำหรับการเปลี่ยนที่ display: none
และ content-visibility: hidden
เป็นค่าเริ่มต้นหรือค่าสุดท้ายค่าใดค่าหนึ่ง ระบบจะใช้ค่าที่มองเห็นได้ตลอดระยะเวลาการเปลี่ยน
ค่าตารางกริดย่อยของตารางกริด CSS
ใช้ค่า subgrid
สำหรับ grid-template-columns
และ grid-template-rows
ใน Chrome แล้ว ค่านี้ช่วยให้ตารางกริดที่ซ้อนกันใช้แทร็กที่กำหนดไว้ในระดับบนสุดได้ แทนที่จะสร้างคำจำกัดความแทร็กใหม่สำหรับแถว คอลัมน์ หรือทั้ง 2 อย่าง
ตัดข้อความ CSS: สวย
ค่า pretty
สำหรับพร็อพเพอร์ตี้ text-wrap
ของ CSS จะเพิ่มประสิทธิภาพเพื่อเลย์เอาต์ที่ดีที่สุด ไม่ใช่ความเร็ว มีไว้สำหรับข้อความเนื้อหา จึงต้องมีบรรทัดหลายบรรทัด การใช้ pretty
จะช่วยให้นักพัฒนาแอปเลือกใช้วิธีการเลย์เอาต์ที่อาจช้ากว่า wrap
อย่างชัดเจน ซึ่งจะช่วยปรับปรุงประสิทธิภาพการทำงาน การใช้งานปัจจุบันใน Chrome จะเพิ่มประสิทธิภาพให้เหมาะกับเด็กกำพร้าเพื่อป้องกันไม่ให้คำเดียวปรากฏท้ายย่อหน้าของข้อความ
ใน Chrome 117 ให้ลองใช้การสาธิตการใช้ข้อความล้อมรอบภาพ: รูปลักษณ์ และดูว่าค่าเปลี่ยนแปลงการนำเสนอข้อความไปอย่างไร
has-intrinsic-size: การสนับสนุนอัตโนมัติไม่มี
ฟีเจอร์นี้ขยายไวยากรณ์ contain-intrinsic-size
ที่มีอยู่ให้รวม auto && none
ไว้ด้วย
API ของเว็บ
การจัดกลุ่มอาร์เรย์
การจัดกลุ่มอาร์เรย์เป็นการดำเนินการที่นิยมใช้กันมาก ยกตัวอย่างดีที่สุดด้วยคำสั่ง GROUP BY ของ SQL และการเขียนโปรแกรม MapReduce (ซึ่งดีกว่าในเรื่องการลดกลุ่มแผนที่) ความสามารถในการรวมข้อมูลเข้าเป็นกลุ่มช่วยให้นักพัฒนาแอปสามารถคํานวณชุดข้อมูลที่มีลําดับที่สูงขึ้น เช่น อายุเฉลี่ยของกลุ่มประชากรตามรุ่นหรือค่า LCP รายวันของหน้าเว็บ ฟีเจอร์นี้เปิดใช้ได้โดยการเพิ่มเมธอดแบบคงที่ของ Object.groupBy
และ Map.groupBy
เมธอดออบเจ็กต์จะแสดงออบเจ็กต์ธรรมดา โดยที่กลุ่มเป็นคีย์พร็อพเพอร์ตี้ เมธอด "แมป" จะแสดงผล Maps ซึ่งคีย์จะเป็นค่าที่กำหนดเองได้
ล้างคำแนะนำไคลเอ็นต์ผ่านส่วนหัวการล้างข้อมูลไซต์
ตอนนี้เว็บไซต์จะล้างแคชคำแนะนำไคลเอ็นต์โดยใช้ Clear-Site-Data: "clientHints"
ได้แล้ว ตอนนี้คำแนะนำไคลเอ็นต์จะถูกล้างออกเมื่อมีการกำหนดเป้าหมาย "คุกกี้", "แคช" หรือ "*" ด้วยส่วนหัวเดียวกัน ทั้งนี้เนื่องจากหากผู้ใช้ล้างคุกกี้ในคำแนะนำไคลเอ็นต์ UI แล้วด้วย แคชคำแนะนำไคลเอ็นต์จะเป็นแคช และสอดคล้องกับเป้าหมายไวลด์การ์ดตามลำดับ
ไวยากรณ์ไวลด์การ์ดส่วนหัวล้างข้อมูลเว็บไซต์
ตอนนี้เว็บไซต์สามารถล้างเป้าหมายพื้นที่เก็บข้อมูลทั้งหมด ("คุกกี้" "แคช" และ "พื้นที่เก็บข้อมูล") ทั้งหมดได้แล้วโดยการส่ง Clear-Site-Data: "*"
โปรดทราบว่า Chrome ไม่สนับสนุนการล้าง "executionContexts" ในตอนนี้ แต่หากเราเพิ่มค่านี้ในอนาคต การกำหนดเป้าหมายส่วนหัว "*" จะล้างการกำหนดเป้าหมายเหล่านั้นด้วย
customElements.getName
เมธอด customElements.getName()
จะแสดงชื่อแท็กของคำจำกัดความองค์ประกอบที่กำหนดเองที่ระบุ
ตัวช่วย Iterator
ตัวช่วยเหลือ Iterator คือวิธีการใหม่ๆ ในต้นแบบตัววนซ้ำเพื่อการใช้งานทั่วไปและการบริโภคตัววนซ้ำ
ทำให้ แคปเจอร์ แคปเจอร์ มาจากอินเทอร์เฟซ EventTarget
อินเทอร์เฟซ CaptureController ช่วยให้ควบคุมเซสชันการจับภาพหน้าจอได้มากขึ้น ในอนาคต คาดว่าจะมีการส่งเหตุการณ์ที่เกี่ยวข้องกับเซสชันการจับภาพบนตัวควบคุมนั้น เมธอด EventTarget
พร้อมให้ใช้งานใน CaptureController
เพื่อให้จัดการ Listener สำหรับเหตุการณ์ดังกล่าวได้
ประเภทการนำส่ง PerformanceResourceTiming
พร็อพเพอร์ตี้ deliveryType
ของ PerformanceResourceTiming
จะแสดงผลข้อมูลเกี่ยวกับวิธีส่งทรัพยากร ตัวอย่างเช่น ทรัพยากรที่ส่งจากแคช (ปัจจุบันแสดงผ่าน transferSize
) และการนำทางที่ดึงข้อมูลล่วงหน้าโดยหน้าก่อนหน้า
การตรวจสอบรายการเพิ่มเติมของพอร์ตในตัวตั้งค่า URL
ระบบจะตรวจสอบค่าพอร์ตเมื่อตั้งค่า url.port
ค่าทั้งหมดที่เกินขีดจำกัดตัวเลข 16 บิตจะใช้ไม่ได้อีกต่อไป ตัวอย่างเช่น สคริปต์ต่อไปนี้ทำงานแตกต่างออกไปหลังการเปลี่ยนแปลง
u = new URL("http://test.com");
u.port = 65536;
console.log(u.port);
ก่อนการเปลี่ยนแปลง เอาต์พุตจะเป็น 65536 หลังจากเปลี่ยนแล้ว เอาต์พุตจะเป็น 80
API โทเค็นสถานะส่วนตัว
ซึ่งเป็น API ใหม่สำหรับการแพร่กระจายสัญญาณส่วนตัวแบบจำกัดในเว็บไซต์ต่างๆ โดยไม่ใช้ตัวระบุถาวรข้ามเว็บไซต์ เช่น คุกกี้ของบุคคลที่สาม วิธีการป้องกันการประพฤติมิชอบที่ใช้คุกกี้ของบุคคลที่สามจะใช้งานไม่ได้เมื่อเลิกใช้งานคุกกี้ของบุคคลที่สาม Private State Token API จะไม่สร้างหรือกำหนดสัญญาณป้องกันการประพฤติมิชอบ แต่จะขึ้นอยู่กับบุคคลที่หนึ่งและผู้ออกบัตรโทเค็นที่เกี่ยวข้อง API จะรักษาความเป็นส่วนตัวโดยการบังคับใช้ขีดจํากัดของข้อมูลที่ถ่ายโอนในสัญญาณเหล่านี้ API นี้อิงตามตัวแปรของโปรโตคอล Privacy Pass ซึ่งอยู่ระหว่างการกำหนดให้ IETF เป็นมาตรฐาน ซึ่งอาจถือเป็นรูปแบบที่เปิดเผยบนเว็บของโปรโตคอล Privacy Pass เราจะอัปเดตข้อกำหนดของ API สำหรับโทเค็นประเภทและเวอร์ชันใหม่ๆ รวมทั้งจะอัปเดตข้อกำหนดของกลุ่มทำงานของ Privacy Pass ให้เป็นปัจจุบันอยู่เสมอ การเปลี่ยนแปลงที่คาดไว้จะอยู่ในโปรโตคอลการเข้ารหัสและโค้ดการออกโทเค็นที่สำคัญ เราคาดว่าจะไม่มีการเปลี่ยนแปลงในส่วนดึงข้อมูล API การออกและแลกสิทธิ์ที่นักพัฒนาแอปเห็น Private State Token API มีชื่อเดิมว่า Trust Token API เปลี่ยนชื่อใหม่เพื่อให้บันทึกความหมายที่สำคัญและเน้นประโยชน์ด้านความเป็นส่วนตัวให้แก่ผู้ใช้ได้แม่นยำมากขึ้น
โปรแกรมแยกวิเคราะห์โฮสต์ IPv6 ที่ฝังใน IPv4 ที่เข้ากันได้ของ URL แบบมาตรฐาน
ลักษณะการแยกวิเคราะห์โปรแกรมแยกวิเคราะห์โฮสต์ IPv4 แบบฝังของ IPv4 จะอัปเดตให้เป็นไปตามมาตรฐาน URL ของเว็บอย่างเคร่งครัด ข้อจำกัดที่แนะนำสำหรับที่อยู่ IPv6 มีดังนี้
- ที่อยู่ IPv4 แบบฝังจะต้องประกอบด้วย 4 ส่วนเสมอ
- ที่อยู่ที่มีน้อยกว่า 4 ส่วน เช่น
http://[::1.2]
จะใช้ไม่ได้อีกต่อไป ฟีเจอร์นี้เป็นส่วนหนึ่งของการทำงานร่วมกันของ URL ปี 2023
URL: อนุญาตให้ใช้ "%00" เป็นเส้นทาง URL ที่ถูกต้อง
ปัจจุบัน Chrome จะถือว่า URL ไม่ถูกต้องหากส่วนเส้นทางของ URL มี "%00" (หรือ Null) ซึ่งไม่เป็นไปตามมาตรฐาน URL ตัวอย่างเช่น การทดสอบต่อไปนี้ล้มเหลวใน Chrome เนื่องจาก new URL(...)
มีข้อยกเว้นของ URL ที่ไม่ถูกต้อง
assertEquals(new URL("http://example.com/%00").pathname, "/%00");
ตามมาตรฐานของ URL อักขระหรือไบต์ตามลำดับทั้งหมดในเส้นทาง URL ไม่ควรทำให้ URL ไม่ถูกต้อง และการเปลี่ยนแปลงนี้จะอัปเดต Chrome ให้เป็นไปตามมาตรฐานดังกล่าว
การควบคุมส่วนขยายส่วนหัว RTP ของ WebRTC
ขยาย WebRTC RTCRtpTransceiver
API เพื่อเสนอการควบคุมส่วนขยายส่วนหัว RTP ที่ต้องการเจรจา
ตัวควอนไทเซอร์ต่อเฟรมใน VideoEncrypter
เพิ่ม "quantizer" VideoEncoderBitrateMode
สำหรับ Videoโปรแกรมเปลี่ยนไฟล์
ความสามารถนี้ช่วยให้คุณสามารถระบุพารามิเตอร์ตัวควอนไทเซอร์สำหรับแต่ละเฟรมสำหรับตัวแปลงรหัสวิดีโอ AV1, VP9 และ AVC
ตัวเลือก WebUSB exclusionFilters
ใน requestDevice()
ตัวเลือก exclusionFilters
ใน navigator.usb.requestDevice()
ช่วยให้นักพัฒนาเว็บยกเว้นอุปกรณ์บางเครื่องจากเครื่องมือเลือกเบราว์เซอร์ได้ ใช้เพื่อยกเว้นอุปกรณ์ที่ตรงกับตัวกรองที่กว้างขึ้น แต่ระบบไม่รองรับ
ช่วงทดลองใช้จากต้นทางอยู่ระหว่างดำเนินการ
ใน Chrome 117 คุณจะเลือกใช้ช่วงทดลองใช้จากต้นทางใหม่ต่อไปนี้ได้
การรับส่งพจนานุกรมการบีบอัดด้วย Shared Brotli
ฟีเจอร์นี้เพิ่มการรองรับการใช้คำตอบก่อนหน้าที่กำหนดเป็นพจนานุกรมภายนอกสำหรับการตอบกลับ HTTP ที่บีบอัดโดย Brotli
ลงทะเบียนช่วงทดลองใช้จากต้นทาง CompressionDictionaryTransport
ช่วงทดลองใช้การเลิกใช้งาน WebSQL
กำลังนำ WebSQL ออกจาก Chrome เราขอแนะนำให้เว็บไซต์ที่ต้องใช้ข้อมูลดังกล่าวเปลี่ยนไปใช้ SQLite ผ่าน Wasm
การทดลองใช้การเลิกใช้งานนี้ช่วยให้นักพัฒนาแอปที่ต้องการเวลามากขึ้นในการย้ายข้อมูลสามารถใช้ WebSQL ได้ต่อไปจนถึง Chrome 123 (มีนาคม 2024) ลงทะเบียนเพื่อทดลองใช้การเลิกใช้งาน WebSQL
เว็บแอปแบบแท็บ
ตัวอย่างเช่น อนุญาตให้หน้าต่างเว็บแอปมีแนวแท็บเพื่อแก้ไขเอกสารหลายรายการในแอปเดียวกัน การดำเนินการนี้จะเพิ่มโหมดการแสดงผลใหม่ "แท็บ" และช่องไฟล์ Manifest ใหม่เพื่อให้ปรับแต่งแนวแท็บได้
ลงทะเบียนช่วงทดลองใช้เว็บแอปจากต้นทางแบบแท็บ
การเลิกใช้งานและการนำออก
Chrome เวอร์ชันนี้จะแนะนำการเลิกใช้งานและการนำออกที่ระบุไว้ด้านล่าง ไปที่ ChromeStatus.com เพื่อดูรายการการเลิกใช้งานที่วางแผนไว้ การเลิกใช้งานในปัจจุบัน และการนำออกก่อนหน้า
Chrome รุ่นนี้ได้เลิกใช้งานฟีเจอร์ 2 รายการ
เลิกใช้งานเหตุการณ์ยกเลิกการโหลด
Chrome 117 จะเริ่มกระบวนการเลิกใช้งานเครื่องจัดการเหตุการณ์ unload
หากเว็บไซต์ของคุณใช้วิธีการดังกล่าว เราขอแนะนำให้อ่านโพสต์โดยเฉพาะเกี่ยวกับการเลิกใช้ unload
เพื่อดูรายละเอียดเพิ่มเติม
เลิกใช้งานลายเซ็นเซิร์ฟเวอร์ TLS SHA-1
Chrome จะยกเลิกการสนับสนุนอัลกอริทึมลายเซ็นที่ใช้ SHA-1 สำหรับลายเซ็นเซิร์ฟเวอร์ระหว่างแฮนด์เชค TLS การดำเนินการนี้จะไม่ส่งผลต่อการรองรับ SHA-1 ในใบรับรองเซิร์ฟเวอร์ที่นำออกแล้ว หรือในใบรับรองไคลเอ็นต์ซึ่งยังคงรองรับต่อไป
Chrome รุ่นนี้จะนำฟีเจอร์ 4 รายการออก
[WebRTC] เลิกใช้ getStats() เดิมที่อิงตามโค้ดเรียกกลับ
RTCPeerConnection มี getStats()
2 เวอร์ชัน แบบที่เป็นไปตามข้อกำหนดซึ่งส่งกลับรายงานผ่านการแปลงค่าสัญญา และเวอร์ชันที่ไม่เป็นไปตามมาตรฐานที่ส่งกลับรายงานที่แตกต่างกันมากผ่านโค้ดเรียกกลับเป็นอาร์กิวเมนต์แรก ตอนนี้ระบบได้นำการโทรกลับตามบรรทัดออกแล้ว
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการย้ายข้อมูลและสิ่งที่ต้องทำหากต้องการเวลาเพิ่มเติม โปรดดูคำแนะนำในการย้ายข้อมูล getStats() แบบเดิม
การนำค่า -1 ออกสำหรับ WebRTC getStats datachannelIdentifier
WebRTC getStats API แสดงพร็อพเพอร์ตี้ dataChannelIdentifier และจะไม่ระบุค่า "-1" อีกต่อไปในกรณีที่มีการค้นหาสถิติก่อนสร้างการเชื่อมต่อช่องข้อมูล แต่ละเว้นสมาชิกในพจนานุกรมแทน
การนำโปรแกรมเปลี่ยนไฟล์ getStats และการถอดรหัสของ WebRTC ออก "ไม่ทราบ"
WebRTC getStats API แสดงชื่อการใช้งานโปรแกรมเปลี่ยนไฟล์และตัวถอดรหัสสำหรับวิดีโอขาออกและขาเข้า โดยจะไม่มีค่า "unknown" อีกต่อไปในกรณีที่มีการค้นหาสถิติก่อนที่จะเข้ารหัสหรือถอดรหัสเฟรมวิดีโอ แต่ละเว้นสมาชิกในพจนานุกรมแทน
พร็อพเพอร์ตี้ CSS -webkit-highlight
นำพร็อพเพอร์ตี้ CSS -webkit-highlight
ที่มีจุดประสงค์เพื่อไฮไลต์ข้อความออก แต่ไม่เป็นไปตามมาตรฐาน ไม่มีเอฟเฟกต์ที่มองเห็นได้ใน Chromium (ได้รับการแยกวิเคราะห์แต่ไม่เคยใช้ในการแสดงผลเนื้อหา) พร็อพเพอร์ตี้ถูกนำออกจาก WebKit ในปี 2014 และมีการทำเครื่องหมายว่าเลิกใช้งานใน MDN และเมื่อเร็วๆ นี้ได้แทนที่ด้วยข้อกำหนดจำเพาะของไฮไลต์ CSS