ใน Chrome เกือบทุกเวอร์ชัน เราเห็นการอัปเดตและการปรับปรุงผลิตภัณฑ์ ประสิทธิภาพ และความสามารถของแพลตฟอร์มเว็บเป็นจำนวนมาก บทความนี้อธิบายการเลิกใช้งานและการนำออกใน Chrome 58 ซึ่งอยู่ในรุ่นเบต้าตั้งแต่วันที่ 16 มีนาคม รายการนี้อาจมีการเปลี่ยนแปลงได้ทุกเมื่อ
เมาส์ใน Android หยุดเรียกใช้ TouchEvents
จนถึง Chrome เวอร์ชัน 57 เหตุการณ์เมาส์ระดับต่ำของ Android ใน Chrome ส่วนใหญ่จะเป็นไปตามเส้นทางเหตุการณ์ที่ออกแบบมาเพื่อการโต้ตอบด้วยการสัมผัส ตัวอย่างเช่น การเคลื่อนไหวการลากเมาส์ที่เกิดขึ้นขณะกดปุ่มเมาส์จะสร้าง MotionEvents
ซึ่งส่งผ่าน View.onTouchEvent
แต่เนื่องจากเหตุการณ์การสัมผัสไม่รองรับการโฮเวอร์ การเคลื่อนไหวของเม้าส์ขณะโฮเวอร์จึงเป็นไปตามเส้นทางแยกต่างหาก การออกแบบนี้ก่อให้เกิดผลข้างเคียงหลายอย่าง เช่น การโต้ตอบของเมาส์จะทริกเกอร์ TouchEvents
, ปุ่มเมาส์ทั้งหมดจะปรากฏเป็นปุ่มเมาส์ซ้าย และ MouseEvents
ถูก TouchEvents
บล็อก
ตั้งแต่ Chrome 58 เป็นต้นไป การใช้เมาส์ใน Android M ขึ้นไปจะมีลักษณะดังนี้
- ไม่ได้ยิง
TouchEvents
แล้ว - เรียกใช้
MouseEvents
ตามลําดับที่สอดคล้องกันโดยมีปุ่มและพร็อพเพอร์ตี้อื่นๆ ที่เหมาะสม
Intent to Remove | Chromestatus Tracker | ข้อบกพร่องของ Chromium
นำการจับคู่โดยไม่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่สำหรับแอตทริบิวต์ usemap ออก
ก่อนหน้านี้แอตทริบิวต์ usemap
ได้รับการกําหนดให้ไม่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ ขออภัย การใช้งานนี้มีความซับซ้อนมากจนไม่มีเบราว์เซอร์ใดใช้งานอย่างถูกต้อง งานวิจัยชี้ว่าไม่จำเป็นต้องใช้อัลกอริทึมที่ซับซ้อนเช่นนี้ และแม้แต่การจับคู่แบบไม่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ของ ASCII ก็ไม่จำเป็นต้องใช้
ด้วยเหตุนี้ ข้อกําหนดจึงได้รับการอัปเดตเพื่อให้ใช้การจับคู่ที่คำนึงถึงตัวพิมพ์เล็กและใหญ่ ลักษณะการทำงานแบบเก่าเลิกใช้งานแล้วใน Chrome 57 และตอนนี้ก็นำออกแล้ว
Intent to Remove | Chromestatus Tracker | ข้อบกพร่องของ Chromium
นำการนำทางเฟรมด้านบนที่เนื้อหาเริ่มต้นไปยัง URL ของข้อมูลออก
เราพบว่ามีการใช้รูปแบบ data:
ในการโจมตีแบบสแปมฟิชชิงและฟิชชิงมากขึ้น เนื่องจากผู้ใช้เบราว์เซอร์ที่ไม่ใช่ผู้เชี่ยวชาญทางเทคนิคไม่คุ้นเคยกับรูปแบบนี้ เพื่อป้องกันปัญหานี้ เราจึงบล็อกไม่ให้หน้าเว็บโหลด URL data:
ในเฟรมด้านบน ซึ่งมีผลกับแท็ก <a>
, window.open
,
window.location
และกลไกที่คล้ายกัน รูปแบบ data:
จะยังคงใช้งานได้กับแหล่งข้อมูลที่โหลดด้านล่างตามหน้า
เราจะนำฟีเจอร์นี้ออกใน Chrome 60
Intent to Remove | Chromestatus Tracker | ข้อบกพร่องของ Chromium
นําชื่อที่เลิกใช้งานแล้วสําหรับพร็อพเพอร์ตี้เส้นทางการเคลื่อนไหวออก
พร็อพเพอร์ตี้ CSS เส้นทางการเคลื่อนไหวช่วยให้ผู้เขียนสร้างภาพเคลื่อนไหวของวัตถุกราฟิกตามเส้นทางที่ผู้เขียนระบุ เราได้ติดตั้งใช้งานพร็อพเพอร์ตี้หลายรายการใน Chrome 45 เพื่อให้เป็นไปตามข้อกําหนด ชื่อของพร็อพเพอร์ตี้เหล่านี้มีการเปลี่ยนแปลงในข้อกําหนดกลางปี 2016 Chrome ได้เริ่มใช้ชื่อใหม่ใน Chrome 55 และ Chrome 56 นอกจากนี้ เรายังได้ติดตั้งใช้งานคำเตือนการเลิกใช้งานคอนโซลด้วย
ใน Chrome 58 เราจะนําชื่อพร็อพเพอร์ตี้เดิมออก พร็อพเพอร์ตี้ที่ได้รับผลกระทบและชื่อใหม่แสดงอยู่ด้านล่าง
พร็อพเพอร์ตี้ที่ถูกนำออก | ชื่อปัจจุบัน |
---|---|
motion-path | offset-path |
motion-offset | offset-distance |
motion-rotation | offset-rotate |
การเคลื่อนไหว | ออฟเซ็ต |
นำ EME ออกจากบริบทที่ไม่ปลอดภัย
การใช้งานส่วนขยายสื่อที่เข้ารหัส (EME) บางรายการจะเปิดเผยการใช้งานการจัดการสิทธิ์ดิจิทัลที่ไม่ใช่โอเพนซอร์ส เกี่ยวข้องกับการเข้าถึงตัวระบุที่ไม่ซ้ำกันแบบถาวร และ/หรือทำงานแบบไม่อยู่ในแซนด์บ็อกซ์หรือมีสิทธิ์เข้าถึงที่มีสิทธิ์ เว็บไซต์ที่แสดงผ่าน HTTP ที่ไม่ปลอดภัยจะมีความเสี่ยงด้านความปลอดภัยมากขึ้น เนื่องจากทุกคนในช่องทางสามารถโจมตีเว็บไซต์ดังกล่าวได้ นอกจากนี้ เมื่อจำเป็นต้องได้รับความยินยอมจากผู้ใช้ ผู้โจมตีดังกล่าวอาจใช้ประโยชน์จากการยอมรับที่ยังคงอยู่สำหรับเว็บไซต์ HTTP ที่ไม่ปลอดภัย
ระบบนำการรองรับบริบทที่ไม่ปลอดภัยออกจากข้อกำหนด EME เวอร์ชัน 1 และระบบไม่รองรับคำแนะนำที่เสนอหรือคาดว่าจะรองรับในเวอร์ชันสุดท้ายที่ตามมา จะไม่อยู่ในคำแนะนำที่เสนอหรือคำแนะนำสุดท้ายที่ตามมา API แสดงข้อความการเลิกใช้งานในต้นทางที่ไม่ปลอดภัยมาตั้งแต่ Chrome 44 (พฤษภาคม 2015) ใน Chrome 58 เราได้นําตัวเลือกนี้ออกแล้ว การเปลี่ยนแปลงนี้เป็นส่วนหนึ่งของความพยายามที่กว้างขึ้นของเราในการนำฟีเจอร์ที่มีประสิทธิภาพออกจากแหล่งที่มาที่ไม่ปลอดภัย
Intent to Remove | Chromestatus Tracker | ข้อบกพร่องของ Chromium
นําตัวเรียกใช้เดิมของ HTMLEmbedElement และ HTMLObjectElement ออก
การที่อินเทอร์เฟซมีผู้เรียกแบบเดิมหมายความว่าอินสแตนซ์สามารถเรียกใช้เป็นฟังก์ชันได้ ปัจจุบัน HTMLEmbedElement
และ HTMLObjectElement
รองรับฟังก์ชันการทำงานนี้ เราเลิกใช้งานความสามารถนี้ใน Chrome 57 ตั้งแต่ Chrome 58 เป็นต้นไป การเรียกใช้จะทำให้เกิดข้อยกเว้น
การเปลี่ยนแปลงนี้จะทำให้ Chrome สอดคล้องกับการเปลี่ยนแปลงข้อกำหนดล่าสุด Edge หรือ Safari ไม่รองรับลักษณะการทำงานเดิม และเราจะนำออกจาก Firefox
Intent to Remove | Chromestatus Tracker | ข้อบกพร่องของ Chromium
นำการเข้ารหัส ChaCha20-Poly1305 ก่อนมาตรฐานออก
ในปี 2013 Chrome 31 ได้ใช้งานชุดการเข้ารหัส TLS ใหม่ตามอัลกอริทึม ChaCha20 และ Poly1305 ของศาสตราจารย์ Dan Bernstein มาตรฐานเหล่านี้ได้รับการปรับแต่งเล็กน้อยและกลายเป็นมาตรฐานของ IETF ในภายหลัง โดยใช้ชื่อว่า RFC 7539 และ RFC 7905 เราได้เปิดตัวตัวแปรมาตรฐานไปเมื่อต้นปี 2016 กับ Chrome 49 ตอนนี้เรากําลังนําตัวแปรก่อนมาตรฐานออก
Intent to Remove | Chromestatus Tracker | ข้อบกพร่องของ Chromium
นำการรองรับการจับคู่ commonName ในใบรับรองออก
RFC 2818 อธิบายวิธีการ 2 วิธีในการจับคู่ชื่อโดเมนกับใบรับรอง ได้แก่ การใช้ชื่อที่มีให้ภายในส่วนขยาย subjectAlternativeName
หรือในกรณีที่ไม่มีส่วนขยาย SAN ให้ใช้ commonName
การใช้ commonName
เป็นทางเลือกสุดท้ายถูกเลิกใช้งานใน RFC 2818 (เผยแพร่ในปี 2000) แต่ยังคงมีการสนับสนุนในไคลเอ็นต์ TLS บางรายการ ซึ่งมักใช้อย่างไม่ถูกต้อง
การใช้ช่อง subjectAlternativeName
จะทำให้ทราบว่าใบรับรองแสดงการเชื่อมโยงกับที่อยู่ IP หรือชื่อโดเมน และมีการกําหนดไว้อย่างสมบูรณ์ในแง่ของการโต้ตอบกับข้อจํากัดชื่อ อย่างไรก็ตาม commonName
มีความคลุมเครือ และด้วยเหตุนี้ การสนับสนุนcommonName
จึงเป็นแหล่งที่มาของข้อบกพร่องด้านความปลอดภัยใน Chrome, ไลบรารีที่ใช้ และภายในระบบนิเวศ TLS โดยรวม
ความเสี่ยงด้านความเข้ากันได้ของการนำ commonName
ออกมีระดับต่ำ RFC 2818 เลิกใช้งานแอตทริบิวต์นี้มาเกือบ 20 ปีแล้ว และข้อกำหนดพื้นฐาน (ซึ่งผู้ออกใบรับรองที่เชื่อถือได้ทั้งหมดต้องปฏิบัติตาม) กำหนดให้มี subjectAltName
มาตั้งแต่ปี 2012 Firefox กำหนดให้ใช้subjectAltName
สำหรับใบรับรองที่ได้รับความเชื่อถือจากสาธารณะซึ่งออกใหม่ตั้งแต่Firefox 48 อยู่แล้ว
Intent to Remove | Chromestatus Tracker | ข้อบกพร่องของ Chromium
ข้อมูลส่วน VTTRegion ของ TextTrack
เราได้นําองค์ประกอบอินเทอร์เฟซ regions
, addRegion()
และ removeRegion()
ออกจากข้อกําหนดของ WebVTT และนําออกจาก Chrome 58 เพื่อให้เป็นไปตามข้อกําหนดล่าสุด เราคาดว่าการนําออกนี้จะไม่ส่งผลกระทบมากนักเนื่องจากฟีเจอร์นี้ไม่เคยเปิดใช้โดยค่าเริ่มต้น (หมายความว่าฟีเจอร์นี้อยู่เบื้องหลัง Flag) ผู้ที่ต้องการใช้ทางเลือกอื่นสามารถใช้พร็อพเพอร์ตี้ VTTCue.region
ที่เพิ่มเข้ามาใน Chrome 58
เครื่องมือติดตามสถานะ Chrome | ข้อบกพร่องของ Chromium
WebAudio: นำอินเทอร์เฟซ AudioSourceNode ออก
อินเทอร์เฟซ AudioSourceNode
ไม่ได้อยู่ในข้อกำหนดของ Web Audio, สร้างไม่ได้ และไม่มีแอตทริบิวต์ ดังนั้นจึงไม่มีฟังก์ชันการทำงานที่นักพัฒนาซอฟต์แวร์เข้าถึงได้ เราจึงจะนำวิดีโอดังกล่าวออก
Intent to Remove | Chromestatus Tracker | ข้อบกพร่องของ Chromium
นำแอตทริบิวต์ส่วนกลาง webkitdropzone ออก
แอตทริบิวต์ส่วนกลาง dropzone
ได้รับการแนะนำโดยข้อกำหนดการลากและวาง HTML5 เพื่อเป็นวิธีการประกาศสำหรับการระบุความเต็มใจขององค์ประกอบ HTML ที่จะรับการดำเนินการลากและวาง ประเภทเนื้อหาที่วางลงในองค์ประกอบได้ และการดำเนินการลากและวาง (คัดลอก/ย้าย/ลิงก์)
แอตทริบิวต์นี้ไม่ได้รับความสนใจจากผู้ให้บริการเบราว์เซอร์ Blink และ WebKit ใช้เฉพาะรูปแบบที่มีคำนำหน้าของแอตทริบิวต์ webkitdropzone
เนื่องจากเราได้นําแอตทริบิวต์ dropzone
ออกจากข้อกําหนดในต้นเดือนมีนาคม 2017 เราจึงจะนําเวอร์ชันที่มีคำนำหน้าออกจาก Chrome
Intent to Remove | Chromestatus Tracker | ข้อบกพร่องของ Chromium
เลิกใช้งานการแจ้งเตือนที่ไม่ปลอดภัย
การแจ้งเตือนเป็นฟีเจอร์ที่มีประสิทธิภาพเนื่องจากช่วยให้เว็บไซต์เรียกใช้ UI ของระบบเพื่อส่งข้อมูลส่วนตัวหรือสัญญาณว่าข้อมูลส่วนตัวมีการเปลี่ยนแปลง ผู้โจมตีอาจดักฟังหรือขโมยข้อมูลที่ส่งผ่านการแจ้งเตือนผ่านการเชื่อมต่อที่ไม่ปลอดภัย ข้อความ Push บนเว็บต้องมีต้นทางที่ปลอดภัย การเปลี่ยนแปลงนี้จึงจะทำให้การแจ้งเตือนที่ไม่ใช่ข้อความ Push สอดคล้องกับข้อความ Push การเปลี่ยนแปลงนี้เป็นส่วนหนึ่งของความพยายามที่กว้างขึ้นของเราในการนำฟีเจอร์ที่มีประสิทธิภาพออกจากแหล่งที่มาที่ไม่ปลอดภัย
Intent to Remove | Chromestatus Tracker | ข้อบกพร่องของ Chromium
เลิกใช้งานการแจ้งเตือนจาก iframe ที่ไม่ปลอดภัย
คำขอสิทธิ์จาก iframe อาจทำให้ผู้ใช้สับสน เนื่องจากแยกแหล่งที่มาของหน้าเว็บที่รวมอยู่และแหล่งที่มาของ iframe ที่ส่งคำขอได้ยาก เมื่อขอบเขตคำขอไม่ชัดเจน ผู้ใช้จะตัดสินใจได้ยากว่าจะให้หรือปฏิเสธสิทธิ์
การไม่อนุญาตการแจ้งเตือนใน iframe จะปรับข้อกําหนดของสิทธิ์การแจ้งเตือนให้สอดคล้องกับสิทธิ์ของข้อความ Push ด้วย ซึ่งจะช่วยให้นักพัฒนาแอปทำงานได้ง่ายขึ้น
นักพัฒนาแอปที่ต้องการฟังก์ชันการทำงานนี้สามารถเปิดหน้าต่างใหม่เพื่อขอสิทธิ์การแจ้งเตือน
การนําออกจะมีใน Chrome 62
Intent to Remove | Chromestatus Tracker | ข้อบกพร่องของ Chromium
นำ indexedDB.webkitGetDatabaseNames() ออก
เราเพิ่มฟีเจอร์นี้เมื่อ Indexed DB ยังเป็นฟีเจอร์ใหม่ใน Chrome และการใช้คำนำหน้ากำลังได้รับความนิยม API จะแสดงรายการชื่อฐานข้อมูลที่มีอยู่แบบไม่พร้อมกันในต้นทาง ซึ่งดูเหมือนจะสมเหตุสมผลดี
ขออภัย การออกแบบมีข้อบกพร่องตรงที่ผลลัพธ์อาจล้าสมัยทันทีที่แสดงผล จึงใช้ได้กับการบันทึกเท่านั้น ไม่ใช่ตรรกะการทํางานของแอปพลิเคชัน ปัญหา github ติดตาม/ลิงก์ไปยังการสนทนาก่อนหน้าเกี่ยวกับทางเลือก ซึ่งต้องใช้แนวทางอื่น แม้ว่านักพัฒนาซอฟต์แวร์จะสนใจบ้างเป็นครั้งคราว แต่เนื่องจากยังไม่มีความคืบหน้าในการทํางานข้ามเบราว์เซอร์ นักเขียนไลบรารีจึงแก้ปัญหานี้ด้วยวิธีอื่น
นักพัฒนาแอปที่ต้องการฟังก์ชันการทำงานนี้ต้องพัฒนาโซลูชันของตนเอง เช่น ไลบรารีอย่าง Dexie.js ใช้ตารางส่วนกลางซึ่งเป็นฐานข้อมูลอีกประเภทหนึ่งเพื่อติดตามชื่อฐานข้อมูล
เรานำฟีเจอร์นี้ออกจาก Chrome 60 แล้ว
ความตั้งใจที่จะเลิกใช้งาน | เครื่องมือติดตามสถานะ Chrome | ข้อบกพร่องของ Chromium