Chrome 117 เบต้า

การรองรับภาพเคลื่อนไหวการเข้าและออกของตารางกริด 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