Firefox ичинде Wayland колдоосун жакшыртуу үчүн жол картасы

Мартин Странский, Fedora жана RHEL үчүн Firefox топтомунун тейлөөчүсү, Firefoxту Waylandга көчүрүүдө, Wayland протоколуна негизделген чөйрөлөрдө иштеген Firefoxтун акыркы өнүгүүлөрүн карап чыккан отчетту жарыялады.

Firefoxтун келерки чыгарылыштарында Wayland үчүн түзүүдө байкалган көйгөйлөрдү алмашуу буфери жана калкып чыкмаларды иштетүү менен чечүү пландаштырылууда. Бул функцияларды X11 жана Уэйлендде ишке ашырууга болгон мамиледеги айырмачылыктардан улам дароо ишке ашыруу мүмкүн эмес. Биринчи учурда, Wayland алмашуу буферинин асинхрондуу иштешинен улам кыйынчылыктар пайда болду, ал Wayland алмашуу буферине абстракттуу кирүү үчүн өзүнчө катмарды түзүүнү талап кылды. Көрсөтүлгөн катмар Firefox 93ко кошулат жана Firefox 94те демейки боюнча иштетилет.

Калкыма диалогдорго келсек, негизги кыйынчылык Wayland калкыма терезелердин катуу иерархиясын талап кылат, б.а. ата-эненин терезеси калкыма терезеси бар бала терезени түзө алат, бирок ошол терезеден башталган кийинки калкыма чынжырды түзүп, түпнуска бала терезеге байланышы керек. Firefox-та ар бир терезе иерархияны түзбөгөн бир нече калкып чыкмаларды чыгара алган. Маселе Waylandди колдонууда калкыма терезелердин бирин жабуу үчүн терезелердин бардык чынжырын башка калкыма терезелер менен кайра курууну талап кылууда, бир нече ачык калкып чыкмалардын болушу сейрек эмес, анткени менюлар жана калкыма терезелер төмөнкү формада ишке ашырылат. калкыма куралдар кеңештери, кошумча диалог терезелери, уруксат сурамдары ж.б. Кырдаал ошондой эле Wayland жана GTK кемчиликтери менен татаалдашкан, анын кесепетинен кичинекей өзгөрүүлөр ар кандай регрессияларга алып келиши мүмкүн. Бирок, Wayland үчүн калкыма терезелерди иштетүү коду оңдолду жана аны Firefox 94ке киргизүү пландаштырылууда.

Wayland менен байланышкан башка өркүндөтүүлөр ар кандай DPI экрандарындагы Firefox-ка 93 масштабдуу өзгөртүүлөрдү кошууну камтыйт, алар мульти монитор конфигурацияларында терезени экрандын четине жылдырганда жылтылдап кетүүнү жок кылат. Firefox 95 сүйрөп түшүрүү интерфейсин колдонууда, мисалы, тышкы булактардан локалдык файлдарга файлдарды көчүрүүдө жана өтмөктөрдү жылдырууда пайда болгон көйгөйлөрдү чечүүнү пландаштырууда.

Firefox 96нын чыгышы менен Wayland үчүн Firefox портун, жок дегенде, Fedoraнын GNOME чөйрөсүндө иштегенде, X11 түзүлүшү менен функционалдык жактан жалпы паритетке жеткирүү пландаштырылууда. Андан кийин, иштеп чыгуучулардын көңүлү графикалык адаптерлер менен өз ара аракеттенүү үчүн кодду камтыган жана драйвер иштебей калган учурда негизги серепчи процессин бузулуудан коргогон GPU процессинин Wayland чөйрөлөрүндө иштөөгө бурулат. GPU процессине учурда мазмунду иштетүү процесстеринде иштетилип жаткан VAAPI аркылуу видео декоддоо үчүн кодду кошуу пландаштырылууда.

Кошумчалай кетсек, Firefoxтун туруктуу бутактарынын колдонуучуларынын бир аз пайызы үчүн Fission долбоорунун алкагында иштелип чыккан катуу сайтты изоляциялоо режими киргизилгенин белгилей кетсек болот. Колдонулган процесстик бассейн боюнча (демейки боюнча 8) өтмөктү иштетүүнү ыктыярдуу бөлүштүрүүдөн айырмаланып, изоляциялык линия режими ар бир сайттын иштетилишин өтмөктөр менен эмес, домен (Коомдук) боюнча өзүнчө өзүнчө процесске жайгаштырат. Suffix), бул тышкы скрипттердин жана iframe блокторунун кошумча изоляция мазмунуна мүмкүндүк берет. Бөлүнүү режимин иштетүү about:config же about:preferences#experimental бетиндеги "fission.autostart=true" өзгөрмөсү аркылуу көзөмөлдөнөт.

Катуу изоляция режими Spectre чабалдыктары менен байланышкан каптал каналдардын чабуулдарынан коргоого жардам берет, ошондой эле эстутумдун фрагментациясын азайтат, эстутумду операциялык системага эффективдүү кайтарат, таштанды чогултуунун жана башка процесстердеги баракчаларга интенсивдүү эсептөөлөрдүн таасирин азайтат жана ар кандай CPU өзөктөрүнө жүктү бөлүштүрүүнүн натыйжалуулугун жогорулатат жана туруктуулукту жогорулатат (iframe иштетүү процессинин бузулушу негизги сайтка жана башка өтмөккө таасир этпейт).

Катуу изоляция режимин колдонууда пайда болгон белгилүү көйгөйлөрдүн арасында көп сандагы өтмөктөрдү ачууда эстутумдун жана файлдын дескрипторун керектөөнүн байкалаарлык көбөйүшү, ошондой эле кээ бир кошумчалардын иштешинин үзгүлтүккө учурашы, iframe мазмунунун жоголуп кетиши бар. басып чыгаруу жана скриншот жазуу функциясын чакыруу, iframeден документтерди кэштөөнүн натыйжалуулугун төмөндөтүү, кыйроодон кийин сессия калыбына келтирилгенде толтурулган, бирок берилбеген формалардын мазмунун жоготуу.

Firefox'тун башка өзгөрүүлөрүнө Fluent локализация системасына өтүүнүн аяктоосу, Жогорку Контраст режимине жакшыртуулар, процесстин аткаруу профилдерин бир чыкылдатуу менен about:processesке жаздыруу мүмкүнчүлүгүн кошуу жана эскисин кайтаруу үчүн жөндөөнү алып салуу кирет. Firefox 89га чейин колдонулган жаңы өтмөк бетинин стили.

Source: opennet.ru

Комментарий кошуу