Նոյեմբերի 21-ին AMO կատալոգը (addons.mozilla.org) կսկսի ընդունել և թվային ստորագրել Chrome Manifest-ի երրորդ տարբերակն օգտագործող հավելումները: Այս հավելումները հասանելի կլինեն Firefox-ի գիշերային տարբերակներում փորձարկման համար: Կայուն թողարկումներում մանիֆեստի երրորդ տարբերակի աջակցությունը կակտիվացվի Firefox 109-ում, որը նախատեսված է 17 թվականի հունվարի 2023-ին: Մանիֆեստի երկրորդ տարբերակի աջակցությունը կպահպանվի մոտ ապագայում, բայց 2023 թվականի վերջին, մանիֆեստի երրորդ տարբերակին հավելումների անցման դինամիկան գնահատելուց հետո, կքննարկվի մանիֆեստի երկրորդ տարբերակի աջակցությունը դադարեցնելու հարցը:
Chrome-ի մանիֆեստը սահմանում է WebExtensions API-ի միջոցով գրված ընդլայնումների համար հասանելի հնարավորություններն ու ռեսուրսները: Սկսած 57 տարբերակից՝ Firefox-ն ամբողջությամբ անցավ WebExtensions API-ի օգտագործմանը՝ հավելումներ մշակելու համար և դադարեցրեց XUL տեխնոլոգիայի աջակցությունը: WebExtensions-ին անցումը հնարավորություն տվեց միավորել հավելումների մշակումը Chrome, Opera, Safari և Edge հարթակների հետ, պարզեցրեց հավելումների տեղափոխումը տարբեր վեբ բրաուզերների միջև և հնարավորություն տվեց լիովին օգտագործել բազմապրոցեսի ռեժիմը: գործողություն (WebExtensions հավելումները կարող են իրականացվել առանձին գործընթացներում՝ մեկուսացված մնացած բրաուզերից): Հավելումների մշակումը այլ բրաուզերների հետ միավորելու համար Firefox-ն ապահովում է գրեթե լիարժեք համատեղելիություն Chrome մանիֆեստի երկրորդ տարբերակի հետ։
Chrome-ը ներկայումս աշխատում է մանիֆեստի 2024-րդ տարբերակին անցնելու ուղղությամբ, որի XNUMX-րդ տարբերակի աջակցությունը կավարտվի XNUMX թվականի հունվարին: Նոր տարբերակում փոփոխությունների հիմնական նպատակն է հեշտացնել անվտանգ և բարձր արդյունավետությամբ հավելումների ստեղծումը և դժվարացնել անապահով և դանդաղ հավելումների ստեղծումը: Քանի որ մանիֆեստի XNUMX-րդ տարբերակը քննադատության առարկա է դարձել և կխախտի բովանդակության արգելափակման և անվտանգության բազմաթիվ հավելումներ, Mozilla-ն որոշել է հրաժարվել Firefox-ում մանիֆեստի հետ լիարժեք համատեղելիությունից և որոշ փոփոխություններ իրականացնել այլ կերպ:
Մանիֆեստի երրորդ տարբերակի հետ կապված հիմնական դժգոհությունը կապված է webRequest API-ի միայն կարդալու ռեժիմի թարգմանության հետ, որը հնարավորություն է տվել միացնել ձեր սեփական մշակողներին, որոնք լիարժեք հասանելիություն ունեն ցանցի հարցումներին և կարող են փոփոխել երթևեկությունը թռիչքի ժամանակ: Այս API-ն օգտագործվում է uBlock Origin-ում և շատ այլ հավելումներում՝ անպատշաճ բովանդակությունը արգելափակելու և անվտանգություն ապահովելու համար: WebRequest API-ի փոխարեն, մանիֆեստի երրորդ տարբերակն առաջարկում է սահմանափակ կարողությունների դեկլարատիվ NetRequest API, որն ապահովում է մուտք դեպի ներկառուցված զտիչ շարժիչ, որն ինքնուրույն մշակում է արգելափակման կանոնները, թույլ չի տալիս օգտագործել սեփական զտման ալգորիթմները և չի թույլատրում: թույլ են տալիս սահմանել բարդ կանոններ, որոնք համընկնում են միմյանց՝ կախված պայմաններից:
Firefox-ում նոր մանիֆեստի իրականացման առանձնահատկությունների շարքում.
- Ավելացվել է նոր դեկլարատիվ բովանդակության զտման API, սակայն, ի տարբերություն Chrome-ի, webRequest API-ի արգելափակման հին ռեժիմի աջակցությունը չի դադարեցվել:
- Մանիֆեստը սահմանում է ֆոնային էջերի փոխարինում Service Workers-ի տարբերակով, որոնք աշխատում են որպես ֆոնային գործընթացներ (Background Service Workers): Ապագա համատեղելիության համար Firefox-ը կիրականացնի Service Workers-ի աջակցություն, սակայն առայժմ առաջարկվել է նոր մեխանիզմ՝ Event Pages անվամբ, որն ավելի ծանոթ է վեբ մշակողներին, չի պահանջում հավելումների ամբողջական վերաշարադրում և վերացնում է Service Workers-ի օգտագործման հետ կապված սահմանափակումները: Event Pages-ը թույլ կտա ֆոնային էջերով առկա հավելումներին համապատասխանել մանիֆեստի երրորդ տարբերակի պահանջներին՝ միաժամանակ պահպանելով DOM-ի հետ աշխատելու համար անհրաժեշտ բոլոր գործառույթներին հասանելիությունը:
- Թույլտվության հարցման նոր մանրացված մոդելը. հավելումը չի կարողանա ակտիվացնել միանգամից բոլոր էջերի համար («all_urls» թույլտվությունը հանվել է), այլ կաշխատի միայն ակտիվ ներդիրի համատեքստում, այսինքն. օգտատերը պետք է հաստատի, որ հավելումը աշխատում է յուրաքանչյուր կայքի համար: Firefox-ում կայքի տվյալներին մուտք գործելու բոլոր հարցումները կդիտարկվեն կամընտիր, իսկ մուտքի թույլտվության վերաբերյալ վերջնական որոշումը կկայացնի օգտատերը, ով կկարողանա ընտրողաբար որոշել, թե որ հավելումը թույլ կտա մուտք գործել տվյալ կայքի տվյալներին:
Ինտերֆեյսին ավելացվել է «Միասնական ընդլայնումներ» անվամբ նոր կոճակ՝ թույլտվությունները կառավարելու համար, որն արդեն կարող է փորձարկվել Firefox-ի գիշերային տարբերակներում: Կոճակը հնարավորություն է տալիս անմիջապես կառավարել, թե յուրաքանչյուր ընդլայնում որ կայքերին է մուտք գործում. օգտատերը կարող է տրամադրել և չեղարկել ընդլայնման մուտքը ցանկացած կայք: Թույլտվությունների կառավարումը վերաբերում է միայն մանիֆեստի երրորդ տարբերակի վրա հիմնված ընդլայնումներին. կայքի մուտքի մանրամասն կառավարումը չի իրականացվում մանիֆեստի երկրորդ տարբերակի վրա հիմնված ընդլայնումների համար:

