แผนงานสำหรับการปรับปรุงการรองรับ Wayland ใน Firefox

Martin Stransky ผู้ดูแลแพ็คเกจ Firefox สำหรับ Fedora และ RHEL ที่กำลังย้าย Firefox ไปยัง Wayland เผยแพร่รายงานที่ทบทวนการพัฒนาล่าสุดใน Firefox ที่ทำงานในสภาพแวดล้อมที่ใช้โปรโตคอล Wayland

ใน Firefox รุ่นต่อๆ ไป มีการวางแผนที่จะแก้ไขปัญหาที่พบในบิวด์สำหรับ Wayland ด้วยคลิปบอร์ดและการจัดการป๊อปอัป คุณลักษณะเหล่านี้ไม่สามารถใช้งานได้ทันทีเนื่องจากความแตกต่างในแนวทางการใช้งานใน X11 และ Wayland ในกรณีแรก ปัญหาเกิดขึ้นเนื่องจากคลิปบอร์ด Wayland ทำงานแบบอะซิงโครนัส ซึ่งจำเป็นต้องสร้างเลเยอร์แยกต่างหากเพื่อเข้าถึงนามธรรมไปยังคลิปบอร์ด Wayland เลเยอร์ที่ระบุจะถูกเพิ่มใน Firefox 93 และเปิดใช้งานตามค่าเริ่มต้นใน Firefox 94

เกี่ยวกับกล่องโต้ตอบป๊อปอัป ปัญหาหลักคือ Wayland ต้องการลำดับชั้นที่เข้มงวดของหน้าต่างป๊อปอัป เช่น หน้าต่างหลักสามารถสร้างหน้าต่างลูกด้วยป๊อปอัปได้ แต่ป๊อปอัปถัดไปที่เริ่มต้นจากหน้าต่างนั้นจะต้องเชื่อมโยงกับหน้าต่างลูกเดิมโดยสร้างลูกโซ่ ใน Firefox แต่ละหน้าต่างสามารถวางป๊อปอัปหลายรายการที่ไม่สร้างลำดับชั้น ปัญหาคือเมื่อใช้ Wayland การปิดป๊อปอัปรายการใดรายการหนึ่งจำเป็นต้องสร้างหน้าต่างทั้งหมดขึ้นมาใหม่ด้วยป๊อปอัปอื่น ๆ แม้ว่าข้อเท็จจริงที่ว่าการมีป๊อปอัปที่เปิดอยู่หลายรายการไม่ใช่เรื่องแปลกเนื่องจากเมนูและป๊อปอัปถูกนำมาใช้ในรูปแบบของ คำแนะนำเครื่องมือป๊อปอัป กล่องโต้ตอบส่วนเสริม คำขออนุญาต ฯลฯ สถานการณ์ยังมีความซับซ้อนจากข้อบกพร่องใน Wayland และ GTK เนื่องจากการเปลี่ยนแปลงเล็กน้อยอาจนำไปสู่การถดถอยต่างๆ อย่างไรก็ตาม รหัสสำหรับจัดการป๊อปอัปสำหรับ Wayland ได้รับการดีบั๊กแล้ว และมีแผนที่จะรวมไว้ใน Firefox 94

การปรับปรุงอื่น ๆ ที่เกี่ยวข้องกับ Wayland ได้แก่ การเพิ่มการเปลี่ยนแปลงมาตราส่วน 93 ให้กับ Firefox บนหน้าจอ DPI ที่แตกต่างกัน ซึ่งกำจัดการกะพริบเมื่อย้ายหน้าต่างไปที่ขอบของหน้าจอในการกำหนดค่าหลายจอภาพ Firefox 95 วางแผนที่จะแก้ไขปัญหาที่เกิดขึ้นเมื่อใช้อินเทอร์เฟซแบบลากและวาง เช่น เมื่อคัดลอกไฟล์จากแหล่งภายนอกไปยังไฟล์ในเครื่อง และเมื่อย้ายแท็บ

ด้วยการเปิดตัว Firefox 96 พอร์ต Firefox สำหรับ Wayland ได้รับการวางแผนที่จะเพิ่มความเท่าเทียมกันโดยรวมในการทำงานด้วย X11 build อย่างน้อยก็เมื่อทำงานในสภาพแวดล้อม GNOME ของ Fedora หลังจากนี้ความสนใจของนักพัฒนาจะเปลี่ยนไปที่การทำงานในสภาพแวดล้อมของ Wayland ของกระบวนการ GPU ซึ่งมีโค้ดสำหรับการโต้ตอบกับอะแดปเตอร์กราฟิกและซึ่งช่วยปกป้องกระบวนการเบราว์เซอร์หลักจากการหยุดทำงานในกรณีที่ไดรเวอร์ล้มเหลว กระบวนการ GPU ได้รับการวางแผนให้รวมโค้ดสำหรับการถอดรหัสวิดีโอโดยใช้ VAAPI ซึ่งปัจจุบันทำงานในกระบวนการประมวลผลเนื้อหา

นอกจากนี้ เรายังสังเกตได้ว่ามีการรวมโหมดการแยกเว็บไซต์ที่เข้มงวด ซึ่งพัฒนาขึ้นโดยเป็นส่วนหนึ่งของโครงการ Fission สำหรับผู้ใช้ Firefox สาขาที่เสถียรจำนวนเล็กน้อย ตรงกันข้ามกับการกระจายการประมวลผลแท็บตามอำเภอใจทั่วทั้งกลุ่มกระบวนการที่มีอยู่ (8 โดยค่าเริ่มต้น) ที่ใช้จนถึงตอนนี้ โหมดบรรทัดแยกจะวางการประมวลผลของแต่ละไซต์ในกระบวนการแยกกันของตัวเอง ไม่ใช่แยกจากแท็บ แต่แยกตามโดเมน (สาธารณะ ส่วนต่อท้าย) ซึ่งช่วยให้สามารถแยกเนื้อหาเพิ่มเติมของสคริปต์ภายนอกและบล็อก iframe การเปิดใช้งานโหมดฟิชชันจะถูกควบคุมผ่านตัวแปร “fission.autostart=true” ใน about:config หรือบนหน้า about:preferences#experimental

โหมดแยกที่เข้มงวดจะช่วยป้องกันการโจมตีช่องทางด้านข้าง เช่น การโจมตีที่เกี่ยวข้องกับช่องโหว่ของ Spectre และยังช่วยลดการกระจายตัวของหน่วยความจำ คืนหน่วยความจำให้กับระบบปฏิบัติการได้อย่างมีประสิทธิภาพมากขึ้น ลดผลกระทบของการรวบรวมขยะและการคำนวณอย่างเข้มข้นในหน้าต่างๆ ในกระบวนการอื่นๆ และ เพิ่มประสิทธิภาพในการกระจายโหลดบนคอร์ CPU ที่แตกต่างกัน และเพิ่มความเสถียร (ความผิดพลาดของกระบวนการประมวลผล iframe จะไม่ส่งผลกระทบต่อไซต์หลักและแท็บอื่น ๆ)

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

การเปลี่ยนแปลงอื่นๆ ใน Firefox ได้แก่ การโยกย้ายไปยังระบบการแปล Fluent อย่างสมบูรณ์ การปรับปรุงโหมดคอนทราสต์สูง การเพิ่มความสามารถในการบันทึกโปรไฟล์ประสิทธิภาพของกระบวนการด้วยการคลิกเพียงครั้งเดียวไปที่ about:processes และการลบการตั้งค่าเพื่อคืนค่าเก่า รูปแบบของหน้าแท็บใหม่ที่ใช้ก่อน Firefox 89

ที่มา: opennet.ru

เพิ่มความคิดเห็น