Кампанія Google апублікавала рэліз web-браўзэра Chrome 147. Адначасова даступны стабільны выпуск вольнага праекта Chromium, які выступае асновай Chrome. Браўзэр Chrome адрозніваецца ад Chromium выкарыстаннем лагатыпаў Google, наяўнасцю сістэмы адпраўкі апавяшчэнняў у выпадку краху, модулямі для прайгравання абароненага ад капіявання відэакантэнту (DRM), сістэмай аўтаматычнай усталёўкі абнаўленняў, сталым уключэннем Sandbox-ізаляцыі, пастаўкай ключоў да Google API і перадачай RLZ-пара. Для тых, каму неабходна больш часу на абнаўленне, асобна падтрымліваецца галінка Extended Stable, якая суправаджаецца 8 тыдняў. Наступны выпуск Chrome 148 запланаваны на 5 траўня.
Асноўныя змены ў Chrome 147 (1, 2, 3, 4):
- Дададзены рэжым вертыкальнага адлюстравання ўкладак, які замяняе верхнюю гарызантальную панэль з кнопкамі ўкладак на бакавую панэль з вертыкальнымі ўкладкамі. Вертыкальныя ўкладкі могуць паказвацца ў разгорнутым (піктаграма + частка апісання) і згорнутым рэжымах (толькі піктаграмы). Пры навядзенні курсора на бакавую ўкладку паказваецца эскіз з яе змесцівам. Спрошчана кіраванне групамі ўкладак. У кантэкстнае меню, якое з'яўляецца пры кліку правай кнопкай мышы на радку ўкладак, дададзена опцыя "Паказаць укладкі вертыкальна" ("Show Tabs Vertically"). Калі опцыя не з'явілася па змаўчанні, яе можна актываваць праз настройку "chrome://flags/#vertical-tabs".
- Перапрацаваны рэжым чытання (reading mode), пры якім адлюстроўваецца толькі значны тэкст старонкі, а ўсе спадарожныя кіравальныя элементы, банеры, меню, навігацыйныя панэлі і іншыя не звязаныя з кантэнтам часткі старонкі хаваюцца. У новай версіі па аналогіі з Firefox значнае змесціва паказваецца ва ўсёй бачнай вобласці, а не як раней у вузкім бакавым акне побач з зыходнай старонкай. Калі новы рэжым не ўжываецца па змаўчанні, яго можна актываваць праз наладу "chrome://flags/#read-anything-immersive-reading-mode".
- У меню «Help» дададзена кнопка для адпраўкі скаргі для занясення ў спіс блакіроўкі web-старонак, створаных для махлярства ці фішынгу. Кнопка паказваецца пры ўключаным рэжыме "Safe Browsing".
- Пашыраны сродкі абароны ад звароту да лакальнай сістэмы пры ўзаемадзеянні з публічнымі сайтамі. Звароты з сайтаў да IP-адрасам лакальнай сеткі (інтранэт або ўнутраныя адрасы) або loopback-інтэрфейсу (127.0.0.0/8) запатрабуе пацверджання аперацыі ў карыстача. Пад дзеянне абароны зараз трапляюць не толькі спробы загрузкі рэсурсаў па HTTP/HTTPS, запыты fetch() і iframe-устаўкі, але і ўсталёўка злучэнняў праз WebSockets і WebTransport, а таксама fetch-запыты, ініцыяваныя праз метад WindowClient.navigate(). Зварот да ўнутраных рэсурсаў выкарыстоўваюцца зламыснікамі для ўскоснай ідэнтыфікацыі і ажыццяўленні CSRF-нападаў на маршрутызатары, кропкі доступу, друкаркі, карпаратыўныя web-інтэрфейсы і іншыя прылады і сэрвісы, якія прымаюць запыты толькі з лакальнай сеткі.
- Функцыянальнасць для разбору XML пераведзена з libxml2 на новую бібліятэку, напісаную на мове Rust з аглядкай на забеспячэнне бяспекі. Змена дакранаецца толькі XML, як было абвешчана раней падтрымка XSLT хутка будзе спыненая.
- Рэалізавана магчымасць ужывання метаду startViewTransition() не толькі для ўсёй старонкі, але і для асобных HTML-элементаў.
- Дададзена CSS-функцыя contrast-color(), якая вяртае процілеглы варыянт для паказанага колеру (для белага верне чорны, а для чорнага - белы). Функцыю можна выкарыстоўваць для падбору колеру фону для пэўнага колеру тэксту і наадварот.
- Дададзена CSS-уласцівасць «border-shape», які дазваляе ствараць непрамавугольнае апраўленне элементаў, напрыклад, выкарыстоўваць рамкі круглай або шматкутнай формы. CSS-уласцівасць «border-shape» прымае тыя ж віды формаў, што і ўласцівасць «clip-path», але ў адрозненне ад апошняга вызначае контур, дэкадуе яго і адсякае якое выходзіць за контур змесціва.
- Дададзены інтэрфейс CSSPseudoElement, які дазваляе працаваць з псеведээлементамі CSS з JavaScript.
- У элеменце link рэалізавана магчымасць ужывання атрыбуту "rel=modulepreload" для папераджальнай загрузкі не толькі скрыптоў, але і модуляў з CSS-стылямі ( ) і дадзенымі JSON ( ).
- Змененыя паводзіны пры вылічэнні шырыні рамак і контураў у CSS-уласцівасцях border-width, outline-width і column-rule-width, якое ўніфікавана з Firefox і браўзэрамі на рухавічку WebKit. Дагэтуль шырыня ў паказаных уласцівасцях абнулялася, незалежна ад выстаўленых у іх значэнняў, калі ўласцівасці border-style, outline-style ці column-rule-style мелі значэнне "none" ці "hidden". Цяпер значэнні order-width, outline-width і column-rule-width заўсёды выстаўляюць зададзеныя распрацоўнікам значэння, незалежна ад змесціва ўласцівасцяў "*-style".
- Дададзены метад Math.sumPrecise() для вылічэння сумы элементаў масіваў і іншых пералічаных аб'ектаў з дакладнасцю, якая перавышае дакладнасць звычайнага сумавання ў цыкле (выключаюцца страты дакладнасці пры прамежкавым захаванні вынікаў).
- Дададзены атрыбут Request.isReloadNavigation, які дазваляе вызначыць, што старонка была перазагружана, напрыклад, пасля націску на кнопку "Refresh" або выкліку метадаў location.reload() і history.go(0).
- Для зніжэння дакладнасці ўскоснай ідэнтыфікацыі зменена логіка акруглення памеру памяці, які вяртаецца праз API Device Memory, які дазваляе атрымаць звесткі аб памеры аператыўнай памяці. Дадзеная інфармацыя можа апынуцца карыснай для стварэння легкаважных варыянтаў web-прыкладанняў, якія загружаюцца для прылад з невялікай АЗП або для актывацыі пашыраных магчымасцяў пры наяўнасці вялікага аб'ёму памяці. У зборках для платформы Android памер памяці зараз акругляецца да 1, 2, 4 і 8, а для іншых платформаў да 2, 4, 8, 16 і 32.
- Для ізаляваных web-прыкладанняў (IWA - Isolated Web Apps) рэалізаваны API Web Printing, які прадстаўляе метады для вызначэння наяўнасці друкарак, адпраўкі дакументаў на друк і кіравання чаргой вываду на друк. Выкарыстоўваныя ў API імёны атрыбутаў і семантыка адпавядаюць пратаколу IPP (Internet Printing Protocol).
- У рэжыме "Origin trials" рэалізаваны API WebNN, які дазваляе выкарыстоўваць якія прадстаўляюцца аперацыйнай сістэмай сэрвісы для машыннага навучання і звязаныя з гэтым апаратныя магчымасці.
- Унесены паляпшэнні ў інструменты для web-распрацоўшчыкаў. Ва ўбудаваным AI-асістэнце рэалізаваны аўтаматычны выбар кантэксту. Мадэрнізаваная панэль «Device Mode», якая прымяняецца для тэставання працы сайта на розных мабільных прыладах. У панэлі Network забяспечана аўтаматычнае дэкадаванне сціснутага змесціва запытаў, перададзеных з загалоўкам Content-Encoding: gzip ці deflate. Дадзеная магчымасць ужывання рэгулярных выразаў для фільтравання CSS-стыляў.
Акрамя новаўвядзенняў і выпраўленні памылак у новай версіі ўхілена 60 уразлівасцяў. Многія з уразлівасцяў выяўлены ў выніку аўтаматызаванага тэсціравання інструментамі AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer і AFL. Двум праблемам (перапаўненне буфера і цэлалікае перапаўненне ў WebML) прысвоены крытычны ўзровень небяспекі, які разумее, што ўразлівасці дазваляюць абыйсці ўсе ўзроўні абароны браўзэра і выканаць код у сістэме за межамі sandbox-акружэнні. У рамках праграмы па выплаце грашовай узнагароды за выяўленне ўразлівасцяў для бягучага рэлізу кампанія Google заснавала 60 прэмій і выплаціла 118 тысяч даляраў ЗША (дзве прэміі $43000, дзве прэміі $11000 і па адной прэміі ў $4000, $3000, $2000 і $100.
Крыніца: opennet.ru
