ใน Chrome เกือบทุกเวอร์ชัน เราพบการอัปเดตจำนวนมากและ การปรับปรุงผลิตภัณฑ์ ประสิทธิภาพ และความสามารถของเว็บ แพลตฟอร์ม บทความนี้อธิบายการเลิกใช้งานและการนำออกใน Chrome 60 ซึ่งอยู่ในเวอร์ชันเบต้าตั้งแต่วันที่ 8 มิถุนายน รายการนี้อาจเปลี่ยนแปลงได้ตลอดเวลา
ความปลอดภัย
ตอนนี้ crypto.subtle ต้องใช้ต้นทางที่ปลอดภัยแล้ว
Web Crypto API
ซึ่งได้รับการสนับสนุนมาตั้งแต่ Chrome 37 ทำงานที่ไม่ปลอดภัยมาโดยตลอด
เนื่องจากนโยบายของ Chrome ที่มีมาอย่างยาวนาน
ต้องการต้นทางที่ปลอดภัยสำหรับฟีเจอร์ที่มีประสิทธิภาพ
crypto.subtle
ไม่ได้ปรากฏในต้นทางที่ปลอดภัยเท่านั้น
ตั้งใจที่จะนำออก | ข้อบกพร่องของ Chromium
นำการนำทางเฟรมบนสุดที่เริ่มต้นในเนื้อหาไปยัง URL ข้อมูลออก
เนื่องจากพวกเขาไม่คุ้นเคยกับผู้ใช้เบราว์เซอร์ที่ไม่เชี่ยวชาญด้านเทคนิค เราจึง
เห็นการใช้รูปแบบ data:
ในการปลอมแปลงและฟิชชิงมากขึ้นเรื่อยๆ
การโจมตี เราได้บล็อกหน้าเว็บไม่ให้โหลด URL data:
รายการเพื่อป้องกันปัญหานี้
ในเฟรมด้านบน รายการนี้มีผลกับแท็ก <a>
, window.open
window.location
และกลไกที่คล้ายกัน รูปแบบ data:
จะยังคงใช้ได้กับ
ทรัพยากรที่โหลดตามหน้า
ฟีเจอร์นี้เลิกใช้งานแล้วใน Chrome 58 และถูกนำออกแล้ว
ตั้งใจที่จะนำออก | ตัวติดตามสถานะ Chrome | ข้อบกพร่องของ Chromium
ปิดใช้งาน navigator.sendBeacon() ชั่วคราวสำหรับ BLOB บางรายการ
ฟังก์ชัน navigator.sendBeacon()
พร้อมใช้งานแล้ว
ตั้งแต่ Chrome 39
อาร์กิวเมนต์ data
ของฟังก์ชันอาจมีค่าใดค่าหนึ่งต่อไปนี้ ตามการนำไปใช้งานตั้งแต่แรก
BLOB ที่กำหนดเองในประเภทที่ไม่เข้าข่าย CORS เราเชื่อว่านี่เป็นศักยภาพ
ภัยคุกคามด้านความปลอดภัย แต่ยังไม่มีใครพยายามแสวงหาประโยชน์ เนื่องจากเราไม่
แก้ไขปัญหาอย่างสมเหตุสมผลในทันที แต่ชั่วคราว sendBeacon()
ไม่ได้
เรียกใช้ได้นานขึ้นใน BLOB ที่จัดอยู่ในประเภทที่ไม่ได้อยู่ใน CORS
แม้ว่าการเปลี่ยนแปลงนี้จะใช้กับ Chrome 60 แต่ได้มีการผสานรวมแล้ว กลับไปใช้ Chrome 59
CSS
ทำให้ Combinator สืบทอดที่ลดหลั่นเป็นช่วงๆ ทำตัวเหมือนเครื่องมือแบบผสมที่สืบทอดมา
องค์ประกอบสืบทอดจากดาบปลายแหลม (>>>
) ของ
โมดูลการกำหนดขอบเขต CSS ระดับ 1
มีไว้เพื่อจับคู่รายการย่อยขององค์ประกอบระดับบนที่เฉพาะเจาะจง
แม้ในขณะที่ปรากฏภายในเงาต้นไม้ การดำเนินการนี้มีข้อจำกัดบางอย่าง
ก่อนอื่น ตามข้อมูลจำเพาะ
สามารถใช้ได้เฉพาะในการเรียก JavaScript เช่น querySelector()
และ
ในสไตล์ชีต และที่สำคัญไปกว่านั้น ผู้ให้บริการเบราว์เซอร์ไม่สามารถ
ทำงานได้มากกว่า Shadow DOM ระดับ 1
ด้วยเหตุนี้ เราจึงนำชุดค่าผสมองค์ประกอบสืบทอดออกจากข้อกำหนดที่เกี่ยวข้อง รวมถึง Shadow DOM v1 นำตัวเลือกนี้ออกแทนการแยกหน้าเว็บ จาก Chromium เราเลือกที่จะใช้นามแฝง สืบทอดการเจาะเงา combinator ไปยังชุดค่าผสมสืบทอด ลักษณะการทำงานเดิมคือ เลิกใช้งานแล้วใน Chrome 45 เราเริ่มใช้ลักษณะการทำงานแบบใหม่ใน Chrome 61 แล้ว
ตั้งใจที่จะนำออก | ตัวติดตามสถานะ Chrome | ข้อบกพร่องของ Chromium
JavaScript
เลิกใช้งานและนำ RTCPeerConnection.getStreamById() ออก
เมื่อเกือบ 2 ปีก่อน เราได้นำ getStreamById()
ออกจากข้อกำหนด WebRTC แล้ว เบราว์เซอร์อื่นๆ ส่วนใหญ่มี
นำสิ่งนี้ออกจากการใช้งานแล้ว แม้ว่าฟังก์ชันนี้
ที่เชื่อกันว่าเป็นรายการที่ใช้งานน้อย แต่ก็เชื่อว่ามีผู้เยาว์อยู่บ้าง
ความเสี่ยงในการทำงานร่วมกันกับเบราว์เซอร์ Edge และ WebKit นอกเหนือจาก Safari
ซึ่งยังรองรับ getStreamById()
อยู่ นักพัฒนาแอปต้องการทางเลือก
คุณสามารถดูโค้ดตัวอย่างในส่วน "ความตั้งใจที่จะนำออก" ได้ที่ด้านล่าง
การนําออกใน Chrome 62
ตั้งใจที่จะนำออก | ตัวติดตามสถานะ Chrome | ข้อบกพร่องของ Chromium
เลิกใช้งาน SVGPathElement.getPathSegAtLength
getPathSegAtLength()
ได้นำออกจากข้อกำหนด SVG กว่า 2 ปีแล้ว
เนื่องจากเมธอดนี้มี Hit เพียงไม่กี่รายการใน httparchive
จะเลิกใช้งานใน Chrome 60 เราคาดว่าการนำออกจะอยู่ใน Chrome 62 ซึ่ง
จะจัดส่งในช่วงต้นหรือกลางเดือนตุลาคม
ความตั้งใจที่จะเลิกใช้งาน | ตัวติดตามสถานะ Chrome | ข้อบกพร่องของ Chromium
ย้าย getContextAttributes() ที่อยู่หลัง Flag
รองรับฟังก์ชัน getContextAttributes()
ใน
CanvasRenderingContext2D
ตั้งแต่ปี 2013 อย่างไรก็ตาม ฟีเจอร์นั้นไม่ได้เป็นส่วนหนึ่งของมาตรฐานใดๆ และไม่ได้กลายเป็น
ส่วนหนึ่งนับตั้งแต่เวลานั้น ควรมีการติดตั้งใช้งานเบื้องหลัง
แฟล็กบรรทัดคำสั่ง --enable-experimental-canvas-features
รายการ แต่มีข้อผิดพลาดเกิดขึ้น
ไม่ได้ ใน Chrome 60 การควบคุมดูแลนี้ได้รับการแก้ไขแล้ว เชื่อกันว่า
การเปลี่ยนแปลงนั้นปลอดภัย เนื่องจากไม่มีข้อมูลที่แสดงให้เห็นว่ามีคนใช้วิธีการนี้
นำ Headers.prototype.getAll() ออก
ระบบกำลังนำฟังก์ชัน Headers.prototype.getAll()
ออกตามการอัปเดตล่าสุด
ข้อกำหนดในการดึงข้อมูลเวอร์ชันเดิม
ตั้งใจที่จะนำออก | ตัวติดตามสถานะ Chrome | ข้อบกพร่องของ Chromium
นำindexDB.webkitGetDatabaseNames() ออก
เราได้เพิ่มฟีเจอร์นี้เมื่อฐานข้อมูลที่จัดทำดัชนีนั้นค่อนข้างใหม่ใน Chrome และคำนำหน้า ก็คือความเดือดดาล API ส่งกลับรายการฐานข้อมูลที่มีอยู่แบบไม่พร้อมกัน ไว้ในต้นทาง ซึ่งดูมีเหตุผลพอสมควร
ขออภัย การออกแบบมีข้อบกพร่อง ซึ่งอาจทำให้ผลการค้นหาล้าสมัยโดยเร็วที่สุด เมื่อมีการส่งคืน ดังนั้นเพื่อใช้ในการบันทึกเท่านั้น ไม่ร้ายแรง ตรรกะของแอปพลิเคชัน ปัญหา GitHub ติดตาม/ลิงก์ไปยัง ที่เคยหารือเกี่ยวกับทางเลือกอื่น ซึ่งจะต้องมีแนวทางอื่น แม้ว่านักพัฒนาซอฟต์แวร์จะสนใจอย่างต่อเนื่อง แต่เนื่องจากขาด ความคืบหน้าของเบราว์เซอร์ ปัญหานี้ได้แก้ไขโดยผู้เขียนห้องสมุด
นักพัฒนาแอปที่ต้องการฟังก์ชันการทำงานนี้จะต้องพัฒนาโซลูชันของตนเอง ตัวอย่างเช่น ไลบรารีอย่าง Dexie.js ใช้ตารางส่วนกลาง ซึ่งเป็นอีกฐานข้อมูลหนึ่งสำหรับติดตามชื่อฐานข้อมูล
ฟีเจอร์นี้เลิกใช้งานแล้วใน Chrome 58 และถูกนำออกแล้ว
ตั้งใจที่จะนำออก | ตัวติดตามสถานะ Chrome | ข้อบกพร่องของ Chromium
นำ WEBKIT_KEYFRAMES_RULE และ WEBKIT_KEYFRAME_RULE ออก
ค่าคงที่ WEBKIT_KEYFRAMES_RULE
และ WEBKIT_KEYFRAME_RULE
ที่ไม่เป็นมาตรฐาน
จะถูกนำออกจาก
กฎของ CSS
นักพัฒนาแอปควรใช้ KEYFRAMES_RULE
และ KEYFRAME_RULE
แทน
ตั้งใจที่จะนำออก | ตัวติดตามสถานะ Chrome | ข้อบกพร่องของ Chromium
อินเทอร์เฟซผู้ใช้
ต้องใช้ท่าทางสัมผัสของผู้ใช้สำหรับกล่องโต้ตอบ beforeunload
ตั้งแต่ Chrome 60 เป็นต้นไป กล่องโต้ตอบ beforeunload
จะปรากฏก็ต่อเมื่อเฟรม
พยายามที่จะแสดงว่าได้รับท่าทางสัมผัสของผู้ใช้หรือการโต้ตอบของผู้ใช้ (หรือหาก
เฟรมที่ฝังอยู่มีท่าทางสัมผัสดังกล่าว) เพื่อความชัดเจน นี่ไม่ใช่
เปลี่ยนเป็นการมอบหมายงานของกิจกรรม beforeunload
เพียงแค่เปลี่ยนเป็น
กล่องโต้ตอบจะปรากฏหรือไม่
กล่องโต้ตอบ beforeunload
เป็นกล่องโต้ตอบโมดัลแอป ดังนั้นโดยธรรมชาติ
ผู้ใช้โฮสต์ ซึ่งหมายความว่าจะตอบสนองต่อการนำทางของผู้ใช้โดยการถามคำถามที่ผู้ใช้
การพิพากษาดังกล่าว มีการใช้ฟีเจอร์นี้ในเชิงบวก ตัวอย่างเช่น เรามักจะใช้
เพื่อเตือนผู้ใช้เมื่อข้อมูลกำลังจะสูญหาย
ขณะที่หน้าเว็บสามารถแสดงข้อความสำหรับกล่องโต้ตอบ beforeunload
ได้
ถูกนำออกไปสักพักแล้ว กล่องโต้ตอบ beforeunload
ฉบับยังคงเป็นเวกเตอร์ของการละเมิด ใน
โดยเฉพาะอย่างยิ่ง กล่องโต้ตอบ beforeunload
เป็นองค์ประกอบหนึ่งของเว็บไซต์หลอกลวง ซึ่ง
เสียงอัตโนมัติและข้อความข่มขู่จะให้บริบทที่ว่า Chromium
ระบุ "แน่ใจไหมว่าต้องการออกจากหน้านี้" ข้อความกลายเป็นเรื่องน่ากังวล
เราต้องการทำความเข้าใจเพิ่มเติม และอนุญาตให้ใช้ beforeunload
อย่างเหมาะสมเท่านั้น
กล่องโต้ตอบ การใช้งานกล่องโต้ตอบที่ดีคือสิ่งที่ผู้ใช้มีสถานะ
แพ้ หากผู้ใช้ไม่เคยโต้ตอบกับหน้าเว็บ ผู้ใช้ก็จะไม่มี
สถานะที่อาจสูญหายได้ และเราจะไม่ยอมเสี่ยงให้ข้อมูลผู้ใช้สูญหายโดย
ระงับกล่องโต้ตอบในกรณีดังกล่าว