การรองรับเส้นตารางย่อย การเข้าและออกของ CSS สำหรับ CSS, การจัดกลุ่มอาร์เรย์, ตัวช่วย Iterator และอีกมากมาย
การเปลี่ยนแปลงต่างๆ ที่ได้อธิบายไว้จะมีผลกับ Chrome เวอร์ชันเบต้าใหม่ล่าสุดสำหรับ Android, ChromeOS, Linux, macOS และ Windows ยกเว้นกรณีที่ระบุไว้เป็นอย่างอื่น เรียนรู้เพิ่มเติมเกี่ยวกับฟีเจอร์ที่แสดงรายการไว้ที่นี่ผ่านลิงก์ที่ให้ไว้หรือจากรายการใน ChromeStatus.com Chrome 117 เป็นเวอร์ชันเบต้าตั้งแต่วันที่ 16 สิงหาคม 2023 คุณดาวน์โหลดเวอร์ชันล่าสุดได้จาก Google.com สำหรับเดสก์ท็อปหรือ Google Play Store ใน Android
CSS
รุ่นนี้เพิ่มฟีเจอร์ใหม่ 6 รายการ CSS พร็อพเพอร์ตี้ 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
สำหรับพร็อพเพอร์ตี้ CSS text-wrap
จะเพิ่มประสิทธิภาพเลย์เอาต์ที่ดีที่สุด ไม่ใช่ความเร็ว มีไว้สำหรับข้อความเนื้อหา ดังนั้นจึงต้องมีหลายบรรทัด การใช้ pretty
ทําให้นักพัฒนาแอปเลือกใช้วิธีเลย์เอาต์ที่อาจช้ากว่า wrap
อย่างชัดแจ้ง ซึ่งเพิ่มประสิทธิภาพได้ การใช้งานปัจจุบันใน Chrome ได้รับการเพิ่มประสิทธิภาพสำหรับเด็กกำพร้าเพื่อป้องกันไม่ให้มีคำคำเดียวปรากฏที่ด้านล่างของข้อความ
ใน Chrome 117 ลองใช้การสาธิตการตัดข้อความ: สวยงาม และดูว่าค่าที่ได้เปลี่ยนการนำเสนอข้อความไปอย่างไรบ้าง
Hold-intrinsic-size: รองรับ Auto none
ฟีเจอร์นี้จะขยายไวยากรณ์ contain-intrinsic-size
ที่มีอยู่ให้รวม auto && none
ด้วย
API ของเว็บ
การจัดกลุ่มอาร์เรย์
การจัดกลุ่มอาร์เรย์เป็นการดำเนินการที่พบเห็นได้ทั่วไป เห็นได้จากคำสั่ง GROUP BY ของ SQL และการเขียนโปรแกรม MapReduce (ซึ่งถือว่าเป็นการลดจำนวนแผนที่กลุ่มที่ดีกว่า) ความสามารถในการรวมข้อมูลเข้าเป็นกลุ่มๆ ช่วยให้นักพัฒนาซอฟต์แวร์คำนวณชุดข้อมูลตามลำดับที่สูงขึ้นได้ เช่น อายุเฉลี่ยของกลุ่มประชากรตามรุ่นหรือค่า LCP ต่อวันสำหรับหน้าเว็บ ฟีเจอร์นี้จะเปิดใช้ได้โดยการเพิ่ม Object.groupBy
และ Map.groupBy
เมธอดแบบคงที่ เมธอดออบเจ็กต์จะแสดงออบเจ็กต์ธรรมดาที่กลุ่มเป็นคีย์พร็อพเพอร์ตี้ เมธอด Map จะแสดงแผนที่ ซึ่งคีย์จะเป็นค่าที่กำหนดเองได้
ล้างคำแนะนำไคลเอ็นต์ผ่านส่วนหัวเคลียร์ไซต์-ข้อมูล
ตอนนี้เว็บไซต์สามารถล้างแคชคำแนะนำไคลเอ็นต์โดยใช้ Clear-Site-Data: "clientHints"
ได้แล้ว ตอนนี้คำแนะนำไคลเอ็นต์จะถูกล้างเมื่อ "คุกกี้" "แคช" หรือ "*" กำหนดเป้าหมายโดยส่วนหัวเดียวกัน ทั้งนี้เนื่องจากหากผู้ใช้ล้างคุกกี้ในคำแนะนำของไคลเอ็นต์ UI แล้ว แคชคำแนะนำของไคลเอ็นต์ก็จะเป็นแคชและจะสอดคล้องกับเป้าหมายไวลด์การ์ดตามลำดับ
ไวยากรณ์ไวลด์การ์ดส่วนหัวแบบล้างข้อมูลเว็บไซต์
ตอนนี้เว็บไซต์จะสามารถล้างเป้าหมายพื้นที่เก็บข้อมูลทั้งหมด ("คุกกี้" "แคช" และ "พื้นที่เก็บข้อมูล") ได้แล้วโดยการส่ง Clear-Site-Data: "*"
โปรดทราบว่า Chrome ไม่รองรับการล้าง "executionContexts" ในตอนนี้ แต่ถ้าเราได้เพิ่มในอนาคต การกำหนดเป้าหมายส่วนหัว "*" จะล้างตัวกรองเหล่านั้นออกด้วย
customElements.getName
เมธอด customElements.getName()
จะแสดงชื่อแท็กของคำอธิบายองค์ประกอบที่กำหนดเองที่กำหนด
ตัวช่วย Iterator
ตัวช่วยของ Iterator คือวิธีการใหม่ๆ ในการสร้างต้นแบบของ Iterator เพื่อให้ใช้งานและใช้โปรแกรมทำซ้ำได้ทั่วไป
ทำให้ CaptureController ดึงข้อมูลจากอินเทอร์เฟซ EventTarget
อินเทอร์เฟซ CaptureController เปิดใช้การควบคุมเพิ่มเติมของเซสชันการจับภาพหน้าจอ ในอนาคต คาดว่าจะมีการส่งเหตุการณ์ที่เกี่ยวข้องกับเซสชันการจับภาพไปยังตัวควบคุมนั้น ส่วนเมธอด EventTarget
จะพร้อมให้บริการใน CaptureController
เพื่อจัดการ Listener เหตุการณ์เหล่านั้น
PerformanceResourceTiming DeliveryType
พร็อพเพอร์ตี้ 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 แบบฝัง IPv6 แบบฝังที่เข้ากันได้กับ URL มาตรฐาน
ลักษณะการทำงานของการแยกวิเคราะห์โปรแกรมแยกวิเคราะห์โฮสต์ IPv6 ที่ฝังไว้ 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 ให้เป็นไปตามมาตรฐานนั้น
การควบคุมส่วนขยายส่วนหัว WebRTC RTP
ขยาย WebRTC RTCRtpTransceiver
API เพื่อเสนอการควบคุมส่วนขยายส่วนหัว RTP ที่จะเจรจาต่อรอง
ควอนเซอร์ต่อเฟรมใน VideoEncoder
เพิ่ม "ควอนเซอร์" VideoEncoderBitrateMode
สำหรับ VideoEncoder
ซึ่งจะช่วยให้คุณระบุพารามิเตอร์ควอนเซอร์สำหรับแต่ละเฟรมสำหรับตัวแปลงรหัสวิดีโอ AV1, VP9 และ AVC ได้
ตัวเลือก WebUSB exclusionFilters
ใน requestDevice()
ตัวเลือก exclusionFilters
ใน navigator.usb.requestDevice()
ช่วยให้นักพัฒนาเว็บยกเว้นอุปกรณ์บางเครื่องจากเครื่องมือเลือกเบราว์เซอร์ได้ โดยสามารถใช้เพื่อยกเว้นอุปกรณ์ที่ตรงกับตัวกรองที่กว้างกว่าแต่ไม่รองรับ
ช่วงทดลองใช้จากต้นทางอยู่ระหว่างดำเนินการ
ใน Chrome 117 คุณสามารถเลือกใช้การทดลองใช้ต้นทางใหม่ดังต่อไปนี้
การรับส่งพจนานุกรมการบีบอัดด้วย Shared Brotli
ฟีเจอร์นี้เพิ่มการสนับสนุนการใช้คำตอบก่อนหน้าที่กำหนดไว้เป็นพจนานุกรมภายนอกสำหรับการตอบสนอง HTTP ที่บีบอัดของ Brotli
ลงทะเบียนทดลองใช้ต้นทางของ CompressionDictionaryTransport
ช่วงทดลองใช้ WebSQL การเลิกใช้งาน
กำลังนำ WebSQL ออกจาก Chrome เราขอแนะนำให้เว็บไซต์ที่ใช้ API นี้เปลี่ยนไปใช้ 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() เดิมที่อิงตาม Callback ยกเลิกการจัดส่ง
RTCPeerConnection มี getStats()
2 เวอร์ชัน เวอร์ชันหนึ่งที่เป็นไปตามข้อกำหนดซึ่งแสดงผลรายงานผ่านการแปลงคำสัญญา และอีกเวอร์ชันที่ไม่เป็นมาตรฐานซึ่งจะแสดงรายงานที่แตกต่างกันมากผ่าน Callback เป็นอาร์กิวเมนต์แรก ระบบนํารายการที่อิงตามการติดต่อกลับออกแล้ว
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการย้ายข้อมูล สิ่งที่ต้องทำหากต้องการเวลาเพิ่มเติม โปรดดูคำแนะนำในการย้ายข้อมูล getStats() เดิม
การนำค่า -1 สำหรับ WebRTC getStats datachannelIdentifier ออก
WebRTC getStats API จะแสดงพร็อพเพอร์ตี้ dataChannelIdentifier จะไม่ระบุค่า "-1" อีกต่อไป ในกรณีที่มีการค้นหาสถิติก่อนที่จะทำการเชื่อมต่อช่องทางข้อมูล แต่ระบบจะละเว้นสมาชิกพจนานุกรมแทน
การนำโปรแกรมเปลี่ยนไฟล์และตัวถอดรหัส WebRTC getStats "ที่ไม่รู้จัก" ออก
WebRTC getStats API จะแสดงชื่อการใช้งานโปรแกรมเปลี่ยนไฟล์และตัวถอดรหัสสำหรับวิดีโอขาออกและขาเข้า และจะไม่แสดงค่า "ไม่ทราบ" อีกต่อไปในกรณีที่มีการค้นหาสถิติก่อนที่จะเข้ารหัสหรือถอดรหัสเฟรมวิดีโอ แต่ระบบจะละเว้นสมาชิกพจนานุกรมแทน
พร็อพเพอร์ตี้ CSS -webkit-highlight
นำพร็อพเพอร์ตี้ CSS -webkit-highlight
ที่ใช้ไฮไลต์ข้อความ แต่ไม่ได้เป็นมาตรฐาน ไม่มีผลกระทบที่มองเห็นได้ในโครเมียม (มีการแยกวิเคราะห์แต่ไม่เคยใช้ในการแสดงผลเนื้อหา) พร็อพเพอร์ตี้นี้ถูกนำออกจาก WebKit ในปี 2014 และมีการทำเครื่องหมายว่าเลิกใช้งานใน MDN และเมื่อเร็วๆ นี้ก็ได้มีข้อกำหนด Pseudo ไฮไลต์ CSS มาใช้แทน