Рэліз Chrome 90

Кампанія Google прадставіла рэліз web-браўзэра Chrome 90. Адначасова даступны стабільны выпуск вольнага праекта Chromium, які выступае асновай Chrome. Браўзэр Chrome адрозніваецца выкарыстаннем лагатыпаў Google, наяўнасцю сістэмы адпраўкі апавяшчэнняў у выпадку краху, модулямі для прайгравання абароненага відэакантэнту (DRM), сістэмай аўтаматычнай усталёўкі абнаўленняў і перадачай пры пошуку RLZ-параметраў. Наступны выпуск Chrome 91 запланаваны на 25 траўня.

Асноўныя змены ў Chrome 90:

  • Для ўсіх карыстальнікаў уключана адкрыццё сайтаў па змаўчанні праз HTTPS пры наборы імёнаў хастоў у адрасным радку. Напрыклад, пры ўводзе хаста example.com па змаўчанні будзе адкрыты сайт https://example.com, а калі пры адкрыцці ўзніклі праблемы будзе выкананы адкат да http://example.com. Для кіравання выкарыстаннем па змаўчанні "https://" прапанавана настройка "chrome://flags#omnibox-default-typed-navigations-to-https".
  • Рэалізавана магчымасць прысваення вокнам розных пазнак для іх нагляднага падзелу ў панэлі працоўнага стала. Падтрымка змены імя акна спросціць арганізацыю працы пры выкарыстанні асобных вокнаў браўзэра для розных задач, напрыклад, пры адкрыцці асобных вокнаў для працоўных задач, персанальных інтарэсаў, забаў, адкладзеных матэрыялаў і да т.п. Імя змяняецца праз пункт «Дадаць назву акна» у кантэкстым меню, якое з'яўляецца пры кліку правай кнопкай мышы на пустую вобласць у радку ўкладак. Пасля змены імя ў панэлі прыкладанняў замест назвы сайта з актыўнай укладкі адлюстроўваецца абранае імя, што можа быць карысным пры адкрыцці аднолькавых сайтаў у розных вокнах з прывязкай да асобных уліковых запісаў. Прывязка захоўваецца паміж сеансамі і пасля перазапуску акна будуць адноўлены з абранымі імёнамі.
    Рэліз Chrome 90
  • Дададзена магчымасць утойвання "Спіса чытання" (Reading List) без неабходнасці змены налад у "chrome://flags" ("chrome://flags#read-later"). Для ўтойвання зараз можна выкарыстоўваць опцыю "Show Reading List" у ніжняй частцы кантэкстнага меню, якое паказваецца пры кліку правай кнопкай на панэлі закладак. Нагадаем, што ў мінулым выпуску ў часткі карыстальнікаў пры націску на зорачку ў адрасным радку акрамя кнопкі «Дадаць закладку» з'яўляецца другая кнопка «Дадаць у спіс чытання», а ў правым куце панэлі закладак з'яўляецца меню «Спіс чытання», у якім пералічаны ўсё раней дададзеныя ў спіс старонкі. Пры адкрыцці старонкі са спісу яна пазначаецца прачытанай. Старонкі ў спісе таксама могуць быць адзначаны прачытанымі і непрачытанымі ўручную або выдалены са спісу.
  • Дададзена падтрымка сегментавання сеткі для абароны ад метадаў адсочвання перасоўванняў карыстальніка паміж сайтамі, заснаваных на захоўванні ідэнтыфікатараў у абласцях, не прызначаных для сталага захоўвання інфармацыі ("Supercookies"). Так як рэсурсы ў кэшы захоўваюцца ў агульнай прасторы імёнаў, незалежна ад зыходнага дамена, адзін сайт можа вызначыць загрузку рэсурсаў з іншага сайта праз праверку наяўнасці гэтага рэсурса ў кэшы. Абарона заснавана на ўжыванні сегментавання сеткі (Network Partitioning), сутнасць якога ў даданні ў сумесна выкарыстоўваныя кэшы дадатковай прывязкі запісаў да дамена, з якога адчыненая асноўная старонка, што абмяжоўвае вобласць ахопу кэша для скрыптоў адсочвання перасоўванняў толькі бягучым сайтам (скрыпт з iframe не зможа правер ці загружаўся рэсурс з іншага сайта). Коштам сегментавання з'яўляецца зніжэнне эфектыўнасці кэшавання, якое прыводзіць да нязначнага павелічэння часу загрузкі старонкі (максімум на 1.32%, але для 80% сайтаў на 0.09-0.75%).
  • Папоўнены чорны спіс сеткавых партоў для якіх блакуецца адпраўка HTTP, HTTPS і FTP-запытаў з мэтай абароны ад нападу NAT slipstreaming, якая дазваляе пры адкрыцці спецыяльна падрыхтаванай атакавалым web-старонкі ў браўзэры ўсталяваць сеткавае злучэнне з сервера атакавалага да любога UDP або TCP порце на сістэме карыстальніка , нягледзячы на ​​??ўжыванне ўнутранага дыяпазону адрасоў (192.168.x.x, 10.x.x.x). У лік забароненых партоў дададзены 554 (пратакол RTSP) і 10080 (выкарыстоўваецца ў Amanda backup і VMWare vCenter). Раней ужо былі заблакаваныя парты 69, 137, 161, 554, 1719, 1720, 1723, 5060, 5061 і 6566.
  • Дададзена пачатковая падтрымка адкрыцця ў браўзэры PDF-дакументаў з XFA-формамі.
  • Для часткі карыстачоў актываваная новая секцыя налад "Chrome Settings > Privacy and security > Privacy sandbox", якая дазваляе кіраваць параметрамі API FLoC, накіраванага на вызначэнне катэгорыі інтарэсаў карыстальніка без правядзення індывідуальнай ідэнтыфікацыі і без прывязкі да гісторыі наведвання канкрэтных сайтаў.
  • Забяспечана выснова больш зразумелага апавяшчэння з пералікам дазволеных дзеянняў, паказванага ў выпадку падлучэння карыстальніка да профіля, для якога ўключана цэнтралізаванае кіраванне.
  • Зроблены менш назойлівым інтэрфейс запыту паўнамоцтваў. Запыты, якія карыстач хутчэй за ўсё не ўхваліць, зараз блакуюцца аўтаматычна з паказам які адпавядае індыкатара ў адрасным радку, пры дапамозе якога карыстач можа перайсці ў інтэрфейс для кіравання паўнамоцтвамі ў прывязцы да кожнага сайта.
    Рэліз Chrome 90
  • Уключана падтрымка пашырэнняў Intel CET (Intel Control-Flow Enforcement Technology) для апаратнай абароны ад выканання эксплоітаў, пабудаваных з выкарыстаннем прыёмаў зваротна-арыентаванага праграмавання (ROP, Return-Oriented Programming).
  • Прадоўжана работа па перакладзе браўзэра на прымяненне інклюзіўнай тэрміналогіі. Файл "master_preferences" перайменаваны ў "initial_preferences", каб не параніць пачуцці карыстальнікаў, якія ўспрымаюць слова master як намёк аб былым рабстве іх продкаў. Для захавання сумяшчальнасці падтрымка "master_preferences" некаторы час яшчэ захаваецца ў браўзэры. Раней браўзэр ужо пазбавіўся ад выкарыстання слоў "whitelist", "blacklist" і "native".
  • У версіі для Android пры ўключэнні рэжыму эканоміі трафіку "Lite" рэалізавана зніжэнне бітрэйту пры загрузцы відэа пры падключэнні праз сеткі мабільных аператараў сувязі, што дазволіць знізіць выдаткі карыстальнікаў, у якіх уключаны тарыфы з улікам трафіку. У рэжыме "Lite" таксама забяспечана сціск малюнкаў, запытаных з публічна даступных рэсурсаў (якія не патрабуюць аўтэнтыфікацыі) па HTTPS.
  • Дададзены кадавальнік фармату відэа AV1, адмыслова аптымізаваны для выкарыстання ў відэаканферэнцыях, якія рэалізуюцца на базе пратаколу WebRTC. Ужыванне AV1 у відэаканферэнцыях дазваляе падвысіць эфектыўнасць сціску і забяспечыць магчымасць трансляцыі на каналах з прапускной здольнасці на ўзроўні 30 кбіт/сек.
  • У JavaScript у аб'ектах Array, String і TypedArrays рэалізаваны метад at(), які дазваляе выкарыстоўваць адносную індэксацыю (у якасці азначніка масіва паказваецца адносная пазіцыя), у тым ліку з указаннем адмоўных значэнняў адносна канца (напрыклад, «arr.at(-1)» верне апошні элемент масіва).
  • У JavaScript для рэгулярных выразаў дададзена ўласцівасць ". indices", якое змяшчае масіў c пачатковымі і канчатковымі пазіцыямі груп супадзенняў. Уласцівасць запаўняецца толькі пры выкананні рэгулярнага выраза са сцягам "/d". const re = /(a)(b)/d; const m = re.exec('ab'); console.log(m.indices[0]); // 0 - усе групы супадзення // → [0, 2] console.log(m.indices[1]); // 1 - першая група супадзенняў // → [0, 1] console.log(m.indices[2]); // 2 - другая група супадзенняў // → [1, 2]
  • Праведзена аптымізацыя прадукцыйнасці ўласцівасцяў super (напрыклад, super.x), для якіх задзейнічаны inline-кэш. Прадукцыйнасць выкарыстання "super" зараз блізкая да прадукцыйнасці доступу да звычайных уласцівасцяў.
  • Значна паскораны выклік WebAssembly-функцый з JavaScript за рахунак ужывання inline-разгортванні. Указаная аптымізацыя пакуль застаецца эксперыментальнай і патрабуе запуску са сцягам «-turbo-inline-js-wasm-calls».
  • Дададзены API WebXR Depth Sensing, які дазваляе вызначаць адлегласць паміж аб'ектамі ў асяроддзі карыстача і прыладай карыстача, напрыклад, для стварэння больш рэалістычных прыкладанняў дапоўненай рэальнасці. Нагадаем, што API WebXR дазваляе ўніфікаваць працу з рознымі класамі прылад віртуальнай рэальнасці, ад стацыянарных 3D-шлемаў да рашэнняў на базе мабільных прылад.
  • Стабілізаваная магчымасць WebXR AR Lighting Estimation, якая дазваляе ў сеансах WebXR для дапоўненай рэальнасці вызначаць параметры навакольнага асвятлення для надання мадэлям больш натуральнага выгляду і больш гарманічнай інтэграцыі з асяроддзем карыстача.
  • У рэжыме Origin Trials (эксперыментальныя магчымасці, якія патрабуюць асобнай актывацыі) дададзена некалькі новых API, якія пакуль абмежаваны платформай Android. Origin Trial мае на ўвазе магчымасць працы з паказаным API з прыкладанняў, загружаных з localhost або 127.0.0.1, або пасля праходжання рэгістрацыі і атрымання спецыяльнага токена, які дзейнічае абмежаваны час для канкрэтнага сайта.
    • Метад getCurrentBrowsingContextMedia(), які дае магчымасць арганізаваць захоп відэаструменю MediaStream, які адлюстроўвае змесціва бягучай укладкі. У адрозненне ад падобнага метаду getDisplayMedia(), пры выкліку getCurrentBrowsingContextMedia() карыстачу выводзіцца просты дыялог для пацверджання ці блакаванні аперацыі перадачы відэа са змесцівам укладкі.
    • API Insertable Streams, які дае магчымасць маніпуляваць неапрацаванымі (raw) мультымедыйнымі патокамі, якія перадаюцца праз API MediaStreamTrack, такімі як дадзеныя з камеры і мікрафона, вынік захопу экрана або прамежкавыя дадзеныя дэкадавання кодэкам. Для прадстаўлення неапрацаваных кадраў выкарыстоўваюцца інтэрфейсы WebCodec, пасля чаго фармуецца струмень, аналагічны таму, што API WebRTC Insertable Streams генеруе на аснове RTCPeerConnections. З практычнага боку новы API дазваляе рэалізаваць такую ​​функцыянальнасць, як ужыванне метадаў машыннага навучання для ідэнтыфікацыі ці анатавання аб'ектаў у рэжыме рэальнага часу ці для дадання эфектаў, такіх як выразанне фону, перад кадаваннем ці пасля дэкадавання кодэкам.
    • Магчымасць пакавання рэсурсаў у пакеты (Web Bundle) для арганізацыі больш эфектыўнай загрузкі вялікай колькасці спадарожных файлаў (CSS-стылі, JavaScript, малюнкі, iframe). Сярод недахопаў у наяўнай падтрымцы пакетаў для файлаў JavaScript (webpack), якія спрабуюць ухіліць у Web Bundle: у HTTP-кэшы можа абсоўвацца сам пакет, але не яго складовыя часткі; кампіляцыя і выкананне можа пачацца толькі пасля поўнай загрузкі пакета; дадатковыя рэсурсы, такія як CSS і выявы, павінны кадзіравацца ў форме JavaScript-радок, што прыводзіць да павелічэння памеру і выкананні яшчэ адной стадыі разбору.
    • Падтрымка апрацоўкі выключэнняў у WebAssembly.
  • Стабілізаваны API Declarative Shadow DOM для стварэння новых каранёвых галінак у Shadow DOM, напрыклад каб аддзяліць імпартуемы іншы стыль элемента і звязаную з ім падветку DOM ад асноўнага дакумента. Прапанаваны дэкларатыўны API дазваляе абыйсціся для адмацавання галінак DOM толькі HTML без неабходнасці напісання кода на JavaScript.
  • У CSS-уласцівасці aspect-ratio, які дазваляе відавочна прывязаць каэфіцыент суадносін бакоў да любога элемента (для аўтаматычнага вылічэння недастатковага памеру пры ўказанні толькі вышыні або шырыні), рэалізавана магчымасць інтэрпаляцыі значэнняў пры анімацыі (плыўнага пераходу ад аднаго каэфіцыента суадносін бакоў да іншага).
  • Дададзена магчымасць адлюстравання стану ўласных HTML-элементаў (custom element) у CSS праз псеўда-клас ":state()". Функцыянальнасць рэалізавана па аналогіі з магчымасцю штатных HTML-элементаў змяняць свой стан у залежнасці ад узаемадзеяння з карыстачом.
  • У CSS-уласцівасці "appearance" з'явілася падтрымка значэння 'auto', якое па змаўчанні выстаўляецца для і , а на платформе Android дадаткова для , , , і .
  • У CSS-уласцівасць overflow дададзеная падтрымка значэння clip, пры ўсталёўцы якога якое выходзіць за межы блока змесціва абразаецца па мяжы дапушчальнага перапаўнення блока без магчымасці пракруткі. Значэнне, якое вызначае наколькі далёка змесціва можа выходзіць за межы фактычнай мяжы блока да пачатку абразання, задаецца праз новую CSS-уласцівасць overflow-clip-margin. У параўнанні з overflow: hidden выкарыстанне overflow: clip дазваляе дамагчыся больш высокай прадукцыйнасці.
    Рэліз Chrome 90Рэліз Chrome 90
  • На змену HTTP-загалоўку Feature-Policy прыйшоў новы загаловак Permissions-Policy для кіравання дэлегаваннем паўнамоцтваў і ўключэннем пашыраных магчымасцяў, у якім маецца падтрымка структураваных значэнняў палёў (напрыклад, зараз можна паказваць "Permissions-Policy: geolocation=()" замест "Feature- Policy: geolocation 'none'»).
  • Узмоцнена абарона ад выкарыстання Protocol Buffers для правядзення нападаў, выкліканых спекулятыўным выкананнем інструкцый у працэсарах. Абарона рэалізаваная праз даданне MIME-тыпу "application/x-protobuffer" у спіс ніколі не праслухоўваных (sniffed) MIME-тыпаў, апрацоўка якога вырабляецца праз механізм Cross-Origin-Read-Blocking. Раней у падобны спіс ужо быў занесены MIME-тып "application/x-protobuf", але застаўся выпушчаны "application/x-protobuffer".
  • У API File System Access рэалізаваная магчымасць зрушэння бягучай пазіцыі ў файле за яго канец з запаўненнем нулямі ўтварылага прамежку пры наступным запісе праз выклік FileSystemWritableFileStream.write(). Указаная магчымасць дазваляе ствараць разраджаныя файлы з пустэчамі і істотна спрашчае арганізацыю запісу ў файл струменяў з неўпарадкаваным паступленнем блокаў дадзеных (напрыклад, такое практыкуецца ў BitTorrent).
  • Дададзены канструктар StaticRange з рэалізацыяй легкаважных тыпаў Range, не патрабавальных абнаўленні ўсіх злучаных аб'ектаў пры кожнай змене дрэва DOM.
  • Рэалізаваная магчымасць указання параметраў width і height для элементаў , паказаных усярэдзіне элемента . Дадзеная магчымасць дазваляе разлічыць каэфіцыент суадносін бакоў для элементаў , па аналогіі з тым, як гэта зроблена для , і .
  • З WebRTC выдаленая не стандартызаваная падтрымка каналаў дадзеных RTP (RTP Data Channels), замест якіх рэкамендуецца выкарыстоўваць каналы дадзеных на аснове SCTP.
  • Уласцівасці navigator.plugins і navigator.mimeTypes зараз заўсёды вяртаюць пустое значэнне (пасля спынення падтрымкі Flash знікла неабходнасць у дадзеных уласцівасцях).
  • Унесена вялікая порцыя дробных паляпшэнняў у прылады для web-распрацоўнікаў і дададзеная новая прылада для адладкі CSS flexbox.
    Рэліз Chrome 90

Акрамя новаўвядзенняў і выпраўленні памылак у новай версіі ўхілена 37 уразлівасцяў. Многія з уразлівасцяў выяўлены ў выніку аўтаматызаванага тэсціравання інструментамі AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer і AFL. Крытычных праблем, якія дазваляюць абыйсці ўсе ўзроўні абароны браўзэра і выканаць код у сістэме за межамі sandbox-акружэнні, не выяўлена. У рамках праграмы па выплаце грашовай узнагароды за выяўленне ўразлівасцяў для бягучага рэлізу кампанія Google выплаціла 19 прэмій на суму 54000 даляраў ЗША (адна прэмія $20000, адна прэмія $10000, дзве прэміі $5000, тры прэміі $3000, адна прэмія $2000, адна прэмія $1000 ). Памер 500 узнагароджанняў пакуль не вызначаны.

Асобна можна адзначыць, што ўчора пасля фармавання які карэктуе выпуску 89.0.4389.128, але да вынахаду Chrome 90, быў апублікаваны яшчэ адзін эксплоит, у якім выкарыстоўвалася новая 0-day уразлівасць, не выпраўленая ў Chrome 89.0.4389.128. Пакуль не ясна, ці ўхіленая дадзеная праблема ў Chrome 90. Як і ў першым выпадку эксплоит ахапляе толькі адну уявимость і не ўтрымоўвае кода для абыходу sandbox-ізаляцыі (пры запуску chrome са сцягам «—no-sandbox» эксплоит пры адкрыцці web-старонкі на платформе Windows забяспечвае запуск notepad). Звязаная з новым эксплоітам уразлівасць закранае тэхналогію WebAssembly.

Крыніца: opennet.ru

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