Chrome 90 թողարկում

Google-ը ներկայացրել է Chrome 90 վեբ բրաուզերի թողարկումը: Միևնույն ժամանակ հասանելի է անվճար Chromium նախագծի կայուն թողարկումը, որը ծառայում է որպես Chrome-ի հիմքը: Chrome զննարկիչն առանձնանում է Google-ի լոգոների օգտագործմամբ, վթարի դեպքում ծանուցումներ ուղարկելու համակարգի առկայությամբ, պաշտպանված վիդեո բովանդակություն (DRM) նվագարկելու մոդուլներով, թարմացումների ավտոմատ տեղադրման համակարգով և որոնելիս RLZ պարամետրերը փոխանցելու համար: Chrome 91-ի հաջորդ թողարկումը նախատեսված է մայիսի 25-ին:

Հիմնական փոփոխությունները Chrome 90-ում.

  • Բոլոր օգտատերերին լռելյայն թույլատրված է բացել կայքերը HTTPS-ի միջոցով, երբ մուտքագրում են հյուրընկալողի անունները հասցեագոտում: Օրինակ, երբ մուտքագրեք host example.com, https://example.com կայքը կբացվի լռելյայն, և եթե բացման ժամանակ խնդիրներ առաջանան, այն կվերադարձվի http://example.com: Լռելյայն «https://»-ի օգտագործումը վերահսկելու համար առաջարկվում է «chrome://flags#omnibox-default-typed-navigations-to-https» պարամետրը:
  • Այժմ հնարավոր է պատուհաններին տարբեր պիտակներ վերագրել՝ դրանք աշխատասեղանի վահանակում տեսողականորեն առանձնացնելու համար: Պատուհանի անվան փոփոխման աջակցությունը կհեշտացնի աշխատանքի կազմակերպումը տարբեր առաջադրանքների համար զննարկչի առանձին պատուհաններ օգտագործելիս, օրինակ՝ աշխատանքային առաջադրանքների, անձնական հետաքրքրությունների, զվարճանքի, հետաձգված նյութերի և այլնի համար առանձին պատուհաններ բացելիս: Անունը փոխվում է համատեքստի ընտրացանկում «Ավելացնել պատուհանի վերնագիր» կետի միջոցով, որը հայտնվում է ներդիրների բարում գտնվող դատարկ տարածքի վրա աջ սեղմելիս: Հավելվածի վահանակում անունը փոխելուց հետո ակտիվ ներդիրից կայքի անվան փոխարեն ցուցադրվում է ընտրված անունը, որը կարող է օգտակար լինել առանձին հաշիվների հետ կապված տարբեր պատուհաններում նույն կայքերը բացելիս: Կապը պահպանվում է նիստերի միջև և վերագործարկումից հետո պատուհանները կվերականգնվեն ընտրված անուններով:
    Chrome 90 թողարկում
  • Ավելացրել է «Ընթերցման ցուցակը» թաքցնելու հնարավորությունը՝ առանց «chrome://flags» («chrome://flags#read-later») կարգավորումները փոխելու անհրաժեշտության: Թաքցնելու համար այժմ կարող եք օգտագործել «Ցուցադրել ընթերցման ցուցակը» տարբերակը համատեքստի ցանկի ներքևում, որը ցուցադրվում է էջանիշների տողի վրա աջ սեղմելիս: Հիշեցնենք, որ վերջին թողարկումում, երբ որոշ օգտատերեր կտտացնում են հասցեագոտում գտնվող աստղանիշը, բացի «Ավելացնել էջանիշ» կոճակից, հայտնվում է «Ավելացնել ընթերցանության ցուցակին» երկրորդ կոճակը, իսկ աջ անկյունում էջանիշների վահանակը հայտնվում է «Ընթերցման ցուցակ» ընտրացանկը, որը թվարկում է նախկինում ցուցակում ավելացված բոլոր էջերը: Ցանկից էջ բացելիս այն նշվում է որպես կարդացված: Ցանկի էջերը կարող են նաև ձեռքով նշվել որպես կարդացված կամ չկարդացված կամ հեռացվել ցուցակից:
  • Ավելացվել է ցանցի սեգմենտավորման աջակցություն՝ կայքերի միջև օգտատերերի տեղաշարժերին հետևելու մեթոդներից պաշտպանվելու համար, որոնք հիմնված են նույնացուցիչների պահպանման վրա այն տարածքներում, որոնք նախատեսված չեն տեղեկատվության մշտական ​​պահպանման համար («Supercookies»): Քանի որ քեշավորված ռեսուրսները պահվում են ընդհանուր անվանատարածքում՝ անկախ սկզբնավորման տիրույթից, մի կայք կարող է որոշել, որ մեկ այլ կայք բեռնում է ռեսուրսները՝ ստուգելով արդյոք այդ ռեսուրսը գտնվում է քեշում։ Պաշտպանությունը հիմնված է ցանցի սեգմենտացիայի (Ցանցային բաժանման) օգտագործման վրա, որի էությունը ընդհանուր քեշերին ավելացնելն է այն տիրույթին, որտեղից բացվում է հիմնական էջը, որը սահմանափակում է քեշի ծածկույթը միայն շարժման հետագծման սկրիպտների համար։ դեպի ընթացիկ կայք (iframe-ի սկրիպտը չի կարողանա ստուգել՝ արդյոք ռեսուրսը ներբեռնվել է այլ կայքից): Սեգմենտավորման գինը քեշավորման արդյունավետության նվազում է, որը հանգեցնում է էջի բեռնման ժամանակի մի փոքր աճի (առավելագույնը 1.32%, բայց կայքերի 80% -ի համար 0.09-0.75%):
  • Ցանցային նավահանգիստների սև ցուցակը, որոնց համար արգելափակված է HTTP, HTTPS և FTP հարցումների ուղարկումը, համալրվել է NAT slipstreaming հարձակումներից պաշտպանվելու համար, ինչը թույլ է տալիս բրաուզերում հարձակվողի կողմից հատուկ պատրաստված վեբ էջ բացելիս ստեղծել ցանց: միացում հարձակվողի սերվերից օգտվողի համակարգի ցանկացած UDP կամ TCP պորտին, չնայած ներքին հասցեների տիրույթի օգտագործմանը (192.168.xx, 10.xxx): Արգելված նավահանգիստների ցանկում ավելացվել է 554 (RTSP արձանագրություն) և 10080 (օգտագործվում է Amanda կրկնօրինակում և VMWare vCenter-ում): Նախկինում 69, 137, 161, 554, 1719, 1720, 1723, 5060, 5061 և 6566 նավահանգիստներն արդեն արգելափակված էին:
  • Ավելացվեց նախնական աջակցություն զննարկիչում XFA ձևաթղթերով PDF փաստաթղթեր բացելու համար:
  • Որոշ օգտատերերի համար ակտիվացվել է «Chrome Settings > Գաղտնիություն և անվտանգություն > Գաղտնիության ավազարկղ» կարգավորումների բաժինը, որը թույլ է տալիս կառավարել FLoC API-ի պարամետրերը, որոնք ուղղված են օգտատերերի շահերի կատեգորիայի որոշմանը` առանց անհատական ​​նույնականացման և առանց հղման: կոնկրետ կայքեր այցելելու պատմությունը:
  • Ավելի հստակ ծանուցում թույլատրված գործողությունների ցանկով այժմ ցուցադրվում է, երբ օգտատերը միանում է պրոֆիլին, որի կենտրոնացված կառավարումը միացված է:
  • Թույլտվությունների հարցման միջերեսը դարձրեց ավելի քիչ ներխուժող: Հարցումները, որոնք օգտատերը հավանաբար կհաստատի, այժմ ավտոմատ կերպով արգելափակվում են՝ հասցեագոտում ցուցադրվող համապատասխան ցուցիչով, որի միջոցով օգտատերը կարող է գնալ ինտերֆեյս՝ յուրաքանչյուր կայքի համար թույլտվությունները կառավարելու համար:
    Chrome 90 թողարկում
  • Ներառված է Intel CET (Intel Control-flow Enforcement Technology) ընդլայնումների աջակցությունը՝ ապարատային պաշտպանության համար, որոնք կառուցված են վերադարձի վրա հիմնված ծրագրավորման (ROP, Return-Oriented Programming) տեխնիկայի օգտագործմամբ կառուցված շահագործումներից:
  • Աշխատանքները շարունակվում են զննարկիչը ներառական տերմինաբանություն օգտագործելու համար: «Master_preferences» ֆայլը վերանվանվել է «initial_preferences»՝ խուսափելու համար վիրավորել այն օգտատերերի զգացմունքները, ովքեր «վարպետ» բառն ընկալում են որպես ակնարկ իրենց նախնիների նախկին ստրկության մասին: Համատեղելիությունը պահպանելու համար «master_preferences»-ի աջակցությունը որոշ ժամանակ կմնա դիտարկիչում: Նախկինում բրաուզերն արդեն ազատվել էր «սպիտակ ցուցակ», «սև ցուցակ» և «հայրենի» բառերի օգտագործումից։
  • Android տարբերակում, երբ միացված է «Lite» երթևեկության խնայողության ռեժիմը, բջջային օպերատորների ցանցերի միջոցով տեսանյութ ներբեռնելիս բիթային արագությունը նվազում է, ինչը կնվազեցնի երթևեկության վրա հիմնված սակագները միացված օգտատերերի ծախսերը: «Lite» ռեժիմը նաև ապահովում է HTTPS-ի միջոցով հրապարակայնորեն հասանելի ռեսուրսներից պահանջվող պատկերների սեղմում (նույնականացում չպահանջող):
  • Ավելացվեց AV1 վիդեո ձևաչափի կոդավորիչ, որը հատուկ օպտիմիզացված է վիդեո կոնֆերանսներում օգտագործելու համար՝ հիմնված WebRTC արձանագրության վրա: Տեսակոնֆերանսներում AV1-ի օգտագործումը հնարավորություն է տալիս բարձրացնել սեղմման արդյունավետությունը և ապահովել 30 կբիթ/վ թողունակություն ունեցող ալիքներով հեռարձակման հնարավորություն:
  • JavaScript-ում Array, String և TypedArrays օբյեկտներն իրականացնում են at() մեթոդը, որը թույլ է տալիս օգտագործել հարաբերական ինդեքսավորում (հարաբերական դիրքը նշված է որպես զանգվածի ինդեքս), ներառյալ վերջի նկատմամբ բացասական արժեքներ նշելը (օրինակ. «arr.at(-1)»-ը կվերադարձնի զանգվածի վերջին տարրը):
  • JavaScript-ն ավելացրել է «.indicas» հատկությունը կանոնավոր արտահայտությունների համար, որը պարունակում է զանգված՝ համընկնող խմբերի սկզբնական և վերջավոր դիրքերով: Գույքը լրացվում է միայն «/d» դրոշակով կանոնավոր արտահայտությունը կատարելիս։ const re = /(a)(b)/d; const m = re.exec ('ab'); console.log (m.indeks[0]); // 0 — բոլոր համընկնող խմբերը // → [0, 2] console.log(m.indicas[1]); // 1-ը համընկնումների առաջին խումբն է // → [0, 1] console.log(m.indices[2]); // 2 - հանդիպումների երկրորդ խումբ // → [1, 2]
  • Օպտիմիզացվել է «սուպեր» հատկությունների (օրինակ՝ super.x) կատարումը, որոնց համար միացված է ներկառուցված քեշը: «Սուպեր»-ի օգտագործման արդյունավետությունն այժմ մոտ է սովորական հատկությունների հասանելիության կատարմանը:
  • JavaScript-ից WebAssembly գործառույթների կանչումը զգալիորեն արագացել է ներկառուցված տեղաբաշխման օգտագործման շնորհիվ: Այս օպտիմիզացումը առայժմ փորձնական է և պահանջում է աշխատել «-turbo-inline-js-wasm-calls» դրոշակով:
  • Ավելացվեց WebXR Depth Sensing API-ն, որը թույլ է տալիս որոշել օգտատիրոջ միջավայրում գտնվող օբյեկտների և օգտատիրոջ սարքի միջև հեռավորությունը, օրինակ՝ ավելի իրատեսական հավելյալ իրականության հավելվածներ ստեղծելու համար: Հիշեցնենք, որ WebXR API-ն թույլ է տալիս միավորել աշխատանքը վիրտուալ իրականության տարբեր դասերի սարքերի հետ՝ ստացիոնար 3D սաղավարտներից մինչև շարժական սարքերի վրա հիմնված լուծումներ:
  • WebXR AR Lighting Estimation ֆունկցիան կայունացվել է՝ թույլ տալով WebXR AR նիստերին որոշել շրջակա միջավայրի լուսավորության պարամետրերը՝ մոդելներին ավելի բնական տեսք հաղորդելու և օգտագործողի միջավայրի հետ ավելի լավ ինտեգրվելու համար:
  • Origin Trials ռեժիմը (փորձարարական առանձնահատկություններ, որոնք պահանջում են առանձին ակտիվացում) ավելացնում է մի քանի նոր API-ներ, որոնք ներկայումս սահմանափակված են Android հարթակով: Origin Trial-ը ենթադրում է նշված API-ի հետ աշխատելու հնարավորություն՝ localhost-ից կամ 127.0.0.1-ից ներբեռնված հավելվածներից, կամ գրանցվելուց և հատուկ նշան ստանալուց հետո, որը վավեր է որոշակի կայքի համար սահմանափակ ժամանակով:
    • GetCurrentBrowsingContextMedia() մեթոդը, որը հնարավորություն է տալիս նկարահանել MediaStream վիդեո հոսք, որն արտացոլում է ընթացիկ ներդիրի բովանդակությունը: Ի տարբերություն նմանատիպ getDisplayMedia() մեթոդի, getCurrentBrowsingContextMedia()-ին կանչելիս օգտատիրոջը ներկայացվում է պարզ երկխոսություն՝ ներդիրի բովանդակությամբ տեսանյութի փոխանցման գործողությունը հաստատելու կամ արգելափակելու համար:
    • Insertable Streams API, որը թույլ է տալիս շահարկել MediaStreamTrack API-ի միջոցով փոխանցվող չմշակված մեդիա հոսքերը, ինչպիսիք են տեսախցիկի և խոսափողի տվյալները, էկրանի նկարահանման արդյունքները կամ միջանկյալ կոդեկների վերծանման տվյալները: WebCodec ինտերֆեյսներն օգտագործվում են չմշակված շրջանակները ներկայացնելու համար, և հոսք է ստեղծվում, որը նման է WebRTC Insertable Streams API-ի ստեղծած RTCPeerConnection-ի հիման վրա: Գործնական առումով, նոր API-ն թույլ է տալիս այնպիսի ֆունկցիոնալություն, ինչպիսին է մեքենայական ուսուցման տեխնիկայի կիրառումը իրական ժամանակում օբյեկտները նույնականացնելու կամ ծանոթագրելու համար, կամ ավելացնելով էֆեկտներ, ինչպիսիք են ֆոնային կտրումը նախքան կոդավորումը կամ կոդեկով ապակոդավորումը:
    • Ռեսուրսները փաթեթների մեջ փաթեթավորելու ունակություն (Web Bundle)՝ մեծ թվով ուղեկցող ֆայլերի (CSS ոճեր, JavaScript, պատկերներ, iframes) ավելի արդյունավետ բեռնում կազմակերպելու համար: JavaScript ֆայլերի փաթեթների (վեբ փաթեթ) առկա աջակցության թերությունների թվում, որոնք Web Bundle-ը փորձում է վերացնել. փաթեթն ինքնին, բայց ոչ դրա բաղադրիչ մասերը, կարող են հայտնվել HTTP քեշում. Կազմումը և կատարումը կարող են սկսվել միայն փաթեթն ամբողջությամբ ներբեռնելուց հետո. Լրացուցիչ ռեսուրսները, ինչպիսիք են CSS-ը և պատկերները, պետք է կոդավորված լինեն JavaScript տողերի տեսքով, ինչը մեծացնում է չափը և պահանջում է վերլուծության ևս մեկ քայլ:
    • Աջակցություն WebAssembly-ում բացառությունների մշակմանը:
  • Կայունացրել է Declarative Shadow DOM API-ը՝ Shadow DOM-ում նոր արմատական ​​ճյուղեր ստեղծելու համար, օրինակ՝ ներմուծված երրորդ կողմի տարրի ոճը և դրա հետ կապված DOM ենթաճյուղը հիմնական փաստաթղթից առանձնացնելու համար: Առաջարկվող դեկլարատիվ API-ն թույլ է տալիս օգտագործել միայն HTML՝ DOM ճյուղերն անջատելու համար՝ առանց JavaScript կոդ գրելու անհրաժեշտության:
  • Aspect-ratio CSS հատկությունը, որը թույլ է տալիս բացահայտորեն կապել կողմերի հարաբերակցությունը ցանկացած տարրի հետ (ավտոմատ կերպով հաշվարկել բացակայող չափը միայն բարձրությունը կամ լայնությունը նշելիս), իրականացնում է անիմացիայի ընթացքում արժեքները ինտերբոլացնելու հնարավորությունը (մեկից սահուն անցում): կողմերի հարաբերակցությունը մյուսին):
  • Ավելացրել է «:state()» կեղծ դասի միջոցով CSS-ում սովորական HTML տարրերի վիճակը արտացոլելու հնարավորությունը: Ֆունկցիոնալությունն իրականացվում է անալոգիայի միջոցով ստանդարտ HTML տարրերի ունակության հետ՝ փոխելու իրենց վիճակը՝ կախված օգտագործողի փոխազդեցությունից:
  • CSS հատկությունը «արտաքին տեսք» այժմ աջակցում է «auto» արժեքը, որը սահմանված է լռելյայնորեն Եվ , իսկ Android հարթակում հավելյալ համար , , , Եվ .
  • «Clip» արժեքի աջակցությունն ավելացվել է «overflow» CSS հատկությանը, երբ սահմանվում է, բովանդակությունը, որը տարածվում է բլոկից այն կողմ, կտրվում է մինչև բլոկի թույլատրելի արտահոսքի սահմանը՝ առանց ոլորման հնարավորության: Արժեքը, որը որոշում է, թե որքան հեռու կարող է տարածվել բովանդակությունը տուփի իրական սահմանից այն կողմ, մինչև կտրումը սկսվի, սահմանվում է նոր CSS հատկության «overflow-clip-margin» միջոցով: Համեմատած «հորդառատ. թաքնված» հետ, «հորդառատ: տեսահոլովակի» օգտագործումը թույլ է տալիս ավելի լավ կատարում:
    Chrome 90 թողարկումChrome 90 թողարկում
  • Feature-Policy HTTP վերնագիրը փոխարինվել է նոր թույլտվություններ-քաղաքական վերնագրով՝ թույլտվությունների պատվիրակումը և առաջադեմ հնարավորությունները միացնելու համար, որը ներառում է դաշտի կառուցվածքային արժեքների աջակցություն (օրինակ, այժմ կարող եք նշել «Թույլտվություններ-Քաղաքականություն. աշխարհագրական տեղաբաշխում»: =()" փոխարեն "Feature- Policy. Geolocation 'none'"):
  • Ուժեղացված պաշտպանություն պրոցեսորներում հրահանգների սպեկուլյատիվ կատարման հետևանքով առաջացած գրոհների համար Արձանագրությունների բուֆերների օգտագործումից: Պաշտպանությունն իրականացվում է՝ ավելացնելով «application/x-protobuffer» MIME տիպը երբեք չհնչած MIME տեսակների ցանկին, որը մշակվում է Cross-Origin-Read-Blocking մեխանիզմի միջոցով: Նախկինում MIME տիպը «application/x-protobuf» արդեն ներառված էր նմանատիպ ցանկում, սակայն «application/x-protobuffer»-ը դուրս էր մնացել:
  • File System Access API-ն իրականացնում է ֆայլի ընթացիկ դիրքը իր վերջից այն կողմ տեղափոխելու ունակությունը, որը արդյունքում առաջացած բացը լրացնում է զրոներով FileSystemWritableFileStream.write() կանչի միջոցով հետագա գրման ժամանակ: Այս հատկությունը թույլ է տալիս ստեղծել դատարկ տարածություններով նոսր ֆայլեր և զգալիորեն պարզեցնում է տվյալների բլոկների անկանոն ժամանումով ֆայլի վրա գրելու կազմակերպումը (օրինակ, դա կիրառվում է BitTorrent-ում):
  • Ավելացվեց StaticRange կոնստրուկտորը թեթև տիրույթի տեսակների ներդրմամբ, որոնք չեն պահանջում թարմացնել բոլոր առնչվող օբյեկտները ամեն անգամ, երբ DOM ծառը փոխվում է:
  • Իրականացրել է տարրերի լայնության և բարձրության պարամետրերը սահմանելու հնարավորությունը նշված տարրի ներսում . Այս հատկությունը թույլ է տալիս հաշվարկել տարրերի հարաբերակցությունը , անալոգիա այն բանի, թե ինչպես է դա արվում , Եվ .
  • RTP տվյալների ալիքների ոչ ստանդարտ աջակցությունը հեռացվել է WebRTC-ից, և դրա փոխարեն խորհուրդ է տրվում օգտագործել SCTP-ի վրա հիմնված տվյալների ալիքներ:
  • Navigator.plugins և navigator.mimeTypes հատկությունները այժմ միշտ վերադարձնում են դատարկ արժեք (Ֆլեշի աջակցության ավարտից հետո այս հատկություններն այլևս կարիք չկար):
  • Փոքր բարելավումների մեծ մասը կատարվել է վեբ ծրագրավորողների համար նախատեսված գործիքներում և ավելացվել է CSS վրիպազերծման նոր գործիք՝ flexbox:
    Chrome 90 թողարկում

Բացի նորամուծություններից և սխալների շտկումից, նոր տարբերակը վերացնում է 37 խոցելիություն։ Խոցելիություններից շատերը հայտնաբերվել են ավտոմատացված թեստավորման արդյունքում՝ օգտագործելով AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer և AFL գործիքները: Չի հայտնաբերվել ոչ մի կարևոր խնդիր, որը թույլ կտա շրջանցել բրաուզերի պաշտպանության բոլոր մակարդակները և համակարգում կոդ գործարկել Sandbox միջավայրից դուրս: Որպես ընթացիկ թողարկման համար խոցելիություններ հայտնաբերելու համար կանխիկ դրամական պարգևատրման ծրագրի մաս՝ Google-ը վճարել է 19 պարգև՝ 54000 ԱՄՆ դոլար արժողությամբ (մեկ $20000, մեկ $10000, երկու $5000, երեք $3000, մեկ $2000, մեկ $1000 և չորս $500 մրցանակ, )). 6 պարգևների չափը դեռ որոշված ​​չէ։

Առանձին-առանձին կարելի է նշել, որ երեկ՝ 89.0.4389.128 ուղղիչ թողարկման ձևավորումից հետո, բայց մինչև Chrome 90-ի թողարկումը, հրապարակվեց ևս մեկ շահագործում, որն օգտագործում էր նոր 0-օրյա խոցելիություն, որը չֆիքսված էր Chrome 89.0.4389.128-ում։ . Դեռ պարզ չէ, թե արդյոք այս խնդիրը շտկվել է Chrome 90-ում: Ինչպես և առաջին դեպքում, շահագործումն ընդգրկում է միայն մեկ խոցելիություն և չի պարունակում կոդ, որը շրջանցում է sandbox-ի մեկուսացումը (Chrome-ը «--no-sandbox» դրոշակով գործարկելիս: , շահագործումը տեղի է ունենում, երբ Windows հարթակում վեբ էջ բացելը թույլ է տալիս գործարկել Notepad-ը): Նոր շահագործման հետ կապված խոցելիությունը ազդում է WebAssembly տեխնոլոգիայի վրա:

Source: opennet.ru

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