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