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

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

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

การเข้ารหัสที่อิงตาม DHE กำลังจะหยุดให้บริการ

TL;DR: การเข้ารหัสที่ใช้ DHE จะถูกนำออกใน Chrome 53 ซึ่งเป็นแบบเดสก์ท็อปเนื่องจากไม่เพียงพอสำหรับการใช้งานในระยะยาว เซิร์ฟเวอร์ควรใช้ ECDHE (หากมี) หรือใช้การเข้ารหัส RSA แบบธรรมดาหากไม่ได้ใช้

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

เมื่อปีที่แล้ว เราใช้ Chrome ตามขนาดกลุ่ม TLS Diffie-Hellman ขั้นต่ำจาก 512 บิตถึง 1024 บิต อย่างไรก็ตาม 1024 บิตนั้นไม่เพียงพอในระยะยาว เมตริกรายงานว่าประมาณ 95% ของการเชื่อมต่อ DHE ที่ Chrome ใช้ DHE แบบ 1024 บิต สิ่งนี้ประกอบกับวิธีเจรจา DHE ใน TLS ทำให้ยากที่จะเลื่อนผ่าน 1024 บิตไปได้

แม้ว่าจะมีข้อกำหนดฉบับร่างที่ช่วยแก้ไขปัญหานี้ แต่ก็ยังเป็นฉบับร่างและต้องเปลี่ยนแปลงทั้งไคลเอ็นต์และเซิร์ฟเวอร์ ในขณะเดียวกัน ทาง ECDHE ได้มีการติดตั้งใช้งานและนำไปใช้งานในวงกว้างแล้ว เซิร์ฟเวอร์ควรอัปเกรดเป็น ECDHE หากมี หรือเปิดใช้ชุดการเข้ารหัส RSA แบบธรรมดา

เราเลิกใช้งานการเข้ารหัสแบบ DHE แล้วตั้งแต่ Chrome 51 เรากำลังจะนำการสนับสนุนออกจากเดสก์ท็อปใน Chrome 53

คำเตือนการเลิกใช้งาน FileError

TL;DR: คาดว่าการนำอินเทอร์เฟซ FileError ที่เลิกใช้งานแล้วออกจะเกิดขึ้นใน Chrome 54 แทนที่การอ้างอิงไปยัง err.code ด้วย err.name และ err.message

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

มาตรฐาน File API เวอร์ชันปัจจุบันไม่มีอินเทอร์เฟซ FileError และการรองรับได้เลิกใช้งานแล้วในปี 2013 ใน Chrome 53 ระบบจะพิมพ์คำเตือนการเลิกใช้งานนี้ไปยังคอนโซลเครื่องมือสำหรับนักพัฒนาเว็บ ดังนี้

เราเลิกใช้งาน "FileError" แล้วและจะถูกนำออกในเวอร์ชัน 54 โปรดใช้แอตทริบิวต์ "ชื่อ" หรือ "ข้อความ" ของข้อผิดพลาดแทน "รหัส"

ซึ่งจะมีผลต่างกันในบริบทที่ต่างกัน

  • FileReader.error และ FileWriter.error จะเป็นออบเจ็กต์ DOMException แทนที่จะเป็นออบเจ็กต์ FileError รายการ
  • สำหรับการเรียก FileSystem แบบไม่พร้อมกัน ระบบจะส่ง ErrorCallback เป็น FileError.ErrorCode แทนที่จะเป็น FileError
  • สำหรับการเรียก FileSystem แบบซิงโครนัส จะมีการส่ง FileError.ErrorCode แทน FileError

การเปลี่ยนแปลงนี้ส่งผลต่อโค้ดที่อาศัยการเปรียบเทียบโค้ดของอินสแตนซ์ข้อผิดพลาด (e.code) โดยตรงกับค่า enum FileError (FileError.NOT_FOUND_ERR เป็นต้น) เท่านั้น โค้ดที่ทดสอบกับค่าคงที่แบบฮาร์ดโค้ด (เช่น e.code === 1) อาจล้มเหลวโดยการรายงานข้อผิดพลาดที่ไม่ถูกต้องให้ผู้ใช้ทราบ

โชคดีที่ข้อผิดพลาด FileError, DOMError และ DOMException ทุกประเภทใช้พร็อพเพอร์ตี้ name และ message ร่วมกัน ซึ่งทำให้ชื่อสำหรับกรณีข้อผิดพลาดสอดคล้องกัน (หรือ e.name === "NotFoundError") โค้ดควรใช้พร็อพเพอร์ตี้เหล่านั้นแทน ซึ่งจะใช้ได้ในเบราว์เซอร์ต่างๆ และยังคงทำงานต่อไปเมื่อนำอินเทอร์เฟซ FileError ออก

คาดว่าการนำ FileError ออกคือ Chrome 54

นำแอตทริบิวต์ผลการค้นหาสำหรับ <input type=search> ออก

TL;DR: แอตทริบิวต์ results จะถูกนำออกเนื่องจากไม่ได้เป็นส่วนหนึ่งของมาตรฐานใดๆ และมีการใช้งานในเบราว์เซอร์ต่างๆ อย่างไม่สอดคล้องกัน

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

ค่า results จะใช้ใน Web Web เท่านั้นและมีลักษณะการทำงานที่ไม่สอดคล้องกันอย่างมาก ตัวอย่างเช่น Chrome เพิ่มไอคอนแว่นขยายในช่องป้อนข้อมูล ขณะที่ใน Safari บนเดสก์ท็อป การควบคุมจำนวนการค้นหาก่อนหน้านี้ที่แสดงในป๊อปอัปที่แสดงโดยการคลิกที่ไอคอนแว่นขยาย เนื่องจากมาตรฐานนี้ไม่ได้เป็นส่วนหนึ่งของมาตรฐานใดๆ เราจึงเลิกใช้งานไปแล้ว

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

    input[type=search] {
      background: url(some-great-icon.png) no-repeat scroll 15px 15px;
      padding-left:30px;
    }
 ```   

This attribute has been deprecated since Chrome 51.