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

Joe Medley
Joe Medley

ไม่อนุญาต XMLHTTPRequest() แบบซิงค์ในการปิดหน้าเว็บ

ตอนนี้ Chrome ไม่อนุญาตให้เรียกใช้ XMLHTTPRequest() แบบซิงค์ระหว่างที่หน้าเว็บยกเลิกการโหลดเมื่อผู้ใช้ไปยังส่วนอื่นๆ ภายนอกหน้าเว็บหรือปิดหน้าเว็บ ข้อกำหนดนี้มีผลกับ beforeunload, unload, pagehide และ visibilitychange

เราขอแนะนําให้ใช้ sendBeacon() หรือ Fetch keep-alive เพื่อให้ระบบส่งข้อมูลไปยังเซิร์ฟเวอร์เมื่อหน้าเว็บยกเลิกการโหลด ขณะนี้ผู้ใช้องค์กรสามารถใช้ Flag นโยบาย AllowSyncXHRInPageDismissal และนักพัฒนาซอฟต์แวร์สามารถใช้ Flag การทดลองของต้นทาง allow-sync-xhr-in-page-dismissal เพื่ออนุญาตคําขอ XHR ที่มาพร้อมกันในระหว่างการยกเลิกการโหลดหน้าเว็บ นี่เป็นมาตรการ "เลือกไม่ใช้" ชั่วคราว และเราคาดว่าจะนำ Flag นี้ออกใน Chrome 88

โปรดดูรายละเอียดเกี่ยวกับเรื่องนี้และทางเลือกอื่นๆ ที่หัวข้อการไม่อนุญาต XMLHTTPRequest() แบบซิงค์ในช่วงที่หน้าเว็บยกเลิกการโหลด

Intent to Remove | สถานะแพลตฟอร์ม Chrome | ข้อบกพร่องของ Chromium

เลิกใช้งานการรองรับ FTP แล้ว

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

Chrome 72 ได้ยกเลิกการรองรับการดึงข้อมูลทรัพยากรย่อยของเอกสารผ่าน FTP และการเรนเดอร์ทรัพยากร FTP ระดับบนสุด ปัจจุบันการไปยัง URL ของ FTP จะส่งผลให้ระบบแสดงรายการไดเรกทอรีหรือการดาวน์โหลด ทั้งนี้ขึ้นอยู่กับประเภทของทรัพยากร ข้อบกพร่องใน Google Chrome เวอร์ชัน 74 ขึ้นไปส่งผลให้มีการยกเลิกการรองรับการเข้าถึง URL ของ FTP ผ่านพร็อกซี HTTP เรานำการสนับสนุนพร็อกซีสําหรับ FTP ออกทั้งหมดใน Google Chrome 76

ความสามารถที่เหลือของการใช้งาน FTP ของ Google Chrome ถูกจํากัดไว้ที่การแสดงรายการไดเรกทอรีหรือการดาวน์โหลดทรัพยากรผ่านการเชื่อมต่อที่ไม่ได้เข้ารหัส

ลำดับเวลาการเลิกใช้งานมีกำหนดการคร่าวๆ ดังนี้

Chrome 80 (เวอร์ชันเสถียรในเดือนกุมภาพันธ์ 2020)

ระบบจะปิดใช้ FTP โดยค่าเริ่มต้นสำหรับไคลเอ็นต์ที่ไม่ใช่องค์กร แต่อาจเปิดใช้ได้ด้วยการตั้งค่าสถานะบรรทัดคำสั่ง --enable-ftp หรือ --enable-features=FtpProtocol หรือจะเปิดใช้โดยใช้ตัวเลือก #enable-ftp ใน chrome://flags ก็ได้

Chrome 81 (เวอร์ชันเสถียรในเดือนมีนาคม 2020)

FTP จะปิดอยู่โดยค่าเริ่มต้นสำหรับการติดตั้ง Chrome ทั้งหมด แต่สามารถเปิดได้โดยใช้ธงบรรทัดคำสั่ง --enable-ftp หรือ --enable-features=FtpProtocol

Chrome 82 (เวอร์ชันเสถียรในเดือนเมษายน 2020)

เราจะนำการรองรับ FTP ออกโดยสมบูรณ์

Intent to Remove | สถานะแพลตฟอร์ม Chrome | ข้อบกพร่องของ Chromium

ไม่อนุญาตป๊อปอัประหว่างการยกเลิกการโหลดหน้าเว็บ

หน้าเว็บอาจไม่ใช้ window.open() เพื่อเปิดหน้าใหม่ระหว่างการยกเลิกการโหลดอีกต่อไป ตัวบล็อกป๊อปอัปของ Chrome ห้ามการดำเนินการนี้อยู่แล้ว แต่ตอนนี้จะห้ามไม่ว่าคุณจะเปิดใช้ตัวบล็อกป๊อปอัปหรือไม่ก็ตาม

องค์กรสามารถใช้การแจ้งว่าไม่เหมาะสมตามนโยบาย AllowPopupsDuringPageUnload เพื่ออนุญาตป๊อปอัประหว่างยกเลิกการโหลด Chrome คาดว่าจะนำ Flag นี้ออกใน Chrome 82

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

