Mozilla เพิ่งประกาศว่า ตั้งใจทำ เว็บเบราว์เซอร์ของคุณ "Firefox" เข้ากันได้กับเวอร์ชัน 3 ของรายการ Chrome XNUMX และได้เผยแพร่แผนงานซึ่งกำหนดความสามารถและทรัพยากรที่จะจัดเตรียมให้กับปลั๊กอิน
เราต้องจำไว้ว่าเวอร์ชันที่สามของ Manifest ได้รับการวิพากษ์วิจารณ์ว่าเป็นเพราะขัดจังหวะปลั๊กอินความปลอดภัยจำนวนมากและบล็อกเนื้อหาที่ไม่เหมาะสมและเราได้พูดถึงเรื่องนี้แล้ว ที่นี่ในบล็อก
Mozilla ให้ความเห็นว่า แผนใน Firefox ที่จะใช้ความสามารถและข้อจำกัดเกือบทั้งหมดของรายการใหม่รวมถึง API การกรองเนื้อหาที่ประกาศ (declarativeNetRequest) แต่ต่างจาก Chrome ตรงที่ Firefox จะไม่หยุดสนับสนุนโหมดการบล็อกแบบเก่าของ webRequest API อย่างน้อยก็จนกว่า API ใหม่จะไม่ตอบสนองความต้องการของนักพัฒนาปลั๊กอินที่ใช้ webRequest API อย่างครบถ้วน
แนวทางนี้ จะรับรองความเข้ากันได้กับปลั๊กอิน Chrome โดยไม่ทำลายความเข้ากันได้กับปลั๊กอินที่ขึ้นอยู่กับ webRequest API
ความไม่พอใจหลักกับไฟล์ Manifest ใหม่นี้เกี่ยวข้องกับการแปล webRequest API แบบอ่านอย่างเดียว ซึ่งอนุญาตให้คุณเชื่อมต่อตัวควบคุมของคุณเองที่มีสิทธิ์เข้าถึงคำขอของเครือข่ายโดยสมบูรณ์ และสามารถปรับเปลี่ยนการรับส่งข้อมูลได้ทันที
API นี้ใช้โดย uBlock Origin และปลั๊กอินอื่น ๆ อีกมากมายเพื่อบล็อกเนื้อหาที่ไม่เหมาะสมและรับรองความปลอดภัย แทนที่จะใช้ webRequest API มีการเสนอ NetRequest API ที่ประกาศ โดยจำกัดความสามารถ ซึ่งให้การเข้าถึงเอ็นจิ้นการกรองในตัวที่ประมวลผลกฎการบล็อกอย่างอิสระ ไม่อนุญาตให้ใช้อัลกอริธึมการกรองแบบกำหนดเอง และไม่อนุญาตให้สร้างที่ซับซ้อน กฎที่ทับซ้อนกันขึ้นอยู่กับเงื่อนไข
ในไฟร์ฟอกซ์ เข้ากันได้กับเวอร์ชันที่สามของรายการ จาก Chrome มีกำหนดจะทดสอบในช่วงปลายปี 2021 และแถลงการณ์ใหม่มีกำหนดในต้นปี 2022
ท่ามกลางคุณสมบัติของการดำเนินการ จากแถลงการณ์ใหม่ใน Firefox โดดเด่น:
- ระบุ DeclarativeNetRequest API แต่เก็บ webRequest API เดิมไว้
- เปลี่ยนการประมวลผลคำขอข้ามต้นทาง: ตามรายการใหม่ สคริปต์การประมวลผลเนื้อหาจะอยู่ภายใต้ข้อจำกัดการอนุญาตเดียวกันกับหน้าหลักที่สคริปต์เหล่านี้ถูกฝัง (ตัวอย่างเช่น หากหน้าไม่มีการเข้าถึง API ตำแหน่ง ปลั๊กอินสคริปต์จะไม่ได้รับการเข้าถึงนี้เช่นกัน) คำขอเปลี่ยนแปลงบางส่วนที่เกี่ยวข้องกับข้อจำกัดข้ามต้นทางพร้อมให้ทดสอบใน Firefox ทุกคืนแล้ว
- หน้าพื้นหลังจะถูกแทนที่ด้วยพนักงานบริการที่ทำงานในรูปแบบของกระบวนการพื้นหลัง (การเปลี่ยนแปลงยังไม่พร้อมที่จะเริ่มการทดสอบ)
- API ตามคำมั่นสัญญา: Firefox รองรับ API ประเภทนี้ในเนมสเปซ «เบราว์เซอร์ * »และสำหรับรายการเวอร์ชันที่สาม มันจะย้ายไปยังเนมสเปซ« chrome * ».
- รูปแบบใหม่สำหรับการขอสิทธิ์: ปลั๊กอินจะไม่สามารถเปิดใช้งานสำหรับทุกหน้าพร้อมกัน แต่จะใช้งานได้เฉพาะในบริบทของแท็บที่ใช้งานอยู่เท่านั้น นั่นคือ ผู้ใช้จะต้องยืนยันการทำงานของปลั๊กอินสำหรับ แต่ละไซต์ Mozilla กำลังทำงานเพื่อเสริมความแข็งแกร่งให้กับการควบคุมการเข้าถึง แต่มีจุดมุ่งหมายเพื่อให้ผู้ใช้สามารถตัดสินใจว่าจะอนุญาตให้ปลั๊กอินทำงานกับแท็บต่างๆ ได้หรือไม่
- ห้ามเรียกใช้โค้ดที่ดาวน์โหลดจากเซิร์ฟเวอร์ภายนอก (เรากำลังพูดถึงสถานการณ์ที่ปลั๊กอินโหลดและรันโค้ดภายนอก) Firefox ใช้การบล็อกโค้ดจากภายนอกอยู่แล้ว และนักพัฒนา Mozilla พร้อมที่จะเพิ่มเทคนิคการติดตามการดาวน์โหลดโค้ดเพิ่มเติมที่นำเสนอในเวอร์ชันที่สามของไฟล์ Manifest
- นอกจากนี้ จะมีการแนะนำนโยบายความปลอดภัยเนื้อหา (CSP) แยกต่างหากสำหรับสคริปต์การจัดการเนื้อหา และ UserScripts และ contentScripts APIs ที่มีอยู่จะถูกแก้ไขเพื่อรองรับส่วนขยายตามพนักงานไปยังบริการ