У Firefox пачалося тэставанне трэцяй версіі маніфесту Chrome

Кампанія Mozilla абвясціла аб пачатку тэставання рэалізацыі ў Firefox трэцяй версіі маніфесту Chrome, вызначальнай магчымасці і рэсурсы, даступныя для дадаткаў, напісаных з выкарыстаннем API WebExtensions. Для тэставання трэцяй версіі маніфеста ў бэта-версіі Firefox 101 на старонцы about:config варта ўсталяваць параметр "extensions.manifestV3.enabled" у значэнне true, а параметр "xpinstall.signatures.required" у значэнне false. Для ўсталёўкі дадаткаў можна выкарыстоўваць інтэрфейс about: debugging. Уключэнне трэцяй версіі маніфеста па змаўчанні запланавана на канец года.

Пачынальна з версіі 57 Firefox цалкам перайшоў на выкарыстанне API WebExtensions для распрацоўкі дадаткаў і спыніў падтрымку тэхналогіі XUL. Пераход на WebExtensions дазволіў уніфікаваць распрацоўку дадаткаў з платформамі Chrome, Opera, Safari і Edge, спрасціў партаванне дадаткаў паміж рознымі web-браўзэрамі і даў магчымасць паўнавартасна выкарыстоўваць шматпрацэсны рэжым працы (дадаткі WebExtensions могуць выконвацца ў асобных працэсах, ізалявана ад астатніх частак браўзэра). Для ўніфікацыі распрацоўкі дадаткаў з астатнімі браўзэрамі ў Firefox забяспечваецца амаль поўная сумяшчальнасць са другой версіяй маніфеста Chrome.

У цяперашні час у Chrome вядзецца праца па пераходзе на трэцюю версію маніфеста, а падтрымка другой версіі будзе спынена ў студзені 2023 гады. Так як трэцяя версія маніфеста стала аб'ектам крытыкі і прывядзе да парушэння працы шматлікіх дадаткаў для блакавання непажаданага кантэнту і забеспячэнні бяспекі, кампанія Mozilla вырашыла адысці ад практыкі забеспячэння поўнай сумяшчальнасці з маніфестам у Firefox і рэалізаваць інакш некаторыя змены.

Асноўная незадаволенасць трэцяй версіяй маніфесту звязана з пераводам у рэжым толькі для чытання API webRequest, які дазваляў падключаць уласныя апрацоўшчыкі, якія маюць поўны доступ да сеткавых запытаў і здольныя на лёце мадыфікаваць трафік. Указаны API прымяняецца ў uBlock Origin і многіх іншых дапаўненнях для блакавання непажаданага кантэнту і забеспячэння бяспекі. Замест API webRequest у трэцяй версіі маніфесту прапанаваны абмежаваны па сваіх магчымасцях API declarativeNetRequest, які прадстаўляе доступ да ўбудаванага рухавічка для фільтрацыі, самастойна які апрацоўвае правілы блакавання, не што дазваляе выкарыстоўваць уласныя алгарытмы фільтрацыі і не што дазваляе задаваць складаныя правілы, якія перакрываюць адзін аднаго ў залежнасці ад умоў.

У прапанаванай у Firefox рэалізацыі трэцяй версіі маніфеста дадалі новы дэкларатыўны API фільтраванні кантэнту, але ў адрозненне ад Chrome не сталі спыняць падтрымку старога блакавальнага рэжыму працы API webRequest. Сярод іншых асаблівасцяў рэалізацыі новага маніфеста ў Firefox:

  • У маніфесце вызначана замена фонавых старонак на варыянт Service Workers, які працуе ў выглядзе фонавых працэсаў (Background Service Workers). Для забеспячэння сумяшчальнасці ў Firefox будзе рэалізавана дадзенае патрабаванне, але дадаткова прапанаваны новы механізм Event Pages, які больш звыклы для web-распрацоўнікаў, не патрабуе поўнай перапрацоўкі дадаткаў і ўхіляе абмежаванні, злучаныя з ужываннем Service Workers. Event Pages дазволіць прывесці існуючыя дапаўненні з фонавымі старонкамі да патрабаванняў трэцяй версіі маніфесту, захаваўшы пры гэтым доступ да ўсіх магчымасцяў, неабходных для працы з DOM. У даступнай для тэставання ў Firefox рэалізацыі маніфеста пакуль падтрымліваюцца толькі Event Pages, а падтрымку рашэння на базе Service Workers абяцаюць дадаць пазней. Прапанова падтрымала кампанія Apple і рэалізавала Event Pages у выпуску Safari Technology Preview 136.
  • Новая грануляваная мадэль запыту паўнамоцтваў - дадатак не зможа актывавацца адразу для ўсіх старонак (прыбрана паўнамоцтва "all_urls"), а будзе працаваць толькі ў кантэксце актыўнай укладкі, г.зн. карыстачу спатрэбіцца пацвярджаць працу дадатку для кожнага сайта. У Firеfox усе запыты на доступ да дадзеных сайта будуць разглядацца як неабавязковыя, а канчатковае рашэнне аб прадастаўленні доступу будзе прымаць карыстач, які зможа выбарачна вырашаць якому дадатку падаць доступ да сваіх дадзеных на тым ці іншым сайце.
  • Змена апрацоўкі Cross-origin запытаў - у адпаведнасці з новым маніфестам на скрыпты апрацоўкі кантэнту будуць распаўсюджвацца тыя ж абмежаванні паўнамоцтваў, што і для асноўнай старонкі, у якую гэтыя скрыпты ўкараняюцца (напрыклад, калі старонка не мае доступу да API вызначэння месцазнаходжання, то і скрыпт дапаўненні таксама не атрымае гэты доступ). Дадзеная змена цалкам рэалізавана ў Firefox.
  • API на аснове Promise. Firefox ужо падтрымлівае дадзены API і для трэцяй версіі маніфеста перанясе яго ў прастору імёнаў "chrome.*".
  • Забарона выканання кода, загружанага з вонкавых сервераў (гаворка пра сітуацыі, калі дадатак падгружае і выконвае вонкавы код). У Firefox ужо прымяняецца блакіроўка знешняга кода і распрацоўшчыкі Mozilla дадалі дадатковыя тэхнікі адсочвання загрузак кода, прапанаваныя ў трэцяй версіі маніфесту. Для скрыптоў апрацоўкі кантэнту прадстаўлена асобная палітыка абмежавання доступу да кантэнту (CSP, Content Security Policy).

Крыніца: opennet.ru

Дадаць каментар