Chrome 117 เบต้า

การรองรับเส้นตารางย่อย การเข้าและออกของ 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 มาใช้แทน