Lộ trình cải thiện hỗ trợ Wayland trong Firefox

Martin Stransky, người bảo trì gói Firefox cho Fedora và RHEL, người đang chuyển Firefox sang Wayland, đã xuất bản một báo cáo đánh giá những phát triển mới nhất trong Firefox chạy trong môi trường dựa trên giao thức Wayland.

Trong các bản phát hành sắp tới của Firefox, nó được lên kế hoạch giải quyết các vấn đề gặp phải trong các bản dựng dành cho Wayland với bảng nhớ tạm và xử lý cửa sổ bật lên. Những tính năng này không thể được triển khai ngay lập tức do sự khác biệt trong cách tiếp cận triển khai chúng trong X11 và Wayland. Trong trường hợp đầu tiên, khó khăn nảy sinh do bảng tạm Wayland chạy không đồng bộ, đòi hỏi phải tạo một lớp riêng biệt để truy cập trừu tượng vào bảng tạm Wayland. Lớp được chỉ định sẽ được thêm vào Firefox 93 và được bật theo mặc định trong Firefox 94.

Về các hộp thoại bật lên, khó khăn chính là Wayland yêu cầu một hệ thống phân cấp chặt chẽ của các cửa sổ bật lên, tức là. cửa sổ cha mẹ có thể tạo cửa sổ con có cửa sổ bật lên, nhưng cửa sổ bật lên tiếp theo được khởi tạo từ cửa sổ đó phải liên kết với cửa sổ con ban đầu, tạo thành một chuỗi. Trong Firefox, mỗi cửa sổ có thể sinh ra một số cửa sổ bật lên không tạo thành hệ thống phân cấp. Vấn đề là khi sử dụng Wayland, việc đóng một trong các cửa sổ bật lên yêu cầu phải xây dựng lại toàn bộ chuỗi cửa sổ với các cửa sổ bật lên khác, mặc dù thực tế là sự hiện diện của một số cửa sổ bật lên đang mở không phải là hiếm, vì các menu và cửa sổ bật lên được triển khai dưới dạng chú giải công cụ bật lên, hộp thoại tiện ích bổ sung, yêu cầu cấp phép, v.v. Tình hình cũng trở nên phức tạp do những sai sót trong Wayland và GTK, do đó những thay đổi nhỏ có thể dẫn đến nhiều sự thoái lui khác nhau. Tuy nhiên, mã xử lý cửa sổ bật lên cho Wayland đã được sửa lỗi và dự kiến ​​sẽ được đưa vào Firefox 94.

Các cải tiến khác liên quan đến Wayland bao gồm việc bổ sung 93 thay đổi về tỷ lệ cho Firefox trên các màn hìnhDP khác nhau, giúp loại bỏ tình trạng nhấp nháy khi di chuyển cửa sổ sang mép màn hình trong cấu hình nhiều màn hình. Firefox 95 có kế hoạch giải quyết các vấn đề phát sinh khi sử dụng giao diện kéo và thả, chẳng hạn như khi sao chép tệp từ nguồn bên ngoài sang tệp cục bộ và khi di chuyển tab.

Với việc phát hành Firefox 96, cổng Firefox dành cho Wayland dự kiến ​​sẽ có chức năng tương đương tổng thể với bản dựng X11, ít nhất là khi chạy trong môi trường Gnome của Fedora. Sau đó, sự chú ý của các nhà phát triển sẽ chuyển sang hoàn thiện công việc trong môi trường Wayland của quy trình GPU, chứa mã để tương tác với bộ điều hợp đồ họa và bảo vệ quy trình trình duyệt chính khỏi gặp sự cố trong trường hợp trình điều khiển bị lỗi. Quá trình GPU cũng được lên kế hoạch bao gồm mã để giải mã video bằng VAAPI, hiện đang chạy trong các quy trình xử lý nội dung.

Ngoài ra, chúng tôi có thể lưu ý rằng việc bao gồm chế độ cách ly trang web nghiêm ngặt, được phát triển như một phần của dự án Phân hạch, dành cho một tỷ lệ nhỏ người dùng các nhánh ổn định của Firefox. Ngược lại với sự phân phối tùy ý của việc xử lý tab trên nhóm quy trình có sẵn (8 theo mặc định), được sử dụng cho đến nay, chế độ dòng cách ly đặt việc xử lý từng trang web trong quy trình riêng của nó, được phân tách không phải bằng các tab mà theo miền (Công khai Suffix), cho phép cách ly nội dung bổ sung của các tập lệnh bên ngoài và khối iframe. Việc bật chế độ Phân hạch được kiểm soát thông qua biến “fission.autostart=true” trong about:config hoặc trên trang about:preferences#experimental.

Chế độ cách ly nghiêm ngặt giúp bảo vệ chống lại các cuộc tấn công kênh bên, chẳng hạn như các cuộc tấn công liên quan đến lỗ hổng Spectre, đồng thời giảm phân mảnh bộ nhớ, trả lại bộ nhớ cho hệ điều hành hiệu quả hơn, giảm thiểu tác động của việc thu thập rác và tính toán chuyên sâu trên các trang trong các quy trình khác và tăng hiệu quả phân phối tải trên các lõi CPU khác nhau và tăng độ ổn định (sự cố trong quá trình xử lý iframe sẽ không ảnh hưởng đến trang chính và các tab khác).

Trong số các vấn đề đã biết phát sinh khi sử dụng chế độ cách ly nghiêm ngặt, có sự gia tăng đáng kể về mức tiêu thụ bộ nhớ và bộ mô tả tệp khi mở một số lượng lớn tab, cũng như sự gián đoạn hoạt động của một số tiện ích bổ sung, sự biến mất của nội dung iframe khi in và gọi chức năng ghi ảnh chụp màn hình, giảm hiệu quả lưu tài liệu vào bộ nhớ đệm từ iframe, Mất nội dung của các biểu mẫu đã hoàn thành nhưng chưa gửi khi phiên được khôi phục sau sự cố.

Các thay đổi khác trong Firefox bao gồm việc hoàn thành quá trình di chuyển sang hệ thống bản địa hóa Fluent, cải tiến Chế độ tương phản cao, bổ sung khả năng ghi lại hồ sơ hiệu suất quy trình chỉ bằng một cú nhấp chuột vào about:processs và xóa cài đặt để trả về cài đặt cũ. phong cách của trang tab mới đã được sử dụng trước Firefox 89.

Nguồn: opennet.ru

Thêm một lời nhận xét