นำการแปลงและโอน ImageBitmap ที่ไม่สะอาดตามต้นทางออกแล้ว

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

Intent to Remove | สถานะแพลตฟอร์ม Chrome | ข้อบกพร่องของ Chromium

ตอนนี้การจัดการโปรโตคอลต้องใช้บริบทที่ปลอดภัย

ตอนนี้เมธอด registerProtocolHandler() และ unregisterProtocolHandler() ต้องใช้บริบทที่ปลอดภัย วิธีการเหล่านี้สามารถกำหนดค่าสถานะไคลเอ็นต์ใหม่ได้เพื่อให้อนุญาตการส่งข้อมูลที่อาจมีความละเอียดอ่อนผ่านเครือข่าย

เมธอด registerProtocolHandler() จะให้กลไกแก่หน้าเว็บในการลงทะเบียนเพื่อจัดการโปรโตคอลหลังจากที่ผู้ใช้ให้ความยินยอม เช่น แอปพลิเคชันอีเมลบนเว็บอาจลงทะเบียนเพื่อจัดการรูปแบบ mailto: วิธีการที่เกี่ยวข้องของ unregisterProtocolHandler() ช่วยให้เว็บไซต์ยกเลิกการจดทะเบียนการจัดการโปรโตคอลได้

Intent to Remove | สถานะแพลตฟอร์ม Chrome | ข้อบกพร่องของ Chromium

นํา Web Components v0 ออกแล้ว

ตอนนี้เราได้นํา Web Components v0 ออกจาก Chrome แล้ว Web Components v1 API เป็นมาตรฐานแพลตฟอร์มเว็บที่พร้อมใช้งานใน Chrome, Safari, Firefox และ (เร็วๆ นี้) Edge อ่านคำแนะนำเกี่ยวกับการอัปเกรดได้ที่การอัปเดต Web Components: มีเวลามากขึ้นในการอัปเกรดเป็น API เวอร์ชัน 1 เราได้นําฟีเจอร์ต่อไปนี้ออกแล้ว การเลิกใช้งานนี้ครอบคลุมรายการที่ระบุไว้ด้านล่าง

องค์ประกอบที่กำหนดเอง

Intent to Remove | สถานะแพลตฟอร์ม Chrome | ข้อบกพร่องของ Chromium

การนําเข้า HTML

Intent to Remove | สถานะแพลตฟอร์ม Chrome | ข้อบกพร่องของ Chromium

Shadow DOM

Intent to Remove | สถานะแพลตฟอร์ม Chrome | ข้อบกพร่องของ Chromium

นำ -webkit-appearance:button ออกสำหรับองค์ประกอบที่ไม่เจาะจง

เปลี่ยน -webkit-appearance:button ให้ทำงานร่วมกับปุ่ม <button> และ <input> เท่านั้น หากระบุ button สำหรับองค์ประกอบที่ไม่รองรับ องค์ประกอบจะมีรูปลักษณ์เริ่มต้น คีย์เวิร์ด -webkit-appearance อื่นๆ ทั้งหมดมีข้อจํากัดดังกล่าวอยู่แล้ว

Intent to Remove | สถานะแพลตฟอร์ม Chrome | ข้อบกพร่องของ Chromium

นโยบายการเลิกใช้งาน

บางครั้งเรานำ API ออกจากแพลตฟอร์มเว็บที่ทำงานตามปกติแล้วออก เพื่อให้แพลตฟอร์มทำงานได้อย่างราบรื่น การนํา API ออกอาจเกิดจากหลายสาเหตุ เช่น

  • เนื่องจากมี API รุ่นใหม่เข้ามาแทนที่
  • โดยมีการอัปเดตให้สอดคล้องกับการเปลี่ยนแปลงข้อกำหนดเพื่อให้สอดคล้องกับเบราว์เซอร์อื่นๆ
  • ฟีเจอร์เหล่านี้เป็นการทดสอบขั้นต้นที่ไม่เคยเกิดขึ้นในเบราว์เซอร์อื่นๆ จึงอาจเพิ่มภาระการสนับสนุนสำหรับนักพัฒนาเว็บ

การเปลี่ยนแปลงเหล่านี้บางส่วนจะมีผลกับเว็บไซต์จํานวนน้อยมาก เราพยายามแจ้งให้นักพัฒนาแอปทราบล่วงหน้าเพื่อให้นักพัฒนาแอปมีเวลาทำการเปลี่ยนแปลงที่จำเป็นเพื่อทำให้เว็บไซต์ทำงานต่อไปได้ เพื่อลดปัญหาที่อาจเกิดขึ้นล่วงหน้า

ปัจจุบัน Chrome มี กระบวนการเลิกใช้งานและนํา API ออก ซึ่งโดยพื้นฐานแล้วมีดังนี้

  • ประกาศในรายชื่ออีเมล blink-dev
  • ตั้งค่าคำเตือนและระบุรูปแบบเวลาในคอนโซลเครื่องมือสำหรับนักพัฒนาเว็บใน Chrome เมื่อตรวจพบการใช้งานในหน้าเว็บ
  • รอและตรวจสอบ จากนั้นนําฟีเจอร์ออกเมื่อการใช้งานลดลง

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