- Խաչաձև ծագման հարցումների մշակման մեջ փոփոխություն. համաձայն նոր մանիֆեստի, բովանդակության մշակման սկրիպտները կենթարկվեն նույն թույլտվության սահմանափակումներին, ինչ հիմնական էջի համար, որտեղ ներկառուցված են այս սկրիպտները (օրինակ, եթե էջը մուտք չունի դեպի location API-ն, ապա սցենարի հավելումները նույնպես չեն ստանա այս մուտքը): Այս փոփոխությունն ամբողջությամբ ներդրված է Firefox-ում։
- Promise-ի վրա հիմնված API: Firefox-ը աջակցում է այս API-ին և կտեղափոխի այն «chrome.*» անվանատարածք՝ մանիֆեստի երրորդ տարբերակի համար:
- Կանխել արտաքին աղբյուրներից ներբեռնված կոդի կատարումը սերվերներ (Սա վերաբերում է այն իրավիճակներին, երբ որևէ հավելում բեռնում և կատարում է արտաքին կոդ:) Firefox-ը օգտագործում է արտաքին կոդի արգելափակում, իսկ Mozilla-ի մշակողները ավելացրել են կոդի ներբեռնման հետևման լրացուցիչ տեխնիկաներ, ինչպես առաջարկվել է մանիֆեստի երրորդ տարբերակում: Բովանդակության մշակման սկրիպտների համար ներդրվում է առանձին բովանդակության անվտանգության քաղաքականություն (CSP):
Source: opennet.ru

