Chrome 74 թողարկում

Google- ը ներկայացրել վեբ բրաուզերի թողարկում Chrome 74. Միաժամանակ հասանելի է անվճար նախագծի կայուն թողարկում Chromium, որը ծառայում է որպես Chrome-ի հիմք։ Chrome բրաուզեր տարբեր Google-ի լոգոների օգտագործումը, Flash մոդուլը ըստ պահանջի ներբեռնելու հնարավորություն, վթարի դեպքում ծանուցումներ ուղարկելու համակարգի առկայություն, պաշտպանված վիդեո բովանդակություն նվագարկելու մոդուլներ, որոնման ընթացքում թարմացումների ավտոմատ տեղադրման և փոխանցման համակարգ։ RLZ պարամետրեր. Chrome 75-ի հաջորդ թողարկումը նախատեսված է հունիսի 4-ին:

Հիմնական փոփոխություններ в Chrome 74:

  • Երբ տեղի է ունենում onUnload իրադարձությունը, որը կոչվում է, երբ էջը փակվում է, հիմա արգելվում է ցուցադրել թռուցիկ պատուհաններ (window.open() զանգը արգելափակված է), որը կպաշտպանի օգտվողներին կասկածելի կայքերը փակելուց հետո գովազդային էջեր բացելու հարկադրանքից.
  • JavaScript շարժիչում իրականացվել է ի հայտ է եկել նոր ռեժիմ JIT- պակաս («—jitless» դրոշ), որը հնարավոր է դարձնում JavaScript-ը գործարկել առանց JIT-ի (օգտագործվում է միայն թարգմանիչը) և կոդերի կատարման ընթացքում առանց գործարկվող հիշողություն հատկացնելու։ JIT-ն անջատելը կարող է օգտակար լինել պոտենցիալ վտանգավոր վեբ հավելվածների հետ աշխատելիս անվտանգությունը բարելավելու, ինչպես նաև JIT-ի օգտագործումն արգելող հարթակներում կառուցումներ ապահովելու համար (օրինակ՝ iOS, որոշ խելացի հեռուստացույցներ և խաղային կոնսուլներ: Երբ JIT-ն անջատված է, JavaScript-ի կատարումը: Speedometer 40 թեստում կատարողականը նվազում է 2.0%-ով և Web Tooling Benchmark թեստում 80%-ով, սակայն YouTube-ի հետ աշխատանքը մոդելավորելիս գրանցվել է կատարողականի ընդամենը 6% նվազում, մինչդեռ հիշողության սպառումը փոքր-ինչ նվազել է՝ ընդամենը 1.7%-ով;
  • V8-ը նաև առաջարկում է նոր օպտիմալացումների մեծ մասը: Օրինակ՝ ֆունկցիայի կանչերի կատարումը, որոնցում փաստացի անցած պարամետրերի թիվը չի համապատասխանում ֆունկցիայի սահմանման ժամանակ նշված արգումենտների քանակին, արագացել է 60%-ով։ Ստանալու ֆունկցիայի օգտագործմամբ DOM հատկությունների հասանելիությունն արագացվել է, ինչը դրականորեն է ազդում Angular շրջանակի աշխատանքի վրա: JavaScript-ի վերլուծությունն արագացել է. UTF-8 ապակոդավորիչի օպտիմալացումը հնարավորություն է տվել 8%-ով բարձրացնել վերլուծիչի աշխատանքը հոսքային ռեժիմում (վերլուծելիս, երբ այն բեռնվում է) 10.5%-ով, իսկ անհարկի կրկնօրինակման գործողությունները վերացնելը տվել է ևս XNUMX%-ով աճ;
  • Աշխատանքներ են տարվել JavaScript շարժիչի հիշողության սպառումը նվազեցնելու ուղղությամբ։
    Կոդ է ավելացվել բայթկոդի քեշը մաքրելու համար, որը զբաղեցնում է ընդհանուր կույտի չափի մոտավորապես 15%-ը: Աղբահանողին մի փուլ է ավելացվել՝ քեշից հազվադեպ կազմվող բայթկոդը հեռացնելու համար օգտագործվող ֆունկցիաների կամ գործառույթների համար, որոնք կանչվում են միայն սկզբնավորումից հետո: Մաքրման որոշումը կայացվում է նոր հաշվիչների հիման վրա, որոնք հաշվի են առնում բայթկոդին վերջին անգամ մուտք գործելը: Այս փոփոխությունը նվազեցրեց հիշողության սպառումը 5-15%-ով՝ առանց բացասաբար ազդելու աշխատանքի վրա: Բացի այդ, բայթկոդ կազմողը բացառում է ակնհայտորեն չօգտագործված կոդի ստեղծումը, օրինակ, որը հետևում է վերադարձին կամ ընդմիջմանը (եթե դրան Jump անցում չկա);

    Chrome 74 թողարկում

  • WebAssembly-ի համար իրականացվել է թելերի և ատոմային գործողությունների աջակցություն (API WebAssembly Threads և WebAssembly Atomics);
  • Սկրիպտների առանձին առաքման համար ավելացվել է «#!» վերնագրի աջակցությունը, որը որոշում է թարգմանչի գործարկումը: Օրինակ, սկրիպտավորման այլ լեզուների նման, JavaScript ֆայլը կարող է այսպիսի տեսք ունենալ.

    #!/usr/bin/env հանգույց
    console.log (42);

  • CSS-ում ավելացվել է նոր մեդիա հարցում:նախընտրում է-կրճատված-շարժում«, թույլ տալով կայքին որոշել օպերացիոն համակարգի կարգավորումների վիճակը՝ կապված անիմացիոն էֆեկտների անջատման հետ: Օգտագործելով առաջարկվող հարցումը, կայքի սեփականատերը կարող պարզել, որ օգտատերը անջատել է անիմացիոն էֆեկտները և նաև անջատել կայքի անիմացիոն տարբեր գործառույթներ, օրինակ՝ հեռացնել ուշադրություն գրավելու համար օգտագործվող կոճակների ցնցման էֆեկտը.
  • Բացի Chrome 72-ում ներկայացված հանրային դաշտերը սահմանելու հնարավորությունից իրականացված աջակցություն Դաշտերը նշել որպես մասնավոր, որից հետո դրանց արժեքներին հասանելիությունը բաց կլինի միայն դասի ներսում: Դաշտը որպես մասնավոր նշելու համար դաշտի անվան առաջ ավելացրեք «#» նշանը: Ինչպես հանրային դաշտերի դեպքում, մասնավոր սեփականությունները չեն պահանջում կոնստրուկտորի բացահայտ օգտագործում:
  • Ավելացվել է Feature-Policy HTTP վերնագիրը, որը թույլ է տալիս վերահսկել API-ի վարքագիծը և միացնել որոշ առանձնահատկություններ (օրինակ՝ կարող եք միացնել XMLHttpRequest-ի համաժամանակյա աշխատանքի ռեժիմը կամ անջատել Geolocation API-ը): JavaScript API որոշակի հնարավորությունների գործունեությունը վերահսկելու համար. Մշակողների համար կան երկու նոր մեթոդներ document.featurePolicy և frame.featurePolicy, որոնք առաջարկում են երեք գործառույթ.
    allowFeatures()-ը՝ ընթացիկ տիրույթի համար թույլատրված հատկանիշների ցանկը ստանալու համար, թույլ է տալիսFeature()-ին ընտրողաբար ստուգել, ​​թե արդյոք միացված են որոշակի գործառույթներ, և getAllowlistForFeature()՝ վերադարձնելու տիրույթների ցանկը, որոնց համար թույլատրված է որոշակի հատկանիշ ընթացիկ էջում;

  • Ավելացվեց փորձնական («chrome://flags#enable-text-fragment-anchor») աջակցություն ռեժիմին Ոլորել-Տեքստ, որը թույլ է տալիս հղումներ կազմել առանձին բառերի կամ արտահայտությունների՝ առանց փաստաթղթում հստակ նշելու պիտակներ՝ օգտագործելով «a name» թեգը կամ «id» հատկությունը: Հղում ուղարկելու համար առաջարկվում է «#targetText=» հատուկ պարամետր, որում կարող եք նշել անցման տեքստը: Թույլատրվում է նշել դիմակ, որը ներառում է արտահայտություններ, որոնք ցույց են տալիս հատվածի սկիզբը և վերջը, օգտագործելով ստորակետը որպես դրանց բաժանարար (օրինակ՝ «example.com#targetText=start%20words, end%20words»);
  • AudioContext կոնստրուկտորին ավելացվել է տարբերակ ընտրանքի չափը, որը թույլ է տալիս սահմանել ձայնային գործառնությունների նմուշառման արագությունը Web Audio API-ի միջոցով;
  • Ավելացվեց դասի աջակցություն Intl.Locale, որը տրամադրում է լեզվի, տարածաշրջանի և ոճի պարամետրերի վերլուծության և մշակման մեթոդներ, որոնք սահմանված են տեղանքի կողմից, ինչպես նաև Unicode-ի ընդլայնման պիտակներ կարդալու և գրելու համար՝ պահպանելով օգտվողի տեղանքի կարգավորումները սերիական ձևաչափով.
  • մեխանիզմ Ստորագրված HTTP փոխանակումներ (SXG) ընդլայնվել է գործիքներով տեղեկացնող բովանդակության դիստրիբյուտորները ստորագրված բովանդակություն ներբեռնելու սխալների մասին, ինչպիսիք են վկայագրի ստուգման հետ կապված խնդիրները: Սխալների մշակումն իրականացվում է API-ի ընդլայնումների միջոցով Ցանցի սխալների գրանցում. Հիշեցնենք, որ SXG թույլ է տալիս մի կայքի սեփականատերը, օգտագործելով թվային ստորագրությունը, թույլատրում է որոշակի էջերի տեղադրումը մեկ այլ կայքում, որից հետո, եթե այդ էջերը մուտք գործեն երկրորդ կայք, զննարկիչը օգտվողին ցույց կտա սկզբնական կայքի URL-ը, չնայած այն հանգամանքին, որ որ էջը բեռնված է այլ հոսթից.
  • TextEncoder դասին ավելացվել է մեթոդ encodeInto (), որը թույլ է տալիս կոդավորված տող գրել անմիջապես նախապես հատկացված բուֆերի մեջ։ EncodeInto() մեթոդը encode() մեթոդի բարձր արդյունավետության այլընտրանքն է, որը պահանջում է բուֆերային տեղաբաշխման գործողություն կատարել ամեն անգամ, երբ այն մուտք է գործում:
  • Ծառայության աշխատող տրամադրվում է բուֆերացնելով client.postMessage() զանգը մինչև փաստաթուղթը պատրաստ լինի: Client.postMessage()-ով ուղարկված հաղորդագրությունները կպահպանվեն այնքան ժամանակ, մինչև կբարձրացվի DOMContentLoaded իրադարձությունը, տեղադրվի onmessage-ը կամ կանչվի startMessages()-ը;
  • Ինչպես պահանջվում է CSS Transitions-ի ճշգրտմամբ ավելացրել է transitionrun, transitioncancel, transitionstart և transitionend իրադարձություններ, որոնք ստեղծվում են, երբ CSS անցումը հերթագրվում է, չեղարկվում, սկսում կամ ավարտում է կատարումը:
  • XMLHttpRequest-ի համար overrideMimeType()-ի կամ MIME տիպի միջոցով սխալ կոդավորվող նիշ նշելիս այն այժմ հետ է ընկնում UTF-8-ի փոխարեն Latin-1;
  • «Թույլատրել-ներբեռնումներ-առանց օգտվողի ակտիվացման» հատկությունը, որի միջոցով հնարավոր էր ավտոմատ կերպով ներբեռնել ֆայլերը iframe-ների մշակման ժամանակ, հնացել է և կհեռացվի ապագա թողարկումում: Հետագայում ֆայլերի ներբեռնումը սկսելն առանց բացահայտ օգտատիրոջ գործողությունների կարգելվի, քանի որ այն ակտիվորեն օգտագործվել է չարաշահումների, ներբեռնումների հարկադրման և չարամիտ ծրագրերի մասեր օգտատիրոջ համակարգչի վրա տեղադրելու համար: Ներբեռնումը սկսելու համար կպահանջվի օգտվողի սեղմումով նույն էջի վրա: Ի սկզբանե նախատեսված էր գույքը հեռացնել Chrome 74-ում, սակայն հեռացվեց հետաձգվել է մինչև Chrome 76:
  • Windows պլատֆորմի համար առաջարկվում է կամընտիր մուգ թեմա ինտերֆեյսի դիզայնի համար (նախորդ թողարկումում մուգ թեմա էր պատրաստվել macOS-ի համար): Քանի որ մուգ դիզայնը գրեթե նույնական է ինկոգնիտո ռեժիմի դիզայնին, օգտվողի պրոֆիլի պատկերակի փոխարեն ավելացվել է հատուկ ցուցիչ՝ մասնավոր գործառնական ռեժիմն ընդգծելու համար.
  • Հնարավորություն է ավելացվել կորպորատիվ օգտատերերի համար Chrome բրաուզերի ամպային կառավարում կառավարել օգտվողի բրաուզերի կարգավորումները Google Admin վահանակի միջոցով.

    Chrome 74 թողարկում

Բացի նորամուծություններից և սխալների շտկումից, նոր տարբերակը վերացնում է 39 խոցելիություն. Խոցելիություններից շատերը հայտնաբերվել են գործիքներով ավտոմատացված փորձարկման արդյունքում Հասցե Սանիտար, Հիշողության ախտահանիչ, Վերահսկել հոսքի ամբողջականությունը, LibFuzzer и AFL. Չի հայտնաբերվել ոչ մի կարևոր խնդիր, որը թույլ կտա շրջանցել բրաուզերի պաշտպանության բոլոր մակարդակները և համակարգում կոդ գործարկել Sandbox միջավայրից դուրս: Որպես ընթացիկ թողարկման համար խոցելիություններ հայտնաբերելու համար դրամական պարգևներ վճարելու ծրագրի մաս՝ Google-ը վճարել է 19 պարգև՝ 26837 ԱՄՆ դոլարի չափով (չորս $3000, չորս $2000, մեկ $1337, չորս $1000, երեք $500 մրցանակ)։ 4 պարգևների չափը դեռ որոշված ​​չէ։

Source: opennet.ru

Добавить комментарий