Pelan jalan untuk meningkatkan sokongan Wayland dalam Firefox

Martin Stransky, penyelenggara pakej Firefox untuk Fedora dan RHEL yang mengalihkan Firefox ke Wayland, menerbitkan laporan yang mengkaji perkembangan terkini dalam Firefox yang berjalan dalam persekitaran berasaskan protokol Wayland.

Dalam keluaran Firefox yang akan datang, ia dirancang untuk menyelesaikan masalah yang diperhatikan dalam binaan untuk Wayland dengan papan keratan dan pengendalian pop timbul. Ciri-ciri ini tidak dapat dilaksanakan dengan segera kerana perbezaan dalam pendekatan pelaksanaannya dalam X11 dan Wayland. Dalam kes pertama, kesukaran timbul kerana papan keratan Wayland berjalan secara tidak segerak, yang memerlukan penciptaan lapisan berasingan untuk mengabstrak akses ke papan keratan Wayland. Lapisan yang ditentukan akan ditambahkan pada Firefox 93 dan didayakan secara lalai dalam Firefox 94.

Mengenai dialog pop timbul, kesukaran utama ialah Wayland memerlukan hierarki tetingkap timbul yang ketat, i.e. tetingkap induk boleh mencipta tetingkap anak dengan tetingkap timbul, tetapi tetingkap timbul seterusnya yang dimulakan daripada tetingkap itu mesti terikat pada tetingkap anak asal, membentuk rantai. Dalam Firefox, setiap tetingkap boleh menghasilkan beberapa pop timbul yang tidak membentuk hierarki. Masalahnya ialah apabila menggunakan Wayland, menutup salah satu tetingkap timbul memerlukan membina semula keseluruhan rangkaian tetingkap dengan tetingkap timbul yang lain, walaupun pada hakikatnya kehadiran beberapa tetingkap timbul terbuka bukanlah sesuatu yang luar biasa, kerana menu dan tetingkap timbul dilaksanakan dalam bentuk petua alat pop timbul, dialog tambahan, permintaan kebenaran, dsb. Keadaan ini juga menjadi rumit oleh kelemahan dalam Wayland dan GTK, kerana perubahan kecil boleh membawa kepada pelbagai regresi. Walau bagaimanapun, kod untuk mengendalikan pop timbul untuk Wayland telah dinyahpepijat dan dirancang untuk disertakan dalam Firefox 94.

Penambahbaikan berkaitan Wayland lain termasuk penambahan 93 perubahan skala pada Firefox pada skrin DPI yang berbeza, yang menghilangkan kelipan apabila mengalihkan tetingkap ke tepi skrin dalam konfigurasi berbilang monitor. Firefox 95 merancang untuk menangani masalah yang timbul apabila menggunakan antara muka seret&lepas, contohnya, apabila menyalin fail daripada sumber luaran ke fail tempatan dan apabila mengalihkan tab.

Dengan keluaran Firefox 96, port Firefox untuk Wayland dirancang untuk dibawa ke pariti keseluruhan dalam fungsi dengan binaan X11, sekurang-kurangnya apabila berjalan dalam persekitaran GNOME Fedora. Selepas ini, perhatian pembangun akan dialihkan kepada mengasah kerja dalam persekitaran Wayland bagi proses GPU, yang mengandungi kod untuk berinteraksi dengan penyesuai grafik dan yang melindungi proses penyemak imbas utama daripada ranap sekiranya berlaku kegagalan pemandu. Proses GPU juga dirancang untuk memasukkan kod untuk penyahkodan video menggunakan VAAPI, yang sedang dijalankan dalam proses pemprosesan kandungan.

Selain itu, kita boleh perhatikan kemasukan mod pengasingan tapak yang ketat, dibangunkan sebagai sebahagian daripada projek Fission, untuk peratusan kecil pengguna cawangan stabil Firefox. Berbeza dengan pengedaran sewenang-wenangnya pemprosesan tab merentasi kumpulan proses yang tersedia (8 secara lalai), yang digunakan setakat ini, mod garisan pengasingan meletakkan pemprosesan setiap tapak dalam proses tersendiri, dipisahkan bukan oleh tab, tetapi oleh domain (Awam Suffix), yang membenarkan kandungan pengasingan tambahan bagi skrip luaran dan blok iframe. Mendayakan mod Fission dikawal melalui pembolehubah "fission.autostart=true" dalam about:config atau pada halaman about:preferences#experimental.

Mod pengasingan yang ketat membantu melindungi daripada serangan saluran sisi, seperti yang dikaitkan dengan kelemahan Spectre, dan juga mengurangkan pemecahan memori, mengembalikan memori kepada sistem pengendalian dengan lebih cekap, meminimumkan kesan pengumpulan sampah dan pengiraan intensif pada halaman dalam proses lain, dan meningkatkan kecekapan pengagihan beban merentas teras CPU yang berbeza dan meningkatkan kestabilan (ranap proses memproses iframe tidak akan menjejaskan tapak utama dan tab lain).

Antara masalah yang diketahui yang timbul apabila menggunakan mod pengasingan yang ketat, terdapat peningkatan ketara dalam memori dan penggunaan deskriptor fail apabila membuka sejumlah besar tab, serta gangguan kerja beberapa alat tambah, kehilangan kandungan iframe apabila mencetak dan memanggil fungsi rakaman tangkapan skrin, mengurangkan kecekapan caching dokumen daripada iframe, Kehilangan kandungan borang yang lengkap tetapi tidak diserahkan apabila sesi dipulihkan selepas ranap sistem.

Perubahan lain dalam Firefox termasuk penyempurnaan pemindahan ke sistem penyetempatan Fasih, penambahbaikan kepada Mod Kontras Tinggi, penambahan keupayaan untuk merekodkan profil prestasi proses dalam satu klik ke about:processes, dan pengalihan keluar tetapan untuk mengembalikan yang lama. gaya halaman tab baharu yang digunakan sebelum Firefox 89.

Sumber: opennet.ru

Tambah komen