การเลิกใช้งานและการนำออกใน Chrome 58

Joe Medley
Joe Medley

ใน 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
การเคลื่อนไหว ออฟเซ็ต

Intent to Remove

นำ 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

เราได้นําองค์ประกอบอินเทอร์เฟซ 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