Рэліз Chrome 80

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

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

  • Для невялікага працэнта карыстальнікаў прапанавана функцыя групоўкі ўкладак, якая дазваляе аб'ядноўваць некалькі падобных па прызначэнні ўкладак у візуальна падзеленыя групы. Кожнай групе можна прывязаць свой колер і імя. Карыстальнікі, якія не трапілі ў першую хвалю актывацыі, могуць уключыць падтрымку групоўкі праз опцыю "chrome://flags/#tab-groups".

    Рэліз Chrome 80

  • Дададзена падтрымка функцыі Scroll-To-Text, якая дазваляе ствараць спасылкі на асобныя словы ці фразы, без відавочнага ўказання ў дакуменце пазнак пры дапамозе тэга «a name» або ўласцівасці «id». Сінтаксіс падобных спасылак плануецца зацвердзіць у якасці web-стандарту, які пакуль знаходзіцца на стадыі. чарнавіка. Маска для пераходу (у сутнасці выконваецца пошук з пракруткай) адлучаецца ад звычайнага якара прыкметай «:~:». Напрыклад, пры адкрыцці спасылкі "https://opennet.ru/52312/#:~:text=Chromе" старонка ссунецца на пазіцыю з першай згадкай слова "Chromе" і дадзенае слова будзе падсветлена.
  • Ужыта больш цвёрдае абмежаванне перадачы Cookie паміж сайтамі, для не-HTTPS запытаў забараняльнае апрацоўку іншых Cookie, якія выстаўляюцца пры звароце да сайтаў, адрозным ад дамена бягучай старонкі. Падобныя Cookie ужываюцца для адсочвання перасоўванняў карыстача паміж сайтамі ў кодзе рэкламных сетак, віджэтаў сацыяльных сетак і сістэм web-аналітыкі. Нагадаем, што для кіравання перадачай Cookie ужываецца паказаны ў загалоўку Set-Cookie атрыбут SameSite, які па змаўчанні зараз выстаўлены ў значэнне "SameSite=Lax", якое абмяжоўвае адпраўку Cookie для міжсайтавых субзапытаў, такіх як запыт малюнка ці загрузка кантэнту праз iframe з іншага сайта. Сайты могуць перавызначыць ужывальны па змаўчанні рэжым SameSite, відавочна выстаўляючы пры ўсталёўцы Cookie значэнне SameSite=None. Пры тым значэнне SameSite=None для Cookie можа выстаўляцца толькі ў рэжыме Secure (дзейнічае для злучэнняў праз HTTPS). Змяненне пачне паэтапна прымяняцца 17 лютага, спачатку для невялікага працэнта карыстальнікаў, а потым паступова пашыраючы ахоп.
  • Дададзена абарона ад назойлівых апавяшчэнняў, звязаных з пацвярджэннем паўнамоцтваў. Так як падобная актыўнасць, напрыклад, спам запытамі на атрыманне push-паведамленняў, перарывае працу карыстача і адцягвае ўвагу на дзеянні ў дыялогах пацверджання, у Chrome 80 замест асобнага дыялогу, у адрасным радку зараз можа адлюстроўвацца інфармацыйная падказка з папярэджаннем аб блакаванні запыту паўнамоцтваў, якая затым згортваецца ў індыкатар з выявай закрэсленага звана. Пры зграі на індыкатар можна актываваць ці адхіліць запытанае паўнамоцтва ў любы зручны момант. Аўтаматычна новы рэжым будзе выбарачна ўключацца для карыстальнікаў, якія да гэтага звычайна блакіравалі падобныя запыты, а таксама для сайтаў, на якіх фіксуецца вялікі працэнт адхіленні запытаў. Для ўключэння новага рэжыму для ўсіх запытаў у наладкі дададзена спецыяльная опцыя (chrome://flags/#quiet-notification-prompts).

    Рэліз Chrome 80

  • Забаронены вывад усплываючых вокнаў (выклік метаду window.open()) і адпраўка сінхронных запытаў XMLHttpRequest у апрацоўшчыках падзей зачынення ці ўтойванні старонкі (unload, beforeunload, pagehide і visibilitychange);
  • Прапанавана пачатковая абарона ад загрузкі змешанага мультымедыйнага кантэнту (калі на HTTPS-старонцы загружаюцца рэсурсы па пратаколе http://). На старонках, адкрытых па HTTPS, зараз аўтаматычна будуць замяняцца спасылкі "http://" на "https://" у блоках, звязаных з прайграваннем гукавых і відэа файлаў. Калі гукавы ці відэа рэсурс недаступны па https, тое яго загрузка блакуецца (уручную можна адзначыць блакаванне праз меню, даступнае праз знак замка ў адрасным радку).

    Выявы працягнуць загружацца без змен (аўтазамена будзе ўжытая ў Chrome 81), але для замены на https або блакаванні малюнкаў распрацоўнікам сайтаў прадстаўлены CSP-уласцівасці upgrade-insecure-requests і block-all-mixed-content. Для скрыптоў і iframe блакіроўка змешанага кантэнту ўжо была рэалізавана раней.

  • Пачалося паступовае адключэнне падтрымкі FTP. Па змаўчанні падтрымка FTP пакуль захоўваецца, але будзе праведзены эксперымент, у рамках якога для вызначанага адсотка карыстачоў падтрымка FTP будзе адключаная (для вяртання запатрабуецца запусціць браўзэр з опцыяй -enable-ftp). Нагадаем, што ў мінулых выпусках ужо было адключанае адлюстраванне ў акне браўзэра змесціва рэсурсаў, загружаных па пратаколе «ftp://» (напрыклад, спынены паказ HTML-дакументаў і файлаў README), забаронена выкарыстанне FTP пры загрузцы субрэсурсаў з дакументаў і спынена падтрымка проксі для FTP. Тым не менш, да гэтага часу заставалася магчымасць загрузкі файлаў па прамых спасылках і адлюстраванне змесціва каталогаў.
  • Дададзена
    магчымасць выкарыстання вектарных SVG-малюнкаў у якасці піктаграмы сайта (favicon).

  • У налады дададзена магчымасць выбарачнага адключэння асобных тыпаў дадзеных, якія перадаюцца пры сінхранізацыі паміж браўзэрамі.
  • Для цэнтралізавана адміністраваных карпаратыўных карыстальнікаў дададзена правіла BlockExternalExtensions, якое дазваляе забараніць усталёўку вонкавых дадаткаў на прыладу.
  • Рэалізавана магчымасць аднаразовай праверкі ўсяго ланцужка уласцівасцяў або выклікаў у JavaScript. Напрыклад, пры звароце да "db.user.name.length" раней патрабавалася паэтапна праверыць азначэнне ўсіх складовых частак, напрыклад, праз "if (db && db.user && db.user.name)". Цяпер пры дапамозе аперацыі "?." можна звярнуцца да значэння "db?.user?.name?.length" без папярэдніх праверак і такі зварот не прывядзе да высновы памылкі. У выпадку праблем (калі нейкі элемент апрацаваны як null ці undefined) на выхадзе будзе выдадзена значэнне "undefined".
  • У JavaScript прапанаваны новы лагічны аператар аб'яднання??«, які вяртае правы аперанд, калі левы аперанд мае значэнне NULL ці undefined, і наадварот. Напрыклад, «const foo=bar ?? 'default string'» калі bar роўны null, верне сцёку або значэнне bar у адваротным выпадку, у тым ліку, калі bar роўны 0 і ' ', у адрозненне ад аператара "||".
  • У рэжыме Origin Trials (эксперыментальныя магчымасці, якія патрабуюць асобнай актывацыі) прапанаваны API Content Indexing. Origin Trial мае на ўвазе магчымасць працы з паказаным API з прыкладанняў, загружаных з localhost або 127.0.0.1, або пасля праходжання рэгістрацыі і атрымання спецыяльнага токена, які дзейнічае абмежаваны час для канкрэтнага сайта. API Content Indexing, падае метададзеныя аб кантэнце, які раней быў пракэшаваны web-прыкладаннямі, якія працуюць у рэжыме Progressive Web Apps (PWS). Прыкладанне можа захоўваць на боку браўзэра розныя дадзеныя, уключаючы выявы, відэа і артыкулы, а пры знікненні сеткавага злучэння выкарыстоўваць іх пры дапамозе API Cache Storage і IndexedDB. Content Indexing API дае магчымасць дадаваць, знаходзіць і выдаляць падобныя рэсурсы. У браўзэры дадзены API ужо выкарыстоўваецца для пераліку спісу старонак і мультымедыйных дадзеных, даступных для прагляду ў offline.

    Рэліз Chrome 80

  • Стабілізаваны і цяпер распаўсюджваецца па-за Origin Trials праграмны інтэрфейс Contact Picker, які дазваляе карыстачу абраць запісы з адраснай кнігі і перадаць пэўныя дэталі аб іх на сайт. Пры запыце вызначаецца спіс уласцівасцей, якія неабходна атрымаць. Дадзеныя ўласцівасці відавочна адлюстроўваюцца карыстачу, які прымае рашэнне перадаваць гэтыя ўласцівасці ці не. API можа быць выкарыстаны, напрыклад, у паштовым web-кліенце для выбару атрымальнікаў для адпраўляемага ліста, у web-дадатку з функцыяй VoIP для ініцыявання званка па вызначаным нумары або ў сацыяльнай сетцы для пошуку ўжо зарэгістраваных сяброў. Пры гэтым у рамках Origin Trials прапанаваны некаторыя новыя ўласцівасці Contact Picker: акрамя раней даступных ПІБ, email і нумар тэлефона, дададзена магчымасць перадачы паштовага адрасу і выявы.
  • У Web Workers прапанаваны новы спосаб загрузкі модуляў ECMAScript, які дазваляе абыйсціся без ужывання функцыі importScripts(), якая блакуе працу worker-а падчас апрацоўкі імпартаванага скрыпту і выконвае яго ў глабальным кантэксце. Новы спосаб мае на ўвазе стварэнне спецыяльных модуляў для Web Workers, якія падтрымліваюць стандартныя механізмы імпарту JavaScript і могуць загружацца дынамічна, не блакуючы выкананне worker-а. Для загрузкі модуляў у канструктару Worker прадугледжаны новы тып рэсурсу - 'module':

    const worker = new Worker('worker.js', {
    type: 'module'
    });

  • Рэалізавана убудаваная магчымасць апрацоўкі ў JavaScript сціснутых струменяў, якая не патрабуе выкарыстання вонкавых бібліятэк. Для сціску і распакаванні дададзены API CompressionStream і DecompressionStream. Падтрымліваецца сціск з выкарыстаннем алгарытмаў gzip і deflate.

    const compressionReadableStream
    = inputReadableStream.pipeThrough(new CompressionStream('gzip'));

  • Паведамленні CSS-ўласцівасць «line-break: anywhere«, якое дазваляе разрывы на ўзроўні любога тыпаграфічнага сімвала, у тым ліку разрывы побач з сімваламі пунктуацыі, прадвызначанымі прабеламі ( ) і ў сярэдзіне слоў. Таксама дададзена CSS-ўласцівасць «overflow-wrap: anywhere» якое дазваляе разрываць непарыўныя паслядоўнасці знакаў у любым месцы, калі ў радку не атрымалася знайсці прыдатную для парыву пазіцыю.
  • Для медыякантэкту, які апрацоўваецца ў шыфраваным выглядзе, рэалізавана падтрымка метаду MediaCapabilities.decodingInfo(), які прадстаўляе звесткі аб магчымасцях браўзэра, злучаных з дэкадаваннем абароненага кантэнту (напрыклад, паказаны метад можна выкарыстоўваць для выбару сцэнараў высакаякаснага або што эканоміць спажыванне энергіі спосабаў дэкадавання з улікам даступнай прапускной здольнасці і памеру экрана).
  • Дададзены метад HTMLVideoElement.getVideoPlaybackQuality(), праз які можна атрымаць звесткі аб прадукцыйнасці прайгравання відэа для карэкціроўкі бітрэйту, дазволу і іншых параметраў відэа.
  • У API Payment Handler, які спрашчае інтэграцыю з існуючымі аплатнымі сістэмамі, дададзена магчымасць дэлегавання апрацоўкі адраса і кантактнай інфармацыі знешняму апрацоўшчыку плацежнай сістэмы (дадатак плацежнай сістэмы можа валодаць больш дакладнымі звесткамі, чым браўзэр).
  • Дададзена падтрымка HTTP-загалоўка Sec-Fetch-Dest, які дазваляе адправіць дадатковыя метададзеныя аб тыпе звязанага з запытам кантэнту (напрыклад, для запыту праз тэг img паказваецца тып "image", для шрыфтоў - "font", для скрыптоў - "script", для стыляў - "style" і да т.п. ). На аснове ўказанага тыпу сервер можа прыняць меры для абароны ад некаторых тыпаў нападаў (напрыклад, малаверагодна, што спасылка на апрацоўшчык для пераводу грошай будзе зададзена праз тэг img, таму такія запыты не трэба апрацоўваць).
  • У JavaScript-рухавічку V8 праведзена аптымізацыя захоўвання паказальнікаў у кучы. Замест поўнага 64-разраднага значэння забяспечана захоўванне толькі ўнікальных ніжніх бітаў паказальніка. Падобная аптымізацыя дазволіла скараціць спажыванне памяці ў кучы на ​​40%, коштам зніжэння прадукцыйнасці на 3-8%.
    Рэліз Chrome 80

    Рэліз Chrome 80

  • Змены у інструментах для web-распрацоўшчыкаў:
    • У web-кансолі з'явілася магчымасць перавызначэння выразаў let і class.

      Рэліз Chrome 80

    • Палепшаны сродкі адладкі WebAssembly. Дададзена падтрымка ГНОМІК для пакрокавай адладкі, указанні кропак супыну і аналізу трасіровак стэка ў зыходным кодзе, на якім напісана прыкладанне WebAssembly.

      Рэліз Chrome 80

    • Палепшана панэль для аналізу сеткавай актыўнасці. Дададзена магчымасць прагляду ланцужка выкліку скрыптоў, звязаных з ініцыяваннем запыту.

      Рэліз Chrome 80

      Дададзены новыя слупкі Path і URL, у якіх паказваецца абсалютны шлях і поўны URL для кожнага сеткавага рэсурсу. Забяспечана вылучэнне абранага запыту ў агляднай дыяграме.

      Рэліз Chrome 80

    • Ва ўкладцы Network Conditions дададзена опцыя для змены параметру User-Agent.

      Рэліз Chrome 80

    • Прапанаваны новы інтэрфейс для наладкі панэлі аўдыту.
      Рэліз Chrome 80

    • Ва ўкладцы Пакрыццё прадстаўлены выбар збору coverage-дадзеных для кожнай функцыі або для кожнага блока кода (больш дэталёвая статыстыка, але патрабуе больш рэсурсаў).

      Рэліз Chrome 80

  • Дзеянне маніфеста AppCache (тэхналогія для арганізацыі працы web-прыкладанні ў offline-рэжыме) абмежавана бягучым каталогам сайта (калі маніфест быў загружаны з www.example.com/foo/bar/, то магчымасць пераазначэння URL будзе дзейнічаць толькі ўсярэдзіне /foo/bar/). У Chrome 82 падтрымку AppCache плануецца выдаліць поўнасцю. У якасці прычыны называецца жаданне пазбавіцца ад аднаго з вектараў для здзяйснення нападаў, звязаных з міжсайтавых скрыптынгам. Замест AppCache рэкамендуецца выкарыстоўваць API Кэш.
  • Спынена падтрымка састарэлага API WebVR 1.1, замест якога можна выкарыстоўваць API WebXR Device, які дазваляе атрымаць доступ да кампанентаў для стварэння віртуальнай і дапоўненай рэальнасці і уніфікаваць працу з рознымі класамі прылад, ад стацыянарных шлемаў віртуальнай рэальнасці да рашэнняў на базе мабільных прылад.
  • Апрацоўшчыкі пратаколаў, якія падключаюцца праз метады registerProtocolHandler() і unregisterProtocolHandler(), зараз могуць працаваць толькі ў бяспечным кантэксце (пры доступе праз HTTPS).

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

Крыніца: opennet.ru

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