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

โจ เมดเลย์
โจ้ เมดเลย์

เราเห็นการอัปเดตและการปรับปรุงผลิตภัณฑ์ ประสิทธิภาพ และความสามารถของแพลตฟอร์มเว็บใน Chrome เกือบทุกเวอร์ชัน บทความนี้อธิบายถึงการเปลี่ยนแปลงใน Chrome 52 ซึ่งเป็น รุ่นเบต้า ณ วันที่ 9 มิถุนายน รายการนี้อาจเปลี่ยนแปลงได้ตลอดเวลา

เลิกใช้งานเหตุการณ์และแอตทริบิวต์และแอตทริบิวต์ที่สิ้นสุดของ MediaStream

TL;DR: เรากำลังเลิกใช้งานเหตุการณ์และแอตทริบิวต์ ended รวมถึงเครื่องจัดการเหตุการณ์ onended เนื่องจากมีการนำออกจากข้อกำหนดของการจับภาพและสตรีมสื่อ

เจตนาเพื่อนำออก | ตัวติดตาม Chromestatus | ข้อบกพร่อง Chromium

ทั้งเหตุการณ์ ended และเครื่องจัดการเหตุการณ์ onended ไม่ได้อยู่ในข้อกำหนด WebRTC มาเป็นเวลาประมาณ 3 ปีแล้ว นักพัฒนาแอปที่ต้องการดูกิจกรรมควรใช้ MediaStreamTracks แทน MediaStreams

คาดว่าจะนำออกได้ใน Chrome 53

บล็อกป๊อปอัปจาก iframe แบบข้ามต้นทางระหว่างการแตะ ยกเว้นระหว่างท่าทางสัมผัสการแตะ

TL;DR: Chrome จะเริ่มไม่อนุญาตป๊อปอัปและการดำเนินการอื่นๆ ที่ละเอียดอ่อนกับเหตุการณ์การแตะที่ไม่ตรงกับการแตะจากภายใน iframe แบบข้ามต้นทาง

เจตนาเพื่อนำออก | ตัวติดตาม Chromestatus | ข้อบกพร่อง Chromium

โดยธรรมชาติแล้ว เหตุการณ์การแตะอาจไม่ชัดเจนเมื่อเทียบกับเหตุการณ์เมาส์ที่เกี่ยวข้อง ตัวอย่างเช่น หากผู้ใช้เลื่อนนิ้วผ่านหน้าจอ ผู้ใช้ต้องเลื่อนสวิตช์สลับหรือเลื่อนมุมมองใช่ไหม เนื้อหาของบุคคลที่สามบางส่วนใน iframe ใช้ประโยชน์จากความกำกวมนี้เพื่อปิดใช้การเลื่อนในหน้าที่มีโดยเจตนา

เพื่อป้องกันปัญหานี้ ป๊อปอัปและการดำเนินการที่มีความละเอียดอ่อนอื่นๆ จะไม่ได้รับอนุญาตในเหตุการณ์การแตะจาก iframe แบบข้ามต้นทาง เหตุการณ์การแตะจะยังคงทำงานเหมือนเดิม

เลิกใช้งานการโอเวอร์โหลด postMessage()

TL;DR: เรากำลังจะเลิกใช้งานอินเทอร์เฟซ postMessage() ซึ่งเป็นตัวแปรที่ไม่จำเป็นและใช้งานน้อยมาก โดยเฉพาะ postMessage(message, transferables, targetOrigin)

เจตนาเพื่อนำออก | ตัวติดตาม Chromestatus | ข้อบกพร่อง Chromium

เมธอด postMessage() เป็นวิธีการสื่อสารอย่างปลอดภัยระหว่างสคริปต์ของหน้าเว็บในต้นทางต่างๆ WebKit/Blink รองรับ 3 เวอร์ชัน ดังนี้

  • postMessage(message, targetOrigin)
  • postMessage(message, targetOrigin, transferables)
  • postMessage(message, transferables, targetOrigin)

รายการสุดท้ายในรายการนี้คืออุบัติเหตุจากประวัติวิวัฒนาการและการติดตั้งใช้งานของข้อกำหนดเฉพาะ เนื่องจากมีการใช้งานน้อย เราจึงเลิกใช้งานและนำออกในภายหลัง นโยบายนี้มีผลกับทั้ง window.postMessage() และ worker.postMessage()

คาดว่าจะนำออกได้ใน Chrome 54

นำการรองรับ X-Frame-Options ใน แท็ก

TL;DR: เรากำลังจะเลิกรองรับ X-Frame-Options ภายในแท็ก <meta> เพื่อให้สอดคล้องกับข้อกำหนดและเพิ่มความสอดคล้องกับเบราว์เซอร์อื่นๆ

เจตนาเพื่อนำออก | ข้อบกพร่อง Chromium

ส่วนหัวการตอบกลับ HTTP X-Frame-Options จะระบุว่าเบราว์เซอร์แสดงหน้าในแท็ก <frame>, <iframe> หรือ <object> ได้หรือไม่ วิธีนี้จะช่วยให้เว็บไซต์หลีกเลี่ยงการคลิกเนื่องจากหน้าเหล่านั้นจะไม่สามารถฝังในเว็บไซต์อื่นๆ ได้ ข้อกำหนดของ X-Frame-Options เวอร์ชันปัจจุบันจำกัดไม่ให้ User Agent รองรับช่องนี้ภายในแท็ก <meta> อย่างชัดแจ้ง

เราจะนำการรองรับ X-Frame-Options ภายในแท็ก <meta> ออกเพื่อให้เป็นไปตามข้อกำหนดและเพิ่มความสอดคล้องกันกับเบราว์เซอร์อื่น

นำเหตุการณ์การคลิกปุ่มที่ไม่ใช่เหตุการณ์หลักออก

TL;DR: การคลิกเมาส์ที่ไม่ใช่หลักจะไม่เริ่มการทำงานของกิจกรรมการคลิกอีกต่อไป แต่ MouseEvent.button จะยังคงใช้ได้อยู่

เจตนาเพื่อนำออก | ตัวติดตาม Chromestatus | ข้อบกพร่อง Chromium

เพื่อให้ Chrome สอดคล้องกับข้อกําหนดของ UIEvents เราจะนําเหตุการณ์การคลิกสําหรับปุ่มที่ไม่ใช่เมาส์หลักออก ปุ่มที่ไม่ใช่ปุ่มหลักของเมาส์จะแตกต่างกันไปตามอุปกรณ์ โดยทั่วไปจะหมายถึงอย่างอื่นนอกเหนือจากปุ่มเมาส์ขวาหรือซ้าย โปรดทราบว่า ระบบอาจยังคงดึงข้อมูลปุ่มที่แน่นอนที่คลิกโดยใช้พร็อพเพอร์ตี้ MouseEvent.button ที่ส่งไปยังเหตุการณ์ เช่น mousedown หรือ mouseup

นำ requestAutocomplete() ออก

ฟังก์ชัน requestAutocomplete() ช่วยให้กรอกแบบฟอร์มได้ตามคำขอด้วยความสามารถในการป้อนข้อความอัตโนมัติของเบราว์เซอร์ อย่างไรก็ตาม เป็นเวลากว่า 2 ปีแล้วที่ Blink ได้รองรับเฉพาะความสามารถนี้เท่านั้นและมีการใช้งานต่ำ ด้วยเหตุนี้ เราจึงนำ requestAutocomplete() ออกจาก Chrome 52

ความตั้งใจที่จะนำออก