Рэліз Chrome 84

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

Асноўныя змены в хром 84:

  • Адключана падтрымка пратаколаў TLS 1.0 і TLS 1.1. Для звароту да сайтаў па абароненым канале сувязі сервер павінен падаць падтрымку прынамсі TLS 1.2, інакш браўзэр зараз будзе выводзіць памылку. Па дадзеных Google у наш час каля 0.5% загрузак web-старонак працягвае ажыццяўляцца з выкарыстаннем састарэлых версій TLS. Адключэнне праведзена ў адпаведнасці з рэкамендацыямі IETF (Internet Engineering Task Force). Причиной отказа от TLS 1.0/1.1 является отсутствие поддержки современных шифров (например ECDHE и AEAD) и требование поддержки старых шифров, надёжность которых на современном этапе развития вычислительной техники поставлена ​​под сомнение (например, требуется поддержка TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA, для проверки целостности и аутентификации используется MD5 и SHA-1). Настройка, якая дае магчымасць вярнуць TLS 1.0/1.1 будзе захавана да студзеня 2021 года.
  • Забяспечана блакіраванне небяспечнай загрузкі (без шыфравання) выкананых файлаў і дададзеная выснова папярэджанняў пры небяспечнай загрузцы архіваў. У далейшым паступова плануецца цалкам спыніць падтрымку загрузкі файлаў без ужывання шыфравання. Блакаванне рэалізаваная, бо загрузка файлаў без шыфравання можа выкарыстоўвацца для здзяйснення шкоднасных дзеянняў шляхам падмены змесціва падчас MITM-нападаў.
  • Дададзена пачатковая падтрымка ідэнтыфікатара Client Hints, які развіваецца ў якасці альтэрнатывы загалоўка User-Agent. Механізм Client Hints прапануе ў якасці замены User-Agent серыю загалоўкаў "Sec-CH-UA-*", якія дазваляюць арганізаваць выбарачную аддачу дадзеных аб пэўных параметрах браўзэра і сістэмы (версія, платформа і г.д.) толькі пасля запыту серверам. Карыстальнік атрымлівае магчымасць вызначыць якія параметры дапушчальныя для аддачы і выбарачна падаваць падобную інфармацыю ўладальнікам сайтаў. Пры выкарыстанні Client Hints ідэнтыфікатар не перадаецца па змаўчанні без відавочнага запыту, што робіць немагчымым правядзенне пасіўнай ідэнтыфікацыі (па змаўчанні паказваецца толькі назоў браўзэра). Праца па уніфікацыі User-Agent адкладзена да наступнага года.
  • Прадоўжана актывацыя
    больш жорсткага абмежаванні перадачы Cookie паміж сайтамі, якая была адменена з-за COVID-19. Для не-HTTPS запытаў забаронена апрацоўка іншых Cookie, якія выстаўляюцца пры звароце да сайтаў, адрозным ад дамена бягучай старонкі. Падобныя Cookie ужываюцца для адсочвання перасоўванняў карыстача паміж сайтамі ў кодзе рэкламных сетак, віджэтаў сацыяльных сетак і сістэм web-аналітыкі.

    Нагадаем, што для кіравання перадачай Cookie ужываецца паказаны ў загалоўку Set-Cookie атрыбут SameSite, які па змаўчанні будзе выстаўлены ў значэнне "SameSite=Lax", якое абмяжоўвае адпраўку Cookie для міжсайтавых субзапытаў, такіх як запыт малюнка ці загрузка кантэнту праз iframe з іншага сайта. Сайты могуць перавызначыць ужывальны па змаўчанні рэжым SameSite, відавочна выстаўляючы пры ўсталёўцы Cookie значэнне SameSite=None. Прытым значэнне SameSite=None для Cookie можа выстаўляцца толькі ў рэжыме Secure (дзейнічае для злучэнняў праз HTTPS). Змена будзе прымяняцца паэтапна, спачатку для невялікага працэнта карыстальнікаў, а потым паступова пашыраючы ахоп.

  • Дададзена эксперыментальная рэалізацыя блакіравальніка рэсурсаёмістай рэкламы, якую можна актываваць пры дапамозе налады "chrome://flags/#enable-heavy-ad-intervention". Блакавальнік дазваляе аўтаматычна адключаць рэкламныя iframe-блокі пасля перавышэння парогавых значэнняў трафіку і нагрузкі на CPU. Блакаванне будзе спрацоўваць калі ў асноўным струмені зрасходавана больш за 60 секунд працэсарнага часу ў суме або 15 секунд у 30-секундным інтэрвале (спажывае 50% рэсурсаў больш за 30 секунд), а таксама калі загружана больш за 4 Мб дадзеных па сетцы.

    Блакаванне будзе спрацоўваць толькі калі да моманту перавышэння лімітаў карыстач не ўзаемадзейнічаў з рэкламным блокам (напрыклад, не клікаў на яго), што з улікам абмежавання на трафік дазволіць блакаваць аўтаўзнаўленне аб'ёмных відэаролікаў у рэкламе без відавочнай актывацыі прайгравання карыстачом. Прапанаваныя меры пазбавяць карыстальнікаў ад рэкламы з неэфектыўнай рэалізацыяй кода або наўмыснай паразітнай актыўнасцю (напрыклад, якія выконваюць майнінг). Па статыстыцы Google, якая падпадае пад крытэры блакавання рэклама складае ўсяго 0.30% ад усіх рэкламных блокаў, але пры гэтым падобныя рэкламныя ўстаўкі спажываюць 28% рэсурсаў CPU і 27% трафіку ад усяго аб'ёму рэкламы.

  • Праведзена праца па зніжэнні спажывання рэсурсаў CPU калі акно браўзэра не знаходзіцца ў поле бачнасці карыстача. Chrome зараз правярае не перакрываецца ці акно браўзэра іншымі вокнамі і выключае адмалёўку пікселяў у абласцях перакрыцця. Уключэнне новай функцыі будзе рабіцца паступова: выбарачна для некаторых карыстальнікаў аптымізацыя будзе ўключана ў Chrome 84, а для астатніх у Chrome 85.
  • Уключана па змаўчанні абарона ад назойлівых апавяшчэнняў, напрыклад, спаму запытамі на атрыманне push-апавяшчэнняў. Паколькі падобныя запыты перарываюць працу карыстальніка і адцягваюць увагу на дзеянні ў дыялогах пацверджання, замест асобнага дыялогу ў адрасным радку будзе адлюстроўвацца інфармацыйная падказка, якая не патрабуе дзеянняў ад карыстальніка, з папярэджаннем аб блакіроўцы запыту паўнамоцтваў, якая аўтаматычна згортваецца ў індыкатар з выявай закрэсленага. Пры зграі на індыкатар можна актываваць або адхіліць запытанае паўнамоцтва ў любы зручны момант.

    Рэліз Chrome 84

  • Забяспечана запамінанне выбару карыстальніка пры адкрыцці апрацоўшчыкаў знешніх пратаколаў - карыстальнік можа выбраць "заўсёды дазваляць для гэтага сайта" для пэўнага апрацоўшчыка і браўзэр запомніць гэтае рашэнне ў прывязцы да бягучага сайта.
  • Дададзена абарона ад змены налад карыстальніка без відавочнай згоды. Калі дадатак зменіць прапанаваную па змаўчанні пошукавую сістэму або старонку, якая адлюстроўваецца для новай укладкі, браўзэр зараз выведзе дыялог з прапановай пацвердзіць паказаную аперацыю або адмяніць змену.
  • Працягнута укараненне абароны ад загрузкі змешанага мультымедыйнага кантэнту (калі на HTTPS-старонцы загружаюцца рэсурсы па пратаколе http://). На старонках, адчыненых па HTTPS, зараз аўтаматычна будуць замяняцца спасылкі "http://" на "https://" у блоках, звязаных з загрузкай малюнкаў (раней замяніліся скрыпты і iframe, аўтазамена гукавых і відэа рэсурсаў чакаецца ў наступным выпуску). Калі малюнак недаступны па https, то яго загрузка блакуецца (уручную можна адзначыць блакаванне праз меню, даступнае праз сімвал замка ў адрасным радку).
  • Дададзена падтрымка API Web OTP (развіваўся як SMS Receiver API), які дазваляе арганізаваць увод на web-старонцы аднаразовага пароля, пасля атрымання SMS-паведамлення з кодам пацверджання, дастаўленага на Android-смартфон карыстальніка, на якім запушчаны браўзэр. Пацвярджэнне па SMS, напрыклад, можа выкарыстоўвацца для праверкі нумара тэлефона, указанага карыстальнікам пры рэгістрацыі. Калі раней карыстач павінен быў адкрыць прыкладанне для працы SMS, скапіяваць з яго код у буфер абмену, вярнуцца ў браўзэр і ўставіць гэты код, то новы API дае магчымасць аўтаматызаваць дадзены працэс і звесці яго да аднаго дотыку.
  • Пашырана API Вэб-анімацыя
    для кіравання прайграваннем web-анімацыі. У новым выпуску дададзена падтрымка аперацый кампазітынгу, якія дазваляюць кантраляваць як камбінуюцца эфекты і прадстаўляюць новыя апрацоўшчыкі, якія выклікаюцца пры надыходзе падзей замены змесціва. API Web Animations таксама зараз падтрымлівае Promise для вызначэння паслядоўнасці паказу анімацыі і лепшага кіравання тым, як анімацыя ўзаемадзейнічае з іншымі магчымасцямі прыкладання.

  • У рэжыме Origin Trials (эксперыментальныя магчымасці, якія патрабуюць асобнай актывацыі) дададзена некалькі новых API. Origin Trial мае на ўвазе магчымасць працы з паказаным API з прыкладанняў, загружаных з localhost або 127.0.0.1, або пасля праходжання рэгістрацыі і атрымання спецыяльнага токена, які дзейнічае абмежаваны час для канкрэтнага сайта.
    • API Cookie Store для доступу Service worker да HTTP Cookies, які выступае асінхроннай альтэрнатывай ужывання document.cookie.
    • API Idle Detection для вызначэння неактыўнасці карыстальніка, які дазваляе вызначаць час, калі карыстач не ўзаемадзейнічае з клавіятурай/мышшу, запушчаны захавальнік экрана, экран заблакаваны ці праца выконваецца на іншым маніторы. Інфармаванне прыкладання аб неактыўнасці ажыццяўляецца праз адпраўку апавяшчэння пасля дасягнення зададзенага парога неактыўнасці.
    • рэжым Origin Isolation, дазваляе распрацоўніку выкарыстоўваць больш поўную ізаляцыю апрацоўкі кантэнту ў асобным працэсе ў прывязцы да крыніцы (origin — дамен+порт+пратакол), а не сайту, коштам спынення падтрымкі некаторых састарэлых магчымасцяў, такіх як сінхроннае выкананне скрыптоў, выкарыстоўвалых document.domain, і выклік postMessage() для адпраўкі паведамленняў экземплярам WebAssembly.Module. Іншымі словамі, Origin Isolation дазваляе арганізаваць падзел па розных працэсах на аснове дамена рэсурсу, а не сайта са ўсімі староннімі ўключэннямі на старонках.
    • API WebAssembly SIMD для выкарыстання вектарных SIMD-інструкцый у дадатках у фармаце WebAssembly. Для забеспячэння платформанезалежнасці прапануюцца новы 128-разрадны тып, які можа прадстаўляць розныя тыпы спакаваных дадзеных, і некалькі базавых вектарных аперацый для апрацоўкі упакаваных дадзеных. SIMD дазваляе павысіць прадукцыйнасць за кошт распаралельвання апрацоўкі дадзеных і будзе карысным пры кампіляцыі натыўнага кода ў WebAssembly. Для ўключэння падтрымкі SIMD можна выкарыстоўваць настройку "chrome://flags/#enable-webassembly-simd".
  • Стабілізаваны і цяпер распаўсюджваецца па-за Origin Trials
    API Content Indexing, які прадстаўляе метададзеныя аб кантэнце, які раней быў пракэшаваны web-прыкладаннямі, якія працуюць у рэжыме Progressive Web Apps (PWS). Прыкладанне можа захоўваць на боку браўзэра розныя дадзеныя, уключаючы выявы, відэа і артыкулы, а пры знікненні сеткавага злучэння выкарыстоўваць іх пры дапамозе API Cache Storage і IndexedDB. Content Indexing API дае магчымасць дадаваць, знаходзіць і выдаляць падобныя рэсурсы. У браўзэры дадзены API ужо выкарыстоўваецца для пераліку спісу старонак і мультымедыйных дадзеных, даступных для прагляду ў offline.

  • Стабілізаваны варыянт API Блакаванне абуджэння на аснове механізму Promise, які прадстаўляе больш бяспечны спосаб кіравання адключэннем аўтаблакіроўкі экрана і пераводу прылад у энергазберагальныя рэжымы.
  • У версіі для платформы Android дададзена падтрымка цэтлікаў прыкладанняў, якія дазваляюць даць хуткі доступ да запатрабаваных тыпавых дзеянняў у дадатку. Для стварэння цэтлікаў дастаткова дадаць элементы ў маніфест web-прыкладанні ў фармаце PWA (Progressive Web Apps).
    Рэліз Chrome 84

  • Для Web Worker дазволена выкарыстанне API ReportingObserver, які дазваляе вызначыць апрацоўшчык для генерацыі справаздачы, які выклікаецца пры звароце да састарэлых магчымасцяў. Згенераваная справаздача па выбары карыстальніка можа быць захавана, адпраўлена на сервер або апрацавана скрыптам на JavaScript.
  • Абноўлены API Resize Observer, які дазваляе падлучыць апрацоўшчык, якому будуць накіроўвацца апавяшчэння аб змене памеру названых элементаў на старонцы. У ResizeObserverEntry дададзена тры новыя ўласцівасці: contentBoxSize, borderBoxSize і devicePixelContentBoxSize для атрымання больш дэталёвай інфармацыі, якая выдаецца ў форме масіва з аб'ектаў ResizeObserverSize.
  • Паведамленні ключавое слова «Revert» для скіду стылю элемента ў значэнне па змаўчанні.
  • Пазбаўлены прэфікса CSS-уласцівасці «-webkit-appearance» і «-webkit-ruby-position», якія цяпер даступныя як «знешні выгляд»І«ruby-position«.
  • У JavaScript рэалізавана падтрымка пазнакі метадаў і ўласцівасцяў класа прыватнымі, пасля чаго доступ да іх будзе адкрыты толькі ўсярэдзіне класа (раней прыватнымі маглі быць толькі палі). Для пазнакі метадаў і ўласцівасцяў прыватным варта паказаць перад імем поля знак "#".
  • У JavaScript дададзена падтрымка слабых спасылак (weak reference) на аб'екты JavaScript, якія дазваляюць захаваць спасылку на аб'ект, але не якія блакуюць выдаленне звязанага аб'екта зборшчыкам смецця. Таксама дададзена падтрымка фіналізатараў, якія даюць магчымасць вызначэння апрацоўшчыка, які выклікаецца пасля выканання зборкі смецця названага аб'екта.
  • Паскораны запуск дадаткаў на WebAssembly, дзякуючы рэалізацыі ў пачатковым (baseline) кампілятары Liftoff атамарных інструкцый и пакетных аперацый з памяццю. Палепшаны сродкі для адладкі WebAssembly, істотна падвышаная прадукцыйнасць адладкі пры выкарыстанні кропак супыну (раней пры адладцы выкарыстоўваўся інтэрпрэтатар, а зараз кампілятар Liftoff).
  • У інструментах для web-распрацоўшчыкаў pphttps://developers.google.com/web/updates/2020/05/devtools абноўлена]] панэль для аналізу прадукцыйнасці. Дададзена агульная інфармацыя аб метрыцы ТБТ (Total Blocking Time), якая паказвае як доўга старонка здаецца даступнай, але насамрэч не даступная (г.зн. старонка ўжо адмаляваная, але яшчэ блакуецца выкананне асноўнага струменя і немагчымы ўвод дадзеных). Дададзена новая секцыя Experience для аналізу метрыкі CLS (Cumulative Layout Shift), якая адлюстроўвае візуальную стабільнасць змесціва. У панэлі інспектавання CSS-стыляў рэалізаваны прадпрагляд малюнкаў, паказаных праз уласцівасць "background-image".

Акрамя новаўвядзенняў і выпраўленні памылак у новай версіі ўхілена 38 уразлівасцяў. Многія з уразлівасцяў выяўлены ў выніку аўтаматызаванага тэсціравання інструментамі AddressSanitizer, Ачышчальнік памяці, Цэласнасць патоку кіравання, LibFuzzer и AFL. Адна праблема (CVE-2020-6510, перапаўненне буфера ў апрацоўшчыку фонавых аперацый fetch) пазначана як крытычная, г.зн. дазваляе абыйсці ўсе ўзроўні абароны браўзэра і выканаць код у сістэме за межамі sandbox-акружэнні. У рамках праграмы па выплаце грашовай узнагароды за выяўленне ўразлівасцяў для бягучага рэлізу кампанія Google выплаціла 26 прэмій на суму 21500 даляраў ЗША (дзве прэміі $5000, дзве прэміі $3000, адна прэмія $2000, дзве прэміі $1000 і тры прэміі $500). Памер 16 узнагароджанняў пакуль не вызначаны.

Крыніца: opennet.ru

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