The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Релиз Chrome 74

24.04.2019 10:42

Компания Google представила релиз web-браузера Chrome 74. Одновременно доступен стабильный выпуск свободного проекта Chromium, выступающего основой Chrome. Браузер Chrome отличается использованием логотипов Google, возможностью загрузки модуля Flash по запросу, наличием системы отправки уведомлений в случае краха, модулями для воспроизведения защищённого видеоконтента (DRM), системой автоматической установки обновлений и передачей при поиске RLZ-параметров. Следующий выпуск Chrome 75 запланирован на 4 июня.

Основные изменения в Chrome 74:

  • При наступлении события onUnload, вызываемого при закрытии страницы, теперь запрещено выводить всплывающие окна (блокируется вызов window.open()), что позволит защитить пользователей от принудительного открытия рекламных страниц после закрытия сомнительных сайтов. Подобная блокировка ранее была реализована на уровне popup blocker, но теперь будет работать независимо от его включения;
  • В JavaScript-движке V8 реализован новый режим JIT-less (флаг "--jitless"), дающий возможность выполнить JavaScript без применения JIT (используется только интерпретатор) и без выделения исполняемой памяти в процессе выполнения кода. Отключение JIT может быть полезным для повышения безопасности при работе с потенциально опасными web-приложениями, а также для обеспечения сборки на платформах, запрещающих использование JIT (например, в iOS, на некоторых Smart TV и игровых консолях). При отключении JIT производительность выполнения JavaScript снижается на 40% в тесте Speedometer 2.0 и на 80% в тесте Web Tooling Benchmark, но при симуляции работы с YouTube отмечено снижение производительности лишь на 6%. Потребление памяти при этом уменьшается незначительно, всего на 1.7%;
  • В V8 предложена большая порция новых оптимизаций. Например, на 60% ускорено выполнение вызовов функций, в которых число фактически переданных параметров не соответствует указанному при определении функции числу аргументов. Ускорен доступ к свойствам DOM при помощи функции get, что положительно повлияло на производительность фреймворка Angular. Ускорена работа парсинга JavaScript: оптимизация декодировщика UTF-8 позволила поднять производительность парсера в режиме streaming (разбор по мере загрузки) на 8%, а исключение лишних операций дедупликации дало прирост ещё на 10.5%;
  • Проведена работа по снижению потребления памяти движка JavaScript. Добавлен код для очистки кэша байткода, который занимает примерно 15% от всего размера кучи. В сборщик мусора добавлена стадия для вытеснения из кэша скомпилированного байткода для редко используемых функций или функций, вызываемых только при инициализации. Решение о чистке принимается на основании новых счётчиков, учитывающих последнее время обращения к байткоду. Указанное изменение позволило снизить потребление памяти на 5–15% без негативного влияния на производительность. Дополнительно, в компиляторе байткода исключена генерация заведомо неиспользуемого кода, например, который следует после return или break (если на него нет Jump-перехода);
  • Для WebAssembly реализована поддержка потоков и атомарных операций (API WebAssembly Threads и WebAssembly Atomics);
  • Для обособленной поставки скриптов в движке V8 добавлена поддержка заголовка "#!", определяющего интерпретатор для запуска. Например, по аналогии с другими скриптовыми языками, файл JavaScript может выглядеть примерно так:
    
       #!/usr/bin/env node
       console.log(42);
    
  • В CSS добавлен новый media-запрос "prefers-reduced-motion", позволяющий сайту определить состояние настроек в операционной системе, связанных с отключением анимированных эффектов. При помощи предложенного запроса владелец сайта может узнать, что пользователь отключил у себя анимированные эффекты и также отключить различные анимационные возможности на сайте, например, убрать эффект дрожания кнопок, используемых для привлечения внимания;
  • В дополнение к появившейся в Chrome 72 возможности определения публичных полей в классах реализована поддержка пометки полей приватными, после чего доступ к их значениям будет открыт только внутри класса. Для пометки поля приватным следует указать перед именем поля знак "#". Как и в случае с публичными полями приватные свойства не требуют явного использования конструктора;
  • HTTP-заголовок Feature-Policy, позволяющий управлять поведением API и включением определённых возможностей (например, можно включить синхронный режим работы XMLHttpRequest или отключить Geolocation API), дополнен JavaScript API для контроля активности тех или иных возможностей. Для разработчиков предложено два новых метода document.featurePolicy и frame.featurePolicy, предлагающих три функции: allowedFeatures() для получения списка разрешённых для текущего домена функций, allowsFeature() для выборочной проверки включения конкретных возможностей и getAllowlistForFeature() для вывода списка доменов, для которых на текущей странице разрешена указанная возможность;
  • Добавлена экспериментальная ("chrome://flags#enable-text-fragment-anchor") поддержка режима Scroll-To-Text, позволяющего формировать ссылки на отдельные слова или фразы, без явного указания в документе меток при помощи тега "a name" или свойства "id". Для передачи ссылки предлагается специальный параметр "#targetText=", в котором можно указать текст для перехода. Допускается указание маски, включающей фразы, указывающие на начало и конец фрагмента с использованием запятой в качестве их разделителя (например, "example.com#targetText=start%20words, end%20words");
  • В конструктор AudioContext добавлена опция sampleRate, позволяющая установить желаемую частоту дискретизации для операций со звуком через Web Audio API;
  • Добавлена поддержка класса Intl.Locale, предоставляющего методы для разбора и обработки выставляемых локалью параметров языка, региона и начертания, а также для чтения и записи тегов расширений Unicode и сохранения пользовательских настроек локали в сериализированном формате;
  • Механизм Signed HTTP Exchanges (SXG) расширен средствами для информирования распространителей контента об ошибках загрузки подписанного контента, таких как проблемы с верификацией сертификатов. Обработка ошибок производится через расширения API Network Error Logging. Напомним, что SXG позволяет владельцу одного сайта при помощи цифровой подписи авторизовать размещения определённых страниц на другом сайте, после чего в случае обращения к этим страницам на втором сайте, браузер будет показывать пользователю URL исходного сайта, несмотря на то, что страница загружена с другого хоста;
  • В класс TextEncoder добавлен метод encodeInto(), позволяющий записать закодированную строку напрямую в предварительно выделенный буфер. Метод encodeInto() является высокопроизводительной альтернативой методу encode(), который требует выполнения операции выделения буфера при каждом обращении;
  • В Service worker обеспечена буферизация вызова client.postMessage() до момента готовности документа. Сообщения, отправленные через client.postMessage(), будут удержаны до стадии генерации события DOMContentLoaded, установки "onmessage" или вызова startMessages();
  • В соответствии с требованием спецификации CSS Transitions добавлены события "transitionrun", "transitioncancel", "transitionstart" и "transitionend", генерируемые когда CSS-переход помещен в очередь, отменяется, начинает или заканчивает выполняться.
  • При указании через overrideMimeType() или MIME-тип некорректной кодировки символов для запроса XMLHttpRequest, теперь осуществляется откат на UTF-8 вместо Latin-1;
  • Объявлено устаревшим и будет удалено в одном из следующих выпусков свойство "allow-downloads-without-user-activation", через которое можно было организовать автоматическую загрузку файлов при обработке iframe. В будущем инициирование загрузки файлов без явного действия пользователя будет запрещено, так как оно активно применялось для злоупотреблений, навязывания загрузок и подстановки частей вредоносного ПО на компьютер пользователя. Для начала загрузки обязательно потребуется клик пользователя на той же странице. Изначально свойство планировалось удалить в Chrome 74, но удаление было отложено до Chrome 76;
  • Для платформы Windows предложена опциональная тёмная тема оформления интерфейса (в прошлом выпуске тёмное оформление было подготовлено для macOS). Так как тёмное оформление почти идентично оформлению в режиме инкогнито, для выделения приватного режима работы вместо пиктограммы профиля пользователя добавлен специальный индикатор, на котором также отображается число окон, открытых в режиме инкогнито;
  • Для корпоративных пользователей добавлена возможность Chrome Browser Cloud Management для управления настройками браузеров пользователей через консоль Google Admin;
  • В версии для Android на смену "Data Saver" пришёл режим "Lite". Поддержка Data Saver в Chrome 74 прекращена. Режим Lite можно включить в настройках (Settings > Lite mode), но если до этого был включен "Data Saver" режим Lite будет активирован автоматически. Напомним, что режим Lite позволяет ускорить загрузку сайтов и сократить трафик за счёт обращения через прокси в Google, на лету осуществляющий оптимизацию запрашиваемых страниц для просмотра на мобильном устройстве. На серверы Google передаётся только URL страницы, а Cookies и параметры аутентификации обрабатываются напрямую. Оптимизация выполняется адаптивно, например, если страница загружается более 5 секунд;
  • Расширены возможности инструментов для web-разработчиков:
    • При наведении курсора к CSS-свойствам, таким как padding и margin, теперь автоматически подсвечиваются на странице все элементы, на которые данные свойства влияют;
    • Панель аудита обновлена до выпуска Lighthouse 4;
    • Добавлен просмотрщик содержимого бинарных сообщений, передаваемых через WebSocket;
    • Добавлена возможность быстрого вызова инструмента для создания скриншотов из строки ввода команд (достаточно набрать "area" или screenshot и выбрать "Capture area screenshots";
    • В панели анализа сетевых запросов добавлен фильтр для просмотра запросов, специфичных для определённого Service worker;
    • Обновлена панель для оценки производительности: добавлен индикатор длительно выполняемых задач, на шкале времени реализована метка первой отрисовки;
  • Добавлена экспериментальная опция LazyLoad ("chrome://flags/#enable-lazy-image-loading" и "chrome://flags/#enable-lazy-frame-loading"), при включении которой браузер не загружает iframes и изображения, находящиеся вне видимой области, до тех пор пока пользователь не прокрутит содержимое страницы в область, непосредственно предшествующую им. Новый режим позволяет сократить потребление памяти, снизить трафик и увеличить скорость начального открытия страниц.

Кроме нововведений и исправления ошибок в новой версии устранено 39 уязвимостей. Многие из уязвимостей выявлены в результате автоматизированного тестирования инструментами AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer и AFL. Критических проблем, которые позволяют обойти все уровни защиты браузера и выполнить код в системе за пределами sandbox-окружения, не выявлено. В рамках программы по выплате денежного вознаграждения за обнаружение уязвимостей для текущего релиза компания Google выплатила 19 премии на сумму 26837 долларов США (четыре премии $3000, четыре премии $2000, одна премия $1337, четыре премии $1000, три премии $500). Размер 4 вознаграждений пока не определён.

  1. Главная ссылка к новости (https://chromereleases.googleb...)
  2. OpenNews: Лог изменений в V8 помог создать эксплоит для неисправленной уязвимости в Chrome
  3. OpenNews: Релиз web-браузера Chrome 73
  4. OpenNews: Релиз Chrome OS 73
  5. OpenNews: В Chrome планируют включить механизм Signed HTTP Exchanges (SXG)
  6. OpenNews: Релиз web-браузера Chrome 72
Лицензия: CC-BY
Тип: Программы
Ключевые слова: chrome
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (31) Ajax | 1 уровень | Линейный | Раскрыть всё | RSS
  • 1.3, Аноним (3), 10:59, 24/04/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    >Браузер Chrome отличается ... возможностью загрузки модуля Flash по запросу

    Chromium тоже умеет скачивать Flash. А вот чем действительно отличается Chrome так это наличием DRM-модуля libwidevinecdm.

     
     
  • 2.4, Аноним (4), 11:06, 24/04/2019 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Вы список до конца дочитайте, там написано "модулями для воспроизведения защищённого видеоконтента".
     

  • 1.5, Аноним (5), 11:12, 24/04/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    # это не молодежно, надо 50 тире а затем 30 тильд.

    Ну вот есть же нормальное слово private, всем понятное. Эх все через одно место делается.

     
     
  • 2.10, Аноним (10), 12:56, 24/04/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Да, блин, учитывая, что для статиков добавили ключевое слово, а все приватные члены, которых в классе должно быть большинство, увеличили на один уродливый символ, который будет сильно выделяться в коде.

    По хорошему, JS должен стремиться к TS, по крайней мере, к адекватным его частям. Особенно, если перенимает функционал, который уже есть в TS.

    Но, видимо, Майкрософт, NIH-синдром и еще какие-то тараканы в голове портят и так не самый стройный язык.

     
  • 2.23, ЖС (?), 16:28, 25/04/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Зачем думать если можно костылять?

    — ЖС

     

  • 1.6, An (??), 11:55, 24/04/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А лиса не решилась поддерживать SXG?
     
     
  • 2.34, Kuromi (ok), 21:22, 03/05/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Они дали статус harmful данной технологии - https://mozilla.github.io/standards-positions/
    так чтос корее всего будут упираться до последнего. Сафари кстати тоже не хочет поддерживать это. Хромоподобные браузеры подтянутся, куда им деваться.
     

  • 1.7, Аноним (7), 12:10, 24/04/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    При наступлении события onUnload, вызываемого при закрытии страницы, теперь запрещено выводить всплывающие окна (блокируется вызов window.open()), что позволит защитить пользователей от принудительного открытия рекламных страниц после закрытия сомнительных сайтов;
    >>Note: This feature was actually removed in Chrome 74. We apologize for the mistake.
     
     
  • 2.11, Аноним (4), 13:10, 24/04/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >Note: This feature was actually removed in Chrome 74. We apologize for the mistake. \

    Это вырванная из контекста фраза из примечания к выпуску Chrome _72_, которая говорит о том, что изменение подейсвует в Chrome 74, а не в  Chrome 72, как они изначально сообщили.

    https://developers.google.com/web/updates/2018/12/chrome-72-deps-rems

     

  • 1.8, Вуыкло (?), 12:18, 24/04/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Нет никаких причин считать, что JIT влияет на безопасность. В Эпол как всегда наидиотничали.
     
     
  • 2.15, Аноним (15), 15:23, 24/04/2019 [^] [^^] [^^^] [ответить]  
  • +3 +/
    JIT противоречит главному правилу построения безопасных ОС,- разрешает изменять исполняемый код.

    Оптимизация должна проходить на этапе компиляции,а jit это не естественный костыль открывающий дыру.

    Linux+PAX, OpenBSD и другие ОС корректно работающие с памятью не разрешают запуск программы изменяющих исполняемый код.

    В GNU Octave тоже это наконец поняли и добавили к configure опцию --disable-jit.

     
     
  • 3.18, Дон Ягон (?), 18:08, 24/04/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > JIT противоречит главному правилу построения безопасных ОС,- разрешает изменять исполняемый код.
    > Оптимизация должна проходить на этапе компиляции,а jit это не естественный костыль открывающий дыру.
    > Linux+PAX, OpenBSD и другие ОС корректно работающие с памятью не разрешают запуск программы изменяющих исполняемый код.

    В целом согласен. Перепощу свою же интересную (на мой взгляд) ссылку из соседнего треда: https://marc.info/?l=openbsd-misc&m=152872551609819&w=2 - Тео Де Раадт о безопасности Chrome и FF.

    Интересные, в контексте обсуждения, цитаты:
    > In a browser, there are 2 main security components you want: The main security advantage is privsep.  The other is W^X jit.
    > chrome was designed to be privsep
    > From where I stand, I think it (Firefox - прим.) fails to be privsep because the various process initializations still need way too much, and tasks aren't being done in the right process.  I think firefox is still only 2 process classes, whereas chrome is 6 or 7.
    > BTW, the jit in chrome isn't W^X.  So chrome is behind in one sense, because the jit in firefox is W^X [well not truly, it uses two mappings of the same object, and if the attacker can find the shadow he can play, but it is still raising the bar]

    В целом, из написанного Тео следует, что в Chrome архитектура больше ориентирована на безопасность.

    Что гугл заботливо компенсирует своими зондами (это уже я, а не Тео).

     

  • 1.12, InuYasha (?), 13:14, 24/04/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Забавно как новость об этом релизе совпала с этой новостью: https://www.opennet.ru/opennews/art.shtml?num=50565
     
  • 1.13, Анонимышь (?), 13:16, 24/04/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А ключ гпг для дебовской репы так и не обновили :(
     
  • 1.14, Аноним (14), 13:35, 24/04/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > одна премия $1337

    за что такую элитную премию выплатили интересно?

     
  • 1.16, Аноним (15), 15:35, 24/04/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >В JavaScript-движке V8 реализован новый режим JIT-less (флаг "--jitless"), дающий возможность выполнить JavaScript без применения JIT (используется только интерпретатор) и без выделения исполняемой памяти в процессе выполнения кода.

    АНБшники решили что для сохранения хрома в безопасных системах лучше выкинуть с него jit...

    Скомпильте кто с --jitless попробуйте запустить в системе linux c PAX и отпишите здесь. Я не верю что они поправили в хроме работу с памьятью.

     
     
  • 2.17, Grammar nazi (?), 17:55, 24/04/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Вы хорошо пишите.
    Но s/выкинуть с него/выкинуть из него/
     

  • 1.19, Аноним (19), 03:51, 25/04/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    создайте папку в панели закладок в ней еще пару папок в них еще пару... сохраните в последних по 2-3 ссылки
    И Вы убедитесь какое же говно этот хром...
     
     
  • 2.20, th3m3 (ok), 10:56, 25/04/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    +1. Обновил до этой версии, сразу же заметил, что перед открытием каких-либо диалогов/меню, сначала на их месте появляется долю секунды чёрное пятно, а потом отрисовывается содержимое. И по ощущениям, каждый раз он становится хуже и хуже. То ли дело Firefox, с каждой новой версией ощущается, как браузер становится лучше.
     
     
  • 3.21, Аноним (21), 12:45, 25/04/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Там хотят что-то сделать с закладками, придется переходить на seamonkey.
     
     
  • 4.22, th3m3 (ok), 13:19, 25/04/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > Там хотят что-то сделать с закладками, придется переходить на seamonkey.

    Что именно? Не встречал подобной инфы.

     
     
  • 5.26, iPony (?), 08:50, 26/04/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Да всё там на надо менять. Выглядит страшно как из прошлого века.
    Естественно, что у Mozilla не куча ресурсов, поэтому не всё сразу.

    https://mozilla.invisionapp.com/share/XJGGYRRFQH5#/screens

     
     
  • 6.31, user (??), 15:46, 26/04/2019 [^] [^^] [^^^] [ответить]  
  • +/
    То есть дерево совсем уберут? А сами-то разработчики каким браузером планируют пользоваться?
     
  • 3.27, iPony (?), 08:51, 26/04/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > что перед открытием каких-либо диалогов/меню, сначала на их месте появляется долю секунды чёрное пятно

    Ну это что-то с видеосистемой

     
     
  • 4.28, th3m3 (ok), 10:29, 26/04/2019 [^] [^^] [^^^] [ответить]  
  • +/
    В Firefox - всё ок. И в других браузерах - тоже. Только Chrome так чудить стал с этого выпуска. При этом, у меня Nvidia выключена, только графика Intel.
     
     
  • 5.29, iPony (?), 10:57, 26/04/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > В Firefox - всё ок.

    У тебя линукс? Ну на нём и Firefox сильно отстаёт от того же Chrome по производительности отрисовки. Этак раза в два.
    Две стороны одной медали - большая скорость, но глючность при проблемах с видеосистемой.

     
     
  • 6.30, th3m3 (ok), 14:55, 26/04/2019 [^] [^^] [^^^] [ответить]  
  • +/
    >У тебя линукс?

    Тут у всех Linux. Это же опеннет.

    >Ну на нём и Firefox сильно отстаёт от того же Chrome по производительности отрисовки.

    Наоборот. У меня Firefox шустрее Хрома работает. Разве что, всякие там Gapps, более быстрые в Хроме. Но тут уже была недавно новость, как Гугл специально делает ошибки в Gapps для Firefox.

     

  • 1.24, Акроним (?), 19:35, 25/04/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    ни когда не понимал в чем глобальное преимущество хромого перед лисой (да знаю там своя атмосфера но альфабет это такая такое)
     
     
  • 2.32, user (??), 15:47, 26/04/2019 [^] [^^] [^^^] [ответить]  
  • +/
    отдельный браузер для логина в гугл
     

  • 1.33, Аноним (33), 12:24, 27/04/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Ещё удалён флаг #disable-hyperlink-auditing
     
  • 1.35, Аноним (35), 05:34, 04/05/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >новый режим JIT-less (флаг "--jitless")

    Как его включить? В chrome://flags/ его нет. Или это нужно весь хром переустанавливать с этим параметром? Это в линукс если что.

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Спонсоры:
    MIRhosting
    Fornex
    Hosting by Ihor
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2019 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру