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

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

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

นำแอตทริบิวต์ BluetoothDevice.uuids ออก

แอตทริบิวต์ BluetoothDevice.uuids จะถูกนำออกเพื่อให้ Web Bluetooth API สอดคล้องกับข้อกำหนดปัจจุบัน คุณเรียกข้อมูลบริการ GATT ที่อนุญาตทั้งหมดได้โดยเรียกใช้ device.getPrimaryServices()

ข้อบกพร่อง Chromium

นำองค์ประกอบการสร้างคีย์ออก

ตั้งแต่ Chrome 49 เป็นต้นไป ลักษณะการทำงานเริ่มต้นของ <keygen> คือการแสดงสตริงว่าง เว้นแต่จะได้รับสิทธิ์ในหน้านี้ IE/Edge ไม่รองรับ <keygen> และไม่ได้ระบุสัญญาณสาธารณะที่จะรองรับ <keygen> Firefox ปิดกั้น <keygen> ด้านหลังท่าทางสัมผัสของผู้ใช้แล้ว แต่สนับสนุนการนำออกต่อสาธารณะ Safari จัดส่ง <keygen> และไม่ได้แสดงมุมมองสาธารณะเกี่ยวกับการสนับสนุนอย่างต่อเนื่อง แต่ใน Chrome 57 ระบบจะนำองค์ประกอบนี้ออก

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

นำ API การจัดการบัฟเฟอร์ของเวลาทรัพยากรที่มีคำนำหน้าออก

มี 2 เมธอดและเครื่องจัดการเหตุการณ์ webkitClearResourceTimings(), webkitSetResourceTimingBufferSize() และ onwebkitresourcetimingbufferfull ที่เลิกใช้แล้ว แต่มีไว้สำหรับผู้ให้บริการโดยเฉพาะ ระบบได้รองรับเวอร์ชันมาตรฐานของ API เหล่านี้ตั้งแต่ Chrome 46 เป็นต้นไป และฟังก์ชันที่นำหน้าได้ก็เลิกใช้งานไปแล้วในเวอร์ชันดังกล่าวด้วย เดิมคุณลักษณะเหล่านี้ติดตั้งอยู่ใน WebKit แต่ Safari ไม่ได้เปิดใช้งาน Firefox, IE 10 ขึ้นไปและ Edge มีเฉพาะ API เวอร์ชันที่ไม่มีคำนำหน้า ดังนั้นระบบจึงจะนำเวอร์ชัน webkit ออก

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

นำ ServiceWorkerMessageEvent ออกเพื่อใช้ MessageEvent แทน

ข้อกำหนดของ HTML ขยาย MessageEvent เพื่ออนุญาต ServiceWorker เป็นประเภทสำหรับแอตทริบิวต์ source client.postMessage() และการสร้างเหตุการณ์ข้อความที่กำหนดเองเปลี่ยนเป็นใช้ MessageEvent แทน ServiceWorkerMessageEvent นำ ServiceWorkerMessageEvent ออกแล้ว

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

นำชื่อแทนส่วนกลางของ webkit-prefixed IndexedDB ออก

จุดแรกเข้าและตัวสร้างส่วนกลางของ IndexedDB ถูกเปิดเผยพร้อมคำนำหน้า webkit ที่อยู่รอบๆ Chrome 11 ส่วนเวอร์ชันที่ไม่มีคำนำหน้านั้นเพิ่มเข้ามาใน Chrome 24 และเวอร์ชันนำหน้าได้เลิกใช้งานแล้วใน Chrome 38 อินเทอร์เฟซต่อไปนี้จะได้รับผลกระทบ

  • webkitIndexedDB (จุดแรกเข้าหลัก)
  • webkitIDBKeyRange (เครื่องมือสร้างที่ใช้ไม่ได้ทั่วโลก แต่มีวิธีแบบคงที่ที่มีประโยชน์)
  • webkitIDBCursor
  • webkitIDBDatabase
  • webkitIDBFactory
  • webkitIDBIndex
  • webkitIDBObjectStore
  • webkitIDBRequest
  • webkitIDBTransaction (เครื่องมือสร้างทั่วโลกที่เรียกไม่ได้)

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

WebAudio: นำ AudioContext นำหน้าและOfflineAudioContext ออก

Chrome รองรับ WebAudio ตั้งแต่กลางปี 2011 รวมถึง AudioContext OfflineAudioContext ถูกเพิ่มในปีต่อมา เนื่องจากมีการรองรับอินเทอร์เฟซมาตรฐานมานานแล้วและเป้าหมายระยะยาวของ Google ในการนำฟีเจอร์นำหน้าออก เราจึงเลิกใช้งานเวอร์ชันนำหน้าของอินเทอร์เฟซเหล่านี้ไปตั้งแต่ช่วงปลายปี 2014 และกำลังจะนำออก

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

เลิกใช้งานและนำ webkitCancelRequestAnimationFrame ออก

เมธอด webkitCancelRequestAnimationFrame() เป็น API สำหรับผู้ให้บริการที่ล้าสมัยและล้าสมัย และเรารองรับ cancelAnimationFrame() มาตรฐานใน Chromium มานานแล้ว ด้วยเหตุนี้ ระบบจึงนำเวอร์ชัน Web Home ออก

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

เลิกใช้งานการจับคู่ที่ไม่คำนึงถึงตัวพิมพ์เล็กและใหญ่สำหรับแอตทริบิวต์ usemap

