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

Joe Medley
Joe Medley

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

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

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

ข้อบกพร่องของ Chromium

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

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

Intent to Remove | Chromestatus Tracker | ข้อบกพร่องของ Chromium

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

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

Intent to Remove | Chromestatus Tracker | ข้อบกพร่องของ Chromium

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

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

Intent to Remove | Chromestatus Tracker | ข้อบกพร่องของ Chromium

นําอีเมลแทนแบบทั่วโลกของ IndexedDB ที่มีคํานําหน้า webkit ออก

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

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

Intent to Remove | Chromestatus Tracker | ข้อบกพร่องของ Chromium

WebAudio: นำ AudioContext และ OfflineAudioContext ที่มีคำนำหน้าออก

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

Intent to Remove | Chromestatus Tracker | ข้อบกพร่องของ Chromium

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

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

Intent to Remove | Chromestatus Tracker | ข้อบกพร่องของ Chromium

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

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

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

Intent to Remove | Chromestatus Tracker | ข้อบกพร่องของ Chromium

เลิกใช้งาน FileReaderSync ใน Service Worker

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

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

Intent to Remove | Chromestatus Tracker | ข้อบกพร่องของ Chromium

เลิกใช้งานตัวเรียกใช้เดิมสําหรับ HTMLEmbedElement และ HTMLObjectElement

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

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

Intent to Remove | Chromestatus Tracker | ข้อบกพร่องของ Chromium

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

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

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

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

ความตั้งใจที่จะเลิกใช้งาน | ข้อบกพร่องของ Chromium

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

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

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

Intent to Remove | Chromestatus Tracker | ข้อบกพร่องของ Chromium