เผยแพร่: 15 มกราคม 2024
การเปลี่ยนแปลงต่อไปนี้จะมีผลกับการเปิดตัวช่องเบต้าของ Chrome เวอร์ชันล่าสุดสำหรับ Android, ChromeOS, Linux, macOS และ Windows เว้นแต่จะระบุไว้เป็นอย่างอื่น ดูข้อมูลเพิ่มเติม เกี่ยวกับฟีเจอร์ที่แสดงที่นี่ได้ผ่านลิงก์ที่ให้ไว้หรือจากรายการใน ChromeStatus.com Chrome 133 เป็นเวอร์ชันเบต้าตั้งแต่วันที่ 15 มกราคม 2024 คุณสามารถดาวน์โหลด เวอร์ชันล่าสุดได้ที่ Google.com สำหรับเดสก์ท็อปหรือ ใน Google Play Store บน Android
CSS และ UI
การเปิดตัวนี้จะเพิ่มฟีเจอร์ CSS และ UI ใหม่ 7 รายการ
ฟังก์ชันขั้นสูงของ CSS attr()
ใช้การเพิ่มประสิทธิภาพกับ attr() ที่ระบุไว้ใน CSS ระดับ 5 ซึ่งอนุญาตให้ใช้
ประเภทอื่นๆ นอกเหนือจาก <string> และใช้ในพร็อพเพอร์ตี้ CSS ทั้งหมด (นอกเหนือจาก
การรองรับที่มีอยู่สำหรับองค์ประกอบเสมือน content)
ดูข้อมูลเพิ่มเติมได้ใน CSS attr() ได้รับการอัปเกรด
คลาสสมมติ :open ของ CSS
:openคลาสจำลอง<dialog>และ<details>จะตรงกันเมื่ออยู่ในสถานะเปิด และ<select>และ<input>จะตรงกันเมื่ออยู่ในโหมดที่มีเครื่องมือเลือกและเครื่องมือเลือกกำลังแสดงอยู่
การค้นหาคอนเทนเนอร์สถานะการเลื่อนของ CSS
ใช้การค้นหาคอนเทนเนอร์เพื่อจัดรูปแบบองค์ประกอบย่อยของคอนเทนเนอร์ตามสถานะการเลื่อน
คอนเทนเนอร์การค้นหาเป็นได้ทั้งคอนเทนเนอร์แบบเลื่อนหรือองค์ประกอบที่ได้รับผลกระทบจาก ตำแหน่งการเลื่อนของคอนเทนเนอร์แบบเลื่อน คุณสามารถค้นหาสถานะต่อไปนี้ได้
stuck: คอนเทนเนอร์ที่ตำแหน่งคงที่จะติดอยู่กับขอบด้านใดด้านหนึ่งของ กล่องเลื่อนsnapped: คอนเทนเนอร์ที่มีการจัดแนวการเลื่อนแบบสแนปจะมีการสแนปในแนวนอน หรือแนวตั้งในขณะนี้scrollable: ระบุว่าเลื่อนคอนเทนเนอร์ที่เลื่อนได้ในทิศทางที่ค้นหาได้หรือไม่
container-type: scroll-state ใหม่ช่วยให้สามารถค้นหาคอนเทนเนอร์ได้
#sticky {
position: sticky;
container-type: scroll-state;
}
@container scroll-state(stuck: top) {
#sticky-child {
font-size: 75%;
}
}
ดูข้อมูลเพิ่มเติมได้ใน CSS scroll-state()
CSS text-box, text-box-trim และ text-box-edge
พร็อพเพอร์ตี้ text-box-trim และ
text-box-edge รวมถึงพร็อพเพอร์ตี้ text-box แบบย่อช่วยให้ควบคุมการจัดแนวข้อความในแนวตั้งได้ละเอียดยิ่งขึ้นเพื่อให้เนื้อหาข้อความมีความสมดุลที่เหมาะสมที่สุด
พร็อพเพอร์ตี้ text-box-trim ระบุด้านที่จะตัดด้านบนหรือด้านล่าง และพร็อพเพอร์ตี้ text-box-edge ระบุวิธีตัดขอบ
พร็อพเพอร์ตี้เหล่านี้ช่วยให้คุณควบคุมระยะห่างแนวตั้งได้อย่างแม่นยำโดยใช้เมตริกแบบอักษร ดูข้อมูลเพิ่มเติมได้ใน CSS text-box-trim
ค่า hint ของแอตทริบิวต์ popover
Popover API ระบุลักษณะการทำงานสำหรับค่า 2 ค่าของแอตทริบิวต์ popover
ได้แก่ auto และ manual ฟีเจอร์นี้อธิบายค่าที่ 3
popover=hint คำแนะนำซึ่งมักเชื่อมโยงกับลักษณะการทำงานของประเภท "เคล็ดลับเครื่องมือ" จะมีลักษณะการทำงานที่แตกต่างกันเล็กน้อย ความแตกต่างหลักๆ คือ
hint จะอยู่ภายใต้ auto เมื่อเปิดป๊อปโอเวอร์ที่ซ้อนกัน จึงเป็นไปได้ที่จะเปิดป๊อปโอเวอร์ hint ที่ไม่เกี่ยวข้องในขณะที่ป๊อปโอเวอร์ auto ที่มีอยู่ยังคงเปิดอยู่
ตัวอย่าง Canonical คือ<select>เครื่องมือเลือกเปิดอยู่ (popover=auto) และแสดงเคล็ดลับเครื่องมือที่ทริกเกอร์โดยการวางเมาส์เหนือ (popover=hint) การดำเนินการดังกล่าวจะไม่ปิดเครื่องมือเลือก <select>
การปรับปรุงตำแหน่งขององค์ประกอบที่เรียกใช้และองค์ประกอบยึดของป๊อปโอเวอร์
เพิ่มวิธีที่จำเป็นในการตั้งค่าความสัมพันธ์ของตัวเรียกใช้ระหว่างป๊อปโอเวอร์ด้วย
popover.showPopover({source}) ช่วยให้ความสัมพันธ์ของตัวเรียกใช้สร้าง
การอ้างอิงองค์ประกอบ Anchor โดยนัยได้
ป๊อปโอเวอร์ที่ซ้อนอยู่ภายใน Invoker ไม่ควรอ้างอิงซ้ำ
ในกรณีต่อไปนี้ การคลิกปุ่มอย่างถูกต้องจะเปิดใช้งานป๊อปโอเวอร์ อย่างไรก็ตาม การคลิกป๊อปโอเวอร์เองหลังจากนั้นไม่ควรปิดป๊อปโอเวอร์
<button popovertarget=foo>Activate
<div popover id=foo>Clicking me shouldn't close me</div>
</button>
ก่อนหน้านี้เหตุการณ์นี้เกิดขึ้นเนื่องจากฟองคลิกป๊อปโอเวอร์ไปยัง <button>
และเปิดใช้งาน Invoker ซึ่งจะสลับป๊อปโอเวอร์ให้ปิด ตอนนี้เราได้เปลี่ยน
ให้เป็นลักษณะการทำงานที่คาดไว้แล้ว
Web API
Animation.overallProgress
ช่วยให้นักพัฒนาแอปเห็นภาพที่สะดวกและสอดคล้องกันว่าภาพเคลื่อนไหว
ดำเนินไปไกลเพียงใดในแต่ละการทำซ้ำ และไม่ว่าไทม์ไลน์จะมีลักษณะเป็นอย่างไร
ก็ตาม หากไม่มีพร็อพเพอร์ตี้ overallProgress คุณจะต้อง
คำนวณด้วยตนเองว่าภาพเคลื่อนไหวคืบหน้าไปไกลแค่ไหน โดยพิจารณาจากจำนวน
การวนซ้ำของภาพเคลื่อนไหว และดูว่า currentTime ของภาพเคลื่อนไหวเป็น
เปอร์เซ็นต์ของเวลาทั้งหมด (เช่น ในกรณีของภาพเคลื่อนไหวที่ขับเคลื่อนด้วยการเลื่อน) หรือเป็น
ปริมาณเวลาที่แน่นอน (เช่น ในกรณีของภาพเคลื่อนไหวที่ขับเคลื่อนด้วยเวลา)
เมธอด pause() ของออบเจ็กต์ Atomics
เพิ่มเมธอด pause() ลงในออบเจ็กต์เนมสเปซ Atomics เพื่อบอกใบ้ CPU ว่าโค้ดปัจจุบันกำลังดำเนินการ Spinlock
การรายงานแฮช CSP สำหรับสคริปต์
เว็บแอปพลิเคชันที่ซับซ้อนมักต้องติดตามทรัพยากรย่อยที่ดาวน์โหลดเพื่อวัตถุประสงค์ด้านความปลอดภัย
โดยเฉพาะอย่างยิ่ง มาตรฐานอุตสาหกรรมและแนวทางปฏิบัติแนะนำที่กำลังจะมาถึง (เช่น PCI-DSS v4) กำหนดให้เว็บแอปพลิเคชันต้องเก็บรายการสคริปต์ทั้งหมด ที่ดาวน์โหลดและเรียกใช้
ฟีเจอร์นี้สร้างขึ้นจาก CSP และ Reporting API เพื่อรายงาน URL และแฮช (สำหรับ CORS/แหล่งที่มาเดียวกัน) ของทรัพยากรสคริปต์ทั้งหมดที่เอกสารโหลด
การย้ายที่รักษาสถานะ DOM
เพิ่ม DOM Primitive (Node.prototype.moveBefore) ที่ช่วยให้คุณย้ายองค์ประกอบไปรอบๆ แผนผัง DOM ได้โดยไม่ต้องรีเซ็ตสถานะขององค์ประกอบ
เมื่อย้ายแทนการนำออกและแทรก ระบบจะเก็บสถานะต่อไปนี้ เช่น
<iframe>องค์ประกอบจะยังคงโหลดอยู่- องค์ประกอบที่ใช้งานอยู่จะยังคงโฟกัส
- ป๊อปโอเวอร์ เต็มหน้าจอ และกล่องโต้ตอบแบบโมดอลจะยังคงเปิดอยู่
- การเปลี่ยนและภาพเคลื่อนไหว CSS จะยังคงทำงานต่อไป
แสดงแอตทริบิวต์ attributionsrc ใน <area>
ปรับการแสดงแอตทริบิวต์ attributionsrc ใน <area> ให้สอดคล้องกับลักษณะการประมวลผลที่มีอยู่ของแอตทริบิวต์ แม้ว่าจะไม่ได้แสดงก็ตาม
นอกจากนี้ การรองรับแอตทริบิวต์ใน <area> ยังสมเหตุสมผลด้วย เนื่องจากองค์ประกอบดังกล่าวเป็นพื้นผิวการนำทางชั้นยอด และ Chrome รองรับแอตทริบิวต์นี้ในพื้นผิวอื่นๆ ของ <a> และ window.open อยู่แล้ว
แสดง renderTime แบบข้ามต้นทางที่หยาบในเวลาขององค์ประกอบและ LCP (ไม่ว่า Timing-Allow-Origin จะเป็นอย่างไร)
การจับเวลาองค์ประกอบและรายการ LCP มีแอตทริบิวต์ renderTime ซึ่งสอดคล้องกับเฟรมแรกที่แสดงผลรูปภาพหรือข้อความ
ปัจจุบันแอตทริบิวต์นี้ได้รับการป้องกันสำหรับรูปภาพแบบข้ามโดเมนโดยกำหนดให้ต้องมีส่วนหัว
Timing-Allow-Origin ในแหล่งข้อมูลรูปภาพ อย่างไรก็ตาม ข้อจำกัดดังกล่าวก็หลบเลี่ยงได้ง่าย (เช่น แสดงรูปภาพแบบต้นทางเดียวกันและแบบข้ามต้นทางในเฟรมเดียวกัน)
เนื่องจากข้อจำกัดนี้ทำให้เกิดความสับสน เราจึงวางแผนที่จะนำข้อจำกัดนี้ออกและเพิ่มเวลาในการแสดงผลทั้งหมดเป็น 4 มิลลิวินาทีแทนเมื่อเอกสารไม่ได้แยกแบบข้ามต้นทาง ซึ่งดูเหมือนว่าหยาบพอที่จะหลีกเลี่ยงการรั่วไหล ของข้อมูลที่มีประโยชน์เกี่ยวกับการถอดรหัสรูปภาพข้ามต้นทาง
เปลี่ยนกลับเป็น responseStart และเปิดตัว firstResponseHeadersStart
เมื่อเปิดใช้ 103 Early Hints การตอบกลับจะมี การประทับเวลา 2 รายการ ดังนี้
- เมื่อได้รับคำแนะนำเบื้องต้น (103)
- เมื่อได้รับส่วนหัวสุดท้าย (เช่น 200)
เมื่อ Chrome 115 เปิดตัว
firstInterimResponseStart
เพื่อให้วัดการประทับเวลา 2 รายการนี้ได้ เรายังได้เปลี่ยนความหมายของ
responseStart (ใช้โดย
เวลาที่ได้รับข้อมูลไบต์แรก (TTFB)) ให้หมายถึง
"ส่วนหัวสุดท้าย" ซึ่งทำให้เกิดปัญหาความเข้ากันได้ของเว็บกับเบราว์เซอร์และเครื่องมือที่ไม่ได้ทำการเปลี่ยนแปลงที่คล้ายกันสำหรับเมตริกที่ใช้กันโดยทั่วไปนี้
Chrome 133 จะเปลี่ยนresponseStartนี้เพื่อแก้ไขปัญหาความเข้ากันได้นี้
และจะเปิดตัวfirstResponseHeadersStartแทนเพื่อให้เว็บไซต์วัดเวลาไปยังส่วนหัวสุดท้ายได้
ในขณะที่ยังคงคำจำกัดความเดิมของ TTFB ไว้
FileSystemObserver อินเทอร์เฟซ
อินเทอร์เฟซ FileSystemObserver จะแจ้งให้เว็บไซต์ทราบถึงการเปลี่ยนแปลงในระบบไฟล์ เว็บไซต์จะสังเกตการเปลี่ยนแปลงไฟล์และ
ไดเรกทอรีที่ผู้ใช้เคยให้สิทธิ์ไว้ในอุปกรณ์
ในเครื่องของผู้ใช้ หรือในระบบไฟล์ของ Bucket (หรือที่เรียกว่าระบบไฟล์ส่วนตัวของต้นทาง) และจะได้รับการแจ้งเตือนข้อมูลการเปลี่ยนแปลงพื้นฐาน เช่น ประเภทการเปลี่ยนแปลง
การหยุดทำงานในโหมดประหยัดพลังงาน
เมื่อโหมดประหยัดพลังงานทำงานอยู่ Chrome จะหยุด "กลุ่มบริบทการท่องเว็บ" ที่ซ่อนอยู่และไม่มีการใช้งานนานกว่า 5 นาที หากกลุ่มย่อยใดก็ตามของเฟรมที่มีต้นทางเดียวกันภายในกลุ่มดังกล่าวมีการใช้งาน CPU เกินเกณฑ์ เว้นแต่ว่า
- มีฟังก์ชันการประชุมทางเสียงหรือวิดีโอ (ตรวจพบโดยการระบุไมโครโฟน กล้อง หรือการจับภาพหน้าจอ/หน้าต่าง/แท็บ หรือ RTCPeerConnection ที่มี RTCDataChannel เป็น "open" หรือ MediaStreamTrack เป็น "live")
- ควบคุมอุปกรณ์ภายนอก (ตรวจพบเมื่อใช้ WebUSB, Web Bluetooth, WebHID หรือ Web Serial)
- มีการเชื่อมต่อ Web Lock หรือ IndexedDB ที่บล็อกการอัปเดตเวอร์ชันหรือ ธุรกรรมในการเชื่อมต่ออื่น
การหยุดชั่วคราวคือการหยุดการดำเนินการ ซึ่งมีการกำหนดอย่างเป็นทางการใน Page Lifecycle API
ระบบจะปรับเทียบเกณฑ์การใช้งาน CPU เพื่อหยุดแท็บเบื้องหลังประมาณ 10% เมื่อโหมดประหยัดพลังงานทำงาน
แผนที่การนำเข้าหลายรายการ
ปัจจุบันต้องโหลด Import Map ก่อนโมดูล ES และมี Import Map ได้เพียงรายการเดียวต่อเอกสาร ซึ่งทำให้โมดูลเหล่านี้เปราะบางและอาจช้าเมื่อ ใช้ในสถานการณ์จริง โมดูลใดก็ตามที่โหลดก่อนโมดูลเหล่านี้จะทำให้แอปทั้ง หมดใช้งานไม่ได้ และในแอปที่มีโมดูลจำนวนมาก โมดูลเหล่านี้จะกลายเป็นทรัพยากรที่บล็อกขนาดใหญ่ เนื่องจากต้องโหลดแผนที่ทั้งหมดสำหรับโมดูลที่เป็นไปได้ทั้งหมดก่อน
ฟีเจอร์นี้ช่วยให้มีแผนที่การนำเข้าหลายรายการต่อเอกสารได้โดยการผสานรวมแผนที่เหล่านั้นในลักษณะที่สอดคล้องกันและกำหนดได้
ส่วนหัวการเข้าถึงพื้นที่เก็บข้อมูล
เสนอวิธีอื่นให้การฝังที่ผ่านการตรวจสอบสิทธิ์เลือกใช้คุกกี้ที่ไม่ได้แบ่งพาร์ติชัน ส่วนหัวเหล่านี้จะระบุว่าคุกกี้ที่ไม่ได้แบ่งพาร์ติชันรวมอยู่ (หรืออาจรวมอยู่) ในคำขอเครือข่ายที่ระบุหรือไม่ และอนุญาตให้เซิร์ฟเวอร์เปิดใช้งานสิทธิ์ "storage-access" ที่ได้รับแล้ว การให้วิธีอื่นในการเปิดใช้งานสิทธิ์ 'storage-access' จะช่วยให้ทรัพยากรที่ไม่ใช่ iframe สามารถใช้งานได้ และลดเวลาในการตอบสนองสำหรับการฝังที่ผ่านการตรวจสอบสิทธิ์แล้ว
สนับสนุนการสร้าง ClipboardItem ด้วย Promise<DOMString>
ตอนนี้ ClipboardItem ซึ่งเป็นอินพุตของเมธอด write() ของคลิปบอร์ดแบบไม่พร้อมกัน ยอมรับค่าสตริงนอกเหนือจาก Blob ในตัวสร้างแล้ว
ClipboardItemData อาจเป็น Blob, สตริง หรือ Promise ที่เปลี่ยนเป็น
Blob หรือสตริงก็ได้
WebAssembly Memory64
ข้อเสนอ memory64 เพิ่มการรองรับหน่วยความจำ WebAssembly เชิงเส้นที่มีขนาดใหญ่กว่า 2^32 บิต โดยจะไม่มีวิธีการใหม่ แต่จะขยายวิธีการที่มีอยู่เพื่อ อนุญาตให้ใช้ดัชนี 64 บิตสำหรับความทรงจำและตาราง
Web Authentication API: วิธี PublicKeyCredential getClientCapabilities()
เมธอด PublicKeyCredential getClientCapabilities() ช่วยให้คุณระบุได้ว่าไคลเอ็นต์ของผู้ใช้รองรับฟีเจอร์ WebAuthn ใดบ้าง เมธอดจะแสดงรายการความสามารถที่รองรับ ซึ่งช่วยให้นักพัฒนาซอฟต์แวร์ปรับแต่งประสบการณ์การตรวจสอบสิทธิ์และเวิร์กโฟลว์ตามฟังก์ชันการทำงานเฉพาะของไคลเอ็นต์ได้
WebGPU: รูปแบบจุดยอดแบบ 1 องค์ประกอบ (และ unorm8x4-bgra)
เพิ่มรูปแบบจุดยอดเพิ่มเติมที่ไม่มีในการเปิดตัว WebGPU ครั้งแรกเนื่องจาก ไม่มีการรองรับหรือ macOS เวอร์ชันเก่า (ซึ่งไม่มีเบราว์เซอร์ใดรองรับอีกต่อไป) รูปแบบจุดยอดแบบ 1 องค์ประกอบช่วยให้แอปพลิเคชันขอเฉพาะข้อมูลที่จำเป็นได้ ในขณะที่ก่อนหน้านี้แอปพลิเคชันต้องขอข้อมูลมากกว่า 2 เท่าสำหรับประเภทข้อมูล 8 และ 16 บิต รูปแบบ unorm8x4-bgra ช่วยให้โหลดสีของจุดยอดที่เข้ารหัส BGRA ได้สะดวกขึ้นเล็กน้อยในขณะที่ใช้ Shader เดียวกัน
อัลกอริทึม X25519 ของ Web Cryptography API
อัลกอริทึม "X25519" มีเครื่องมือในการทำข้อตกลงเกี่ยวกับคีย์โดยใช้ฟังก์ชัน X25519 ที่ระบุไว้ใน [RFC7748] ตัวระบุอัลกอริทึม "X25519" สามารถใช้ในอินเทอร์เฟซ SubtleCrypto เพื่อเข้าถึงการดำเนินการที่ใช้ได้ ได้แก่ generateKey, importKey, exportKey, deriveKey และ deriveBits
ช่วงทดลองใช้จากต้นทางใหม่
ใน Chrome 133 คุณสามารถเลือกใช้Origin Trials ใหม่ต่อไปนี้ได้
เลือกไม่ใช้การหยุดชั่วคราวในโหมดประหยัดพลังงาน
การทดลองใช้การเลือกไม่ใช้นี้ช่วยให้เว็บไซต์เลือกไม่ใช้การระงับในลักษณะการทำงานของโหมดประหยัดพลังงานที่เปิดตัวใน Chrome 133 ได้
การเลิกใช้งานและการนำออก
Chrome เวอร์ชันนี้มีการเลิกใช้งานและการนำออกตามรายการด้านล่าง ไปที่ ChromeStatus.com เพื่อดูรายการการเลิกใช้งานที่วางแผนไว้ การเลิกใช้งานในปัจจุบัน และการนำออกก่อนหน้า
Chrome รุ่นนี้จะเลิกใช้งานฟีเจอร์หนึ่ง
เลิกใช้งานขีดจำกัด WebGPU maxInterStageShaderComponents
เราเลิกใช้งาน maxInterStageShaderComponents limit เนื่องจากปัจจัยหลายประการ
วันที่ตั้งใจจะนำออกใน Chrome 135
- ความซ้ำซ้อนกับ
maxInterStageShaderVariables: ขีดจำกัดนี้มีวัตถุประสงค์คล้ายกันอยู่แล้ว คือควบคุมปริมาณข้อมูลที่ส่งผ่านระหว่างเชดเดอร์ในแต่ละขั้นตอน - ความคลาดเคลื่อนเล็กน้อย: แม้ว่าขีดจํากัดทั้ง 2 รายการจะมีการคํานวณที่แตกต่างกันเล็กน้อย แต่ความแตกต่างนี้ถือว่าเล็กน้อยและสามารถจัดการได้อย่างมีประสิทธิภาพภายใน
maxInterStageShaderVariables - การลดความซับซ้อน: การนำ
maxInterStageShaderComponentsออกจะช่วยปรับปรุง อินเทอร์เฟซของ Shader และลดความซับซ้อนสำหรับนักพัฒนาแอป แทนที่จะจัดการโควต้า 2 รายการแยกกันซึ่งมีความแตกต่างกันเล็กน้อย ผู้ใช้จะสามารถมุ่งเน้นไปที่maxInterStageShaderVariablesที่มีชื่อที่เหมาะสมและครอบคลุมมากขึ้น
Chrome เวอร์ชันนี้จะนำฟีเจอร์ 2 รายการออก
นำ<link rel=prefetch>กฎ 5 นาทีออก
ก่อนหน้านี้ เมื่อมีการดึงข้อมูลล่วงหน้าของทรัพยากรโดยใช้ <link rel=prefetch> Chrome
จะไม่สนใจความหมายของการแคช (กล่าวคือ max-age และ no-cache) สำหรับการใช้งานครั้งแรก
ภายใน 5 นาที เพื่อหลีกเลี่ยงการดึงข้อมูลอีกครั้ง ตอนนี้ Chrome จะนำกรณีพิเศษนี้ออก
และใช้ความหมายของแคช HTTP ปกติ
ซึ่งหมายความว่านักพัฒนาเว็บต้องรวมส่วนหัวการแคชที่เหมาะสม
(Cache-Control หรือ Expires) เพื่อรับประโยชน์จาก <link rel=prefetch>
ซึ่งจะส่งผลต่อ <link rel=prerender> ที่ไม่ได้มาตรฐานด้วย
นำการทริกเกอร์หน้าต้อนรับของ Chrome ออกด้วยแท็บการเรียกใช้ครั้งแรกของค่ากำหนดเริ่มต้น
การรวม chrome://welcome ในพร็อพเพอร์ตี้ first_run_tabs ของไฟล์
initial_preferences จะไม่มีผลอีกต่อไป เรานำส่วนนี้ออกเนื่องจากหน้าดังกล่าวซ้ำซ้อนกับประสบการณ์การใช้งานครั้งแรกที่ทริกเกอร์ในแพลตฟอร์มเดสก์ท็อป