ก่อนหน้านี้แอตทริบิวต์ usemap ได้กำหนดเป็นไม่มีตัวพิมพ์เล็กหรือใหญ่ น่าเสียดายที่วิธีนี้มีความซับซ้อนมากพอจนไม่มีเบราว์เซอร์ที่ติดตั้งใช้งานได้อย่างถูกต้อง งานวิจัยแนะนำว่าอัลกอริทึมที่ซับซ้อนเช่นนี้เป็นสิ่งที่ไม่จำเป็น และแม้แต่การจับคู่ที่ไม่คำนึงถึงตัวพิมพ์เล็กหรือใหญ่ของ ASCII ก็ไม่จำเป็น

ด้วยเหตุนี้ ข้อกำหนดจึงได้รับการอัปเดตให้ใช้การจับคู่ที่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ ลักษณะการทำงานแบบเก่าเลิกใช้งานใน Chrome 57 โดยคาดว่าจะนำออกใน Chrome 58

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

เลิกใช้งาน FileReaderSync ในโปรแกรมทำงานของบริการ

ข้อกำหนดของ Service Worker จะมี (ไม่ใช่ค่าปกติ) มาโดยตลอดว่า "คำขอแบบซิงโครนัสทุกประเภทต้องไม่เริ่มภายในโปรแกรมทำงานของบริการ" เพื่อหลีกเลี่ยงการบล็อกโปรแกรมทำงานของบริการ การบล็อกโปรแกรมทำงานของบริการจะบล็อกคำขอเครือข่ายทั้งหมดจากหน้าที่มีการควบคุม ขออภัย เนื่องจาก FileReaderSync API อยู่ใน Service Worker มานานแล้ว

ขณะนี้มีเพียง Firefox และ Chrome เท่านั้นที่เปิดเผย FileReaderSync ใน Service Worker Firefox มีข้อตกลงจาก Firefox ในการพูดคุยเรื่องข้อกำหนดว่าควรแก้ไขเรื่องนี้ คาดว่าจะนำออกได้ใน Chrome 59

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

เลิกใช้งานโปรแกรมเรียกแบบเดิมสำหรับ HTMLEmbedElement และ HTMLObjectElement

อินเทอร์เฟซมีตัวเรียกใช้แบบเดิม ซึ่งหมายความว่าอินสแตนซ์สามารถเรียกใช้เป็นฟังก์ชันได้ ปัจจุบัน HTMLEmbedElement และ HTMLObjectElement รองรับฟังก์ชันนี้ ใน Chrome 57 ความสามารถนี้จะถูกเลิกใช้งาน หลังจากการนำออก ซึ่งคาดว่าจะเกิดขึ้นใน Chrome 58 การโทรจะมีข้อยกเว้น

การเปลี่ยนแปลงนี้ทำให้ Chrome สอดคล้องกับการเปลี่ยนแปลงข้อกำหนดล่าสุด Edge หรือ Safari ไม่รองรับลักษณะการทํางานแบบเดิม และจะถูกนําออกจาก Firefox

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

เลิกใช้งาน RTCRtcpMuxPolicy ของ "negotiate"

Chrome ใช้ rtcpMuxPolicy เพื่อระบุนโยบายที่ต้องการเกี่ยวกับการใช้การมัลติเพล็กซ์ RTP/RTCP ใน Chrome 57 เราได้เปลี่ยนค่าเริ่มต้น rtcpMuxPolicy เป็น "require" และเลิกใช้งาน "negotiate" ด้วยเหตุผลต่อไปนี้

  • RTCP ที่ไม่ได้มักซ์จะใช้ทรัพยากรเครือข่ายเพิ่มเติม
  • การนำ "negotiate" ออกจะทำให้แพลตฟอร์ม API ง่ายขึ้น เนื่องจาก "RtpSender"/"RtpReceiver" จะมีการรับส่งข้อมูลเพียงครั้งเดียวเท่านั้น

ใน Chrome 57 "เจรจา" ได้เลิกใช้งานแล้ว เราเชื่อว่าการเปลี่ยนแปลงนี้เป็นการเปลี่ยนแปลงที่มีประโยชน์ เนื่องจากผู้ใช้จะได้รับข้อความการเลิกใช้งานและยังคงสร้าง RTCPeerConnection ได้ การนำออกจะอยู่ใน Chrome 63

เจตนาเลิกใช้งาน | ข้อบกพร่อง Chromium

เลิกใช้งานการรองรับข้อมูลเข้าสู่ระบบที่ฝังไว้ในคำขอทรัพยากรย่อย

การฮาร์ดโค้ดข้อมูลเข้าสู่ระบบในคำขอทรัพยากรย่อยถือเป็นปัญหาในแง่ของการรักษาความปลอดภัย เนื่องจากที่ผ่านมาแฮ็กเกอร์ทำให้ข้อมูลเข้าสู่ระบบแบบบรูตฟอร์ซได้ อันตรายเหล่านี้ยิ่งเกิดขึ้นมากขึ้นสำหรับคำขอทรัพยากรย่อยที่มีข้อมูลรับรองซึ่งเข้าถึงในช่วง IP ภายใน (เราเตอร์ของคุณ ฯลฯ) เนื่องจากเป็นการใช้งานที่น้อย การปิดช่องโหว่ด้านความปลอดภัย (ขนาดเล็ก) นี้ดูค่อนข้างสมเหตุสมผล

นักพัฒนาซอฟต์แวร์สามารถฝังทรัพยากรที่ไม่ต้องมีการตรวจสอบสิทธิ์พื้นฐาน/แบบไดเจสต์ โดยใช้คุกกี้และกลไกการจัดการเซสชันอื่นๆ แทน

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