Рэліз Chrome 76

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

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

  • Актываваны па змаўчанні рэжым абароны ад перадачы іншых Cookie, які ў выпадку адсутнасці атрыбуту SameSite у загалоўку Set-Cookie па змаўчанні выстаўляе значэнне "SameSite=Lax", якое абмяжоўвае адпраўку Cookie для ўставак са іншых сайтаў (але сайты па-ранейшаму змогуць адмяніць абмежаванне, відавочна выстав пры ўсталёўцы Cookie значэнне SameSite = None). Да гэтага часу браўзэр перадаваў Cookie на любы запыт да сайта, для якога маюцца выстаўленыя Cookie, нават калі першапачаткова адкрыты іншы сайт, а зварот ажыццяўляецца ўскосна пры дапамозе загрузкі карцінкі ці праз iframe. У рэжыме 'Lax' перадача Cookie блакуецца толькі для міжсайтавых субзапытаў, такіх як запыт малюнка ці загрузка кантэнту праз iframe, якія часта выкарыстоўваюцца для арганізацыі CSRF-нападаў і для адсочвання перасоўванняў карыстача паміж сайтамі.
  • Спынена выкарыстанне Flash-кантэнту па змаўчанні. Да выпуску Chrome 87, чаканага ў снежні 2020 гады, падтрымку Flash можна будзе вярнуць у наладах (Advanced > Privacy and Security > Site Settings) з наступным відавочным пацверджаннем аперацыі прайгравання Flash-кантэнту для кожнага сайта (пацвярджэнне запамінаецца да перазапуску браўзэра). Поўнае выдаленне кода для забеспячэння падтрымкі Flash сінхранізавана з раней агучаным кампаніяй Adobe планам спынення суправаджэння тэхналогіі Flash у 2020 годзе;
  • Для прадпрыемстваў у адрасны радок дададзена магчымасць пошуку файлаў у сховішча Google Drive;

    Рэліз Chrome 76

  • пачалася масавае блакіроўка у Chrome непрымальнай рэкламы, якая замінае ўспрыманню змесціва і не адпавядае крытэрам, выпрацаваным Кааліцыяй па паляпшэнні рэкламы;
  • Рэалізаваны адаптыўны рэжым пераключэння на новую старонку, пры якім ачыстка бягучага змесціва і адлюстраванне белага фону робіцца не адразу, а праз невялікую затрымку. Для хутка загружаюцца старонак ачыстка прыводзіць толькі да мігацення і не нясе карыснай нагрузкі, закліканай інфармаваць карыстальніка аб пачатку загрузкі новай старонкі. У новым выпуску калі старонка адчыняецца хутка і ўкладваецца ў невялікую затрымку, то новая старонка адлюстроўваецца па месцы, бясшвоўна замяняючы папярэднюю (напрыклад, зручна пры пераходзе на блізкія па афармленні і каляровай гаме іншыя старонкі таго ж сайта). Калі для адлюстравання старонкі патрабуецца нейкі прыкметны карыстачу час, то па-ранейшаму экран будзе папярэдне ачышчаны;
  • Сталі больш жорсткімі крытэры вызначэння актыўнасці карыстальніка на старонцы. Chrome дазваляе выводзіць усплывальныя апавяшчэнні і прайграваць назойлівы відэа/аўдыё кантэнт толькі пасля дзеянняў карыстача са старонкай. У новым выпуску націск Escape, навядзенне курсора на спасылку і дотыку экрана больш не ўспрымаюцца як актывуюць старонку ўзаемадзеянне (патрабуецца відавочны клік, увод тэксту або пракрутка);
  • Дададзены медыя-запыт «prefers-color-scheme», які дазваляе сайтам вызначыць прымяненне ў браўзэры цёмнай тэмы афармлення і аўтаматычна ўключыць цёмнае афармленне для сайта, які праглядаецца.
  • Пры ўключэнні цёмнай тэмы афармлення ў зборках для Linux, цёмным колерам зараз адлюстроўваецца і адрасны радок;
  • Блакаваная магчымасць вызначэння адкрыцця старонкі ў рэжыме інкогніта праз маніпуляцыі з FileSystem API, якая раней выкарыстоўвалася некаторымі выданнямі для навязвання платнай падпіскі ў выпадку абязлічанага адкрыцця старонак без запамінання Cookie (каб карыстачы не выкарыстоўвалі прыватны рэжым для абыходу механізму падавання бясплатнага выпрабавальнага доступу). Раней пры працы ў рэжыме інкогніта браўзэр блакаваў доступ да FileSystem API для прадухілення ссядання дадзеных паміж сеансамі, што дазваляла з JavaScript праверыць магчымасць захавання дадзеных праз FileSystem API і ў выпадку збою судзіць аб актыўнасці рэжыму інкогніта. Цяпер доступ да FileSystem API не блакуецца, а змесціва чысціцца пасля завяршэння сеансу;
  • Дададзены новыя выклікі ў
    API Payment Request і Payment Handler. У аб'екце PaymentRequestEvent з'явіўся новы метад changePaymentMethod(), а ў аб'ект PaymentRequest дададзены новы апрацоўшчык падзеі paymentmethodchange, якія дазваляюць збіраючай плацяжы пляцоўцы або web-дадатку, адрэагаваць на змену карыстальнікам метаду правядзення плацяжу. У новым выпуску ў звязаных з плацяжамі API таксама спрошчана тэсціраванне прыкладанняў з выкарыстаннем самападпісаных сертыфікатаў. Для ігнаравання памылак праверкі сертыфікатаў у працэсе распрацоўкі дададзена новая опцыя каманднага радка «—ignore-certificate-errors»;

  • У адрасны радок побач з кнопкай для дадання ў закладкі для web-прыкладанняў, якія працуюць у рэжыме Desktop Progressive Web Apps (PWA), дададзены ярлык для ўстаноўкі web-прыкладанні ў сістэму для працы як з адасобленай праграмай;
    Рэліз Chrome 76

  • Для мабільных прылад прадстаўлена магчымасць кіравання высновай міні-панэлі з запрашэннем па даданні прыкладання на хатні экран. Для PWA-прыкладанняў (Progressive Web App) міні-панэль па змаўчанні аўтаматычна паказваецца пры першым адкрыцці сайта. Распрацоўнік зараз можа адмовіцца ад высновы дадзенай панэлі і рэалізаваць уласнае запрашэнне да ўсталёўкі, для чаго можна ўсталяваць апрацоўшчык падзеі.
    beforeinstallprompt і прывязаць да яго выклік preventDefault();
    Рэліз Chrome 76

  • Павялічана частата праверкі абнаўлення для ўсталяваных у асяроддзі Android PWA-прыкладанняў (Progressive Web App). Абнаўленні WebAPK зараз правяраюцца раз у дзень, а не раз у тры дні як раней. Калі ў маніфесце пры такой праверцы будзе выяўлена змена хоць адной ключавой уласцівасці, браўзэр загрузіць і ўсталюе новы WebAPK;
  • У API Async Clipboard дададзена магчымасць праграмнага чытання і запісы малюнкаў праз буфер абмену, выкарыстоўваючы метады navigator.clipboard.read() і navigator.clipboard.write();
  • Рэалізавана падтрымка групы HTTP-загалоўкаў Fetch Metadata (Sec-Fetch-Dest, Sec-Fetch-Mode, Sec-Fetch-Site і Sec-Fetch-User), якія дазваляюць адправіць дадатковыя метададзеныя аб характары запыту (міжсайтавы запыт, запыт праз тэг img і да т.п.) для прыняцця на серверы мер для абароны ад некаторых тыпаў нападаў (напрыклад, малаверагодна, што спасылка на апрацоўшчык для пераводу грошай будзе зададзена праз тэг img, таму такія запыты можна блакаваць без перадачы з дадаткам);
  • Дададзена функцыя form.requestSubmit(), якая ініцыюе праграмную адпраўку дадзеных формы па аналогіі з клікам на кнопку адпраўкі дадзеных. Функцыя можа ўжывацца пры распрацоўцы ўласных кнопак адпраўкі формы, для якіх выкліку form.submit() нядосыць з-за таго, што ён не прыводзіць да інтэрактыўнай праверкі параметраў, генерацыі падзеі 'submit' і перадачы прывязаных да кнопкі адпраўкі дадзеных;
  • У IndexedDB дададзена функцыя здзяйсняць (), якая дазваляе фіксаваць транзакцыі, звязаныя з аб'ектам IDBTransaction, не чакаючы завяршэння апрацоўшчыкаў падзей ва ўсіх звязаных запытах. Выкарыстанне commit() дазваляе павялічыць прапускную здольнасць запытаў на запіс і чытанне ў сховішча і відавочна кантраляваць завяршэнні транзакцыі;
  • У функцыі Intl.DateTimeFormat, такія як formatToParts() і resolveOptions(), дададзены опцыі dateStyle і timeStyle, якія дазваляюць запытаць спецыфічныя для лакалі стылі адлюстравання даты і часу;
  • Метад BigInt.prototype.toLocaleString() зменены для фарматавання лікаў з улікам лакалі, а метад Intl.NumberFormat.prototype.format() і функцыя formatToParts() адаптаваны для падтрымкі ўваходных значэнняў з тыпам BigInt;
  • Дазволена выкарыстанне API Media Capabilities ва ўсіх тыпах Web Worker-ов, што можа быць скарыстана для выбару аптымальных параметраў пры стварэнні MediaStream з worker-а;
  • Дададзены метад Promise.allSettled(), які вяртае толькі ўжо выкананне або адхіленыя promise, не улічваючы promise, якія чакаюць выканання;
  • Выдалена опцыя "-disable-infobars", якая раней магла прымяняцца для ўтойвання усплываючых папярэджанняў у інтэрфейсе Chrome (для ўтойвання звязаных з бяспекай папярэджанняў прапанавана правіла CommandLineFlagSecurityWarningsEnabled);
  • У інтэрфейс для працы з блобамі дададзены метады text(), arrayBuffer() і stream() для чытання вызначаных тыпаў дадзеных;
  • Дададзена CSS-уласцівасць «white-space:break-spaces», якое вызначае, што любая паслядоўнасць прабелаў, якая прыводзіць да перапаўнення радка, павінна быць разарваная;
  • Пачалася праца па чыстцы сцягоў у chrome://flags, напрыклад, выдалены сцяг для адключэння атрыбута "ping", які дазваляе ўладальнікам сайтаў адсочваць пераходы па спасылках з іх старонак. У выпадку пераходу па спасылцы пры наяўнасці ў тэгу "a href" атрыбуту "ping=URL" у браўзэры зараз нельга адключыць адпраўку дадатковага POST-запыту да паказанага ў атрыбуце URL са звесткамі пра які адбыўся пераход. Сэнс блакавання ping губляецца, бо дадзены атрыбут. вызначаны у спецыфікацыях HTML5 і існуе мноства абыходных метадаў для здзяйснення таго ж дзеяння (напрыклад, пракід праз транзітную спасылку ці перахоп клікаў апрацоўшчыкамі на JavaScript);
  • Прыбраны сцяг для адключэння рэжыму строгай ізаляцыі сайтаў, пры якім старонкі розных хастоў заўсёды размяшчаюцца ў памяці розных працэсаў, у кожным з якіх прымяняецца свой sandbox.
  • У рухавіку V8 значна павялічана прадукцыйнасць сканавання і парсінгу фармату JSON. Для папулярных web-старонак адзначаецца паскарэнне выканання JSON.parse да 2.7/XNUMX раз. Значна паскорана пераўтварэнне unicode-радкоў, напрыклад, хуткасць працы выклікаў String#localeCompare, String#normalize, а таксама некаторых API Intl, узрасла амаль у два разы. Таксама істотна аптымізавана прадукцыйнасць аперацый з замарожанымі масівамі пры выкарыстанні аперацый, падобных frozen.indexOf(v), frozen.includes(v), fn(…frozen), fn(…[…frozen]) і fn.apply(this, [… frozen]).

    Рэліз Chrome 76

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

Крыніца: opennet.ru

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