Продемонстрирована техника удалённого клонирования электронного ключа Tesla Model X

Исследователи безопасности из Лёвенского университета (Бельгия) выявили две уязвимости в механизме обновления прошивок для электронных ключей к автомобилю Tesla Model X и реализации протокола сопряжения ключей. Используя выявленную уязвимость, исследователи смогли удалённо перепрошить ключ-брелок и извлечь из него сигнатуру, необходимую для проникновения, разблокировки и включения автомобиля. Компания Tesla была уведомлена о проблеме в августе и устранила уязвимость в обновлении прошивки 2020.48, которое планируется распространить на все автомобили в течение ближайших нескольких недель.

Для проведения атаки достаточно оборудования стоимостью около 200 долларов. В частности, для атаки использовалась плата Raspberry Pi ($35), модуль для подключения к автомобильной шине CAN-BUS ($30), аккумулятор LiPo $30) и электронный блок управления (ECU) от автомобиля Tesla с авторазбора, купленный на eBay за 100 долларов. Так как взаимодействие с электронным ключом осуществляется через протокол BLE (Bluetooth Low Energy), для проведения атаки необходимо приблизится к ключу-брелоку на расстояние примерно 5 метров. Компоненты для атаки могут уместиться в небольшом рюкзаке.

Для проведения атаки в купленный БУ электронный блок управления ECU вносятся изменения, благодаря которым электронный ключ-брелок определяет его как блок управления собственным автомобилем и допускает приём обновлений прошивки через Bluetooth. Механизм проверки обновлений не был должным образом защищён, что позволяло загрузить в ключ-брелок модифицированную прошивку и получить полное управление над ним.

Для сопряжение ECU с ключом-брелоком необходимо приблизится к жертве на расстояние до 5 метров, после чего сама атака может производиться на удалении до 30 метров. Перепрошивка занимает примерно 90 секунд. После загрузки своей прошивки в ключ-брелок, атакующий получает возможность обратиться к специализированному чипу, вынесенному в отдельный анклав, для генерации последовательности разблокировки автомобиля.

При помощи указанной последовательности атакующий может открыть автомобиль и подключиться к внутренней шине CAN-BUS через порт диагностики. Подключившись к информационной системе атакующий инициирует процесс привязки нового ключа-брелока, который можно использовать для того, чтобы завести и угнать автомобиль. Для привязки своего ключа используется другая уязвимость в реализации протокола сопряжения ключей. Ключ-брелок содержит уникальный криптографический сертификат для проверки валидности ключа, но блок управления автомобилем на деле не проверял данный сертификат, что позволяло выполнить привязку к любому ключу.

Интересно, что в штатном режиме ключ-брелок становится доступен для внешнего подключения по Bluetooth только на несколько секунд после извлечения и вставки батарейки. Но выяснилось, что данное ограничение можно обойти, так как управляющий блок BCM (body control module) с реализацией системы входа без вставки ключа зажигания, выполняет отправку последовательностей, приводящих к активации Bluetooth. Изучив подобный блок исследователи определили частоту сигнала, отправляемого для активации Bluetooth на брелоке. Для идентификации при установке канала связи с брелоком использовался код доступа, который, как оказалось, совпадает с последними 5 цифрами VIN-номера, размещённого на лобовом стекле автомобиля.

Источник: [ссылка]

Доступен пакетный менеджер GNU Guix 1.2 и дистрибутив на его основе

Состоялся релиз пакетного менеджера GNU Guix 1.2 и построенного на его основе дистрибутива GNU/Linux. Для загрузки сформированы образы для установки на USB Flash (489 МБ) и использования в системах виртуализации (479 МБ). Поддерживается работа на архитектурах i686, x86_64, armv7 и aarch64.

Дистрибутив допускает установку как в качестве обособленной ОС в системах виртуализации, в контейнерах и на обычном оборудовании, так и запуск в уже установленных дистрибутивах GNU/Linux, выступая в роли платформы для развёртывания приложений. Пользователю предоставляются такие функции, как учёт зависимостей, повторяемые сборки, работа без root, откат на прошлые версии в случае проблем, управление конфигурацией, клонирование окружений (создание точной копии программного окружения на других компьютерах) и т.п.

Основные новшества:

  • Реализована возможность аутентификации репозиториев пакетов (каналов). «guix pull» и подобные команды теперь криптографически аутентифицируют извлекаемый из репозитория код, что защитает от получения из репозитория неавторизированных коммитов. Дополнительно добавлена команда «guix git authenticate», позволяющая использовать предложенный механизм аутентифиации для произвольных git-репозиториев.
  • В командах «guix pull» и «guix system reconfigure» реализовано определение и блокирование отката системы на старые версии, чтобы недопустить откат программ до уязвимых версий для эксплуатации уязвимостей, исправленных в актуальных выпусках.
  • Добавлен сервис автоматического обновления, который периодически запускает «guix pull» и «guix system reconfigure » для поддержания системы в актуальном состоянии.
  • Минимальный набор бинарных файлов для архитектур x86_64 и i686 сокращён до 60 МБ.
  • В сборочный процесс и программный интерфейс добавлена поддержка криптографичекских хэшей SHA-3 и BLAKE2s.
  • Повышено удобство работы графического инсталлятора и скрипта для установки Guix в окружении других дистрибутивов.
  • В guix search, guix system search и подобные команды добавлен режим постраничного просмотра.
  • В guix pull показан прогресс выполнения операции.
  • Сокращено время компиляции и снижено потребление ресурсов при выполнении команды «guix pull», благодаря задействованию нового компилятора, появившегося в Guile 3.0.4.
  • Добавлены три новых опции трансформации пакетов «—with-debug-info», «—with-c-toolchain» и «—without-tests».
  • В команде «guix pack -RR» появилась поддержка движка «fakechroot», позволяющего создавать перемещаемые пакеты, которые могут выполняться в окружениях без Guix.
  • В команде «guix system build» добавлена поддержка кросс-компиляции всей системы.
  • Добавлен сервис hurd-vm с кросс-компилированной системой Guix GNU/Hurd, запускаемой в форме виртуальной машины в GNU/Linux. Началась работа по реализации родной поддержки GNU/Hurd.
  • Добавлен модуль «gnu image» и команда «guix system disk-image —image-type=TYPE» для работы с образами системы в форматах ISO-9660, qcow2 с pазделами ext4, ext2 с опциями Hurd и т.п.
  • В графический инсталлятор добавлена поддержка ФС NTFS.
  • Добавлены новые системные сервисы lxqt, udev-rules, hostapd, zram, autossh, webssh, ganeti, gmnisrv, guix-build-coordinator, guix-build-coordinator-agent, guix-build-coordinator-queue-builds, hurd-console, hurd-getty, hurd-vm, rshiny, secret-service, simulated-wifi, unattended-upgrade.
  • Обновлены версии программ в 3652 пакетах, добавлено 1999 новых пакетов. В том числе обновлены версии GNOME 3.34.2, MATE 1.24.1, enlightenment 0.24.2, xfce 4.14.2, xorg-server 1.20.8, bash 5.0.16, gcc 10.2.0, gimp 2.10.22, glibc 2.31, go 1.14.10, inkscape 1.0.1, libreoffice 6.4.6.2, linux-libre 5.9.3, openjdk 14.0, python 3.8.2, rust 1.46.0.

Напомним, что пакетный менеджер GNU Guix основан на наработках проекта Nix и кроме типичных функций управления пакетами поддерживает такие возможности, как выполнение транзакционных обновлений, возможность отката обновлений, работа без получения привилегий суперпользователя, поддержка привязанных к отдельным пользователям профилей, возможность одновременной установки нескольких версий одной программы, средства уборки мусора (выявление и удаление неиспользуемых версий пакетов). Для определения сценариев сборки приложений и правил формирования пакетов предлагается использовать специализированный высокоуровневый предметно-ориентированный язык и компоненты Guile Scheme API, позволяющие выполнять все операции по управлению пакетами на функциональном языке программирования Scheme.

Поддерживается возможность использования пакетов, подготовленных для пакетного менеджера Nix и размещённых в репозитории Nixpkgs. Кроме операций с пакетами возможно создание сценариев для управления конфигурацией приложений. При сборке пакета автоматически загружаются и собираются все связанные с ним зависимости. Возможна как загрузка готовых бинарных пакетов из репозитория, так и сборка из исходных текстов со всеми зависимостями. Реализованы средства для поддержания версий установленных программ в актуальном состоянии через организацию установки обновлений из внешнего репозитория.

Сборочное окружение для пакетов формируется в виде контейнера, содержащего все необходимые для работы приложений компоненты, что позволяет сформировать набор пакетов, способный работать без оглядки на состав базового системного окружения дистрибутива, в котором Guix используется в качестве надстройки. Между пакетами Guix возможно определение зависимостей, при этом для поиска наличия уже установленных зависимостей используется сканирование хэшей-идентификаторов в директории установленных пакетов. Пакеты устанавливаются в отдельное дерево директорий или поддиректорию в каталоге пользователя, что позволяет обеспечить его параллельное сосуществование с другими пакетными менеджерами и обеспечить поддержку широкого спектра существующих дистрибутивов. Например, пакет устанавливается как /nix/store/f42a5978f3a0b426064a2b64a0c6f92-firefox-83.0.0/, где «f42a59…» является уникальным идентификатором пакета, используемым для контроля зависимостей.

Дистрибутив включает только свободные компоненты и поставляется с ядром GNU Linux-Libre, очищенным от несвободных элементов бинарных прошивок. Для сборки применяется GCC 9.3. В качестве системы инициализации используется сервисный менеджер GNU Shepherd (бывший dmd), развиваемый как альтернатива SysV-init с поддержкой зависимостей. Управляющий демон и утилиты Shepherd написаны на языке Guile (одна из реализаций языка Scheme), который также используется и для определения параметров запуска сервисов. Базовый образ поддерживает работу в консольном режиме, но для установки подготовлено 13162 готовых пакета, среди которых и компоненты графического стека на базе X.Org, оконные менеджеры dwm и ratpoison, рабочий стол Xfce, а также подборка графических приложений.

Источник: [ссылка]

Выпуск рабочего стола Regolith 1.5

Доступен выпуск рабочего стола Regolith 1.5, развиваемого разработчиками одноимённого дистрибутива Linux. Regolith основан на технологиях управления сеансами GNOME и оконном менеджере i3. Наработки проекта распространяются под лицензией GPLv3. Для загрузки подготовлены PPA-репозитории для Ubuntu 18.04 и 20.04.

Проект позиционируется как современное окружение рабочего стола, развиваемое для более быстрого выполнения типовых действий за счёт оптимизаций рабочих процессов и устранения лишнего беспорядка. Целью является предоставление функционального, но минималистичного интерфейса, который может настраиваться и расширяться в зависимости от предпочтений пользователя. Regolith может представлять интерес для новичков, привыкших к традиционным оконным системам, но желающих попробовать методы мозаичной компоновки окон.

В новом выпуске:

  • Добавлены клавиатурные комбинации: «super `» для перехода к следующему свободному виртуальному рабочему столу и «super alt `» для перемещения текущего окна на следующий свободный рабочий стол. Указанные комбинации позволяют пользователю обойтись без просмотра списка виртуальных рабочих столов для определения свободного.
  • В диалог Rofi добавлена возможность смены внешнего вида без ручной правки Xresource.
  • Для настройки различных параметров GNOME задействован механизм переопределения настроек GSettings, позволяющий вынести все изменения в отдельный файл, используемый только в Regolith (ранее настройки заменялись глобально и отражались на других пользовательских окружениях).
  • Предложено несколько новых тем оформления: dracula, gruvbox и pop-os. Оформления отличаются палитрой, шрифтами и темой GTK.
  • i3-gaps обновлён до версии 4.18.2.
  • По умолчанию задействован новый композитный сервер Picom 8.
  • Расширены возможности по адаптации окружения под свои потребности. Например, появилась возможность изменения единиц измерения температуры, парамеров композитного сервера и раскладок клавиатуры без копирования всего файла конфигурации.
  • Подготовлено несколько вариантов пакета с Regolith, отличающихся входящими в состав компонентами: regolith-desktop-minimal, regolith-desktop-standard, regolith-desktop-mobile и regolith-desktop-complete.
  • Конфигуратор Remontoire обновлён до версии 1.4, в которой улучшена поддержка многомониторных конфигураций.
  • Реализована интеграция с программой для ведения заметок td-cli, доступ к которой теперь можно получить через интерфейс Rofi.

Основные особенности Regolith:

  • Поддержка горячих клавиш как в оконном менеджере i3wm для управления мозаичной (тайловой) компоновкой окон.
  • Использование для управления окнами i3-gaps, расширенного форка i3wm.
  • Панель построена с использованием i3bar, а для запуска скриптов автоматизации применяется i3xrocks на основе i3blocks.
  • Управление сеансами основано на менеджере сеансов из gnome-flashback и gdm3.
  • Компоненты для управления системой, настройки интерфейса, автомонтирования накопителей, управления подключением к беспроводным сетям перенесены из GNOME Flashback.
  • Помимо мозаичной компоновки допускаются и традиционные методы работы с окнами.
  • Меню запуска приложений и интерфейс переключения между окнами основаны на Rofi Launcher. Список приложений можно посмотреть в любой момент при помощи клавиатурной комбинации super+space.
  • Для вывода уведомлений используется Rofication.
  • Для управления темами оформления и установки отдельных ресурсов, связанных с внешним видом, применяется утилита regolith-look.

Источник: [ссылка]

Выпуск XCP-NG 8.2, свободного варианта Citrix Hypervisor

Состоялся релиз проекта XCP-NG 8.2, развивающего свободную и бесплатную замену проприетарной платформе Citrix Hypervisor (ранее назывался XenServer) для развертывания и управления работой облачной инфраструктуры. XCP-NG воссоздаёт функциональность, которую компания Citrix исключила из бесплатного варианта Citrix Hypervisor/Xen Server, начиная c версии 7.3. Поддерживается обновление Citrix Hypervisor до XCP-ng, обеспечивается полная совместимость с Xen Orchestra и возможность перемещения виртуальных машин из Citrix Hypervisor в XCP-ng и обратно. Для загрузки подготовлен установочный образ размером 580 Мб.

XCP-NG позволяет быстро развернуть систему виртуализации серверов и рабочих станций, предлагая средства для централизованного управления неограниченным числом серверов и виртуальных машин. Среди особенностей системы: возможность объединения нескольких серверов в пул (кластер), средства обеспечения высокой доступности (High Availability), поддержка снапшотов, совместное использование разделяемых ресурсов при помощи технологии XenMotion. Поддерживается живая миграция виртуальных машин между хостами кластера и между разными кластерами/отдельными хостами (не имеющими общего хранилища), а также живая миграция дисков VM между хранилищами. Платформа может работать с большим числом систем хранения данных и отличается наличием простого и понятного интерфейса для установки и администрирования.

XCP-ng 8.2 стал первым выпуском с длительным сроком поддержки (LTS), исправления серьёзных ошибок, устранения уязвимостей и обновления некоторых драйверов для которого будут формироваться на протяжении 5 лет. Стандартные выпуски будут поддерживаться 1 год.

Новый выпуск не только воссоздаёт функциональность Citrix Hypervisor 8.2, но и предлагает некоторые улучшения:

  • Полностью переработана поддержка UEFI. Проект теперь использует собственный код для загрузки гостевых систем в режиме UEFI, что позволило исключить зависимость от кода Citrix и минимизировать риски, связанные с возможным закрытием реализации Citrix. Ранее компания Citrix уже предпринимала попытку закрытия кода, связанного с UEFI, но потом отменила это решение.
  • Автоматизирована передача сведений о трафике с использованием протокола OpenFlow в контроллер Openflow, управляемый через Xen Orchestra.
  • Добавлена экспериментальная поддержка планирования задач в привязке к ядрам CPU. Планировщик теперь может группировать виртуальные vCPU для заданных VM и выполнять их на одном и том же физическом ядре CPU, исключая тем самым возможность совершения атак по сторонним каналам.
  • Предложена экспериментальная поддержка драйверов хранения, позволяющих создавать хранилища на базе ФС Gluster, ZFS, XFS и CephFS.
  • Добавлена поддержка новых семейств CPU Intel: Icelake и Cometlake.
  • Модуль для ZFS обновлён до версии 0.8.5, а реализация алгоритма zstd до версии 1.4.5.

Источник: [ссылка]

Выпуск Coreboot 4.13

Представлен релиз проекта CoreBoot 4.13, в рамках которого разрабатывается свободная альтернатива проприетарным прошивкам и BIOS. В создании новой версии приняло участие 234 разработчика, которые подготовили более 4200 изменений.

Основные новшества:

  • Добавлена поддержка 63 материнских плат, 42 из которых используется на устройствах с Chrome OS или на серверах Google. Среди не связанных с Googlе плат:
    • Acer G43T-AM3
    • Asus A88XM-E FM2+
    • Supermicro X11SSH-F
    • Dell OptiPlex 9010
    • HP EliteBook 2560p, HP EliteBook Folio 9480m, HP ProBook 6360b
    • Lenovo ThinkPad X230s
    • System76 lemp9
    • AMD Cereme
    • Biostar TH61-ITX
    • BostenTech GBYT4
    • Clevo L140CU/L141CU
    • Intel Alderlake-P RVP
    • Kontron COMe-bSL6
    • Open Compute Project DeltaLake
    • Prodrive Hermes
    • Purism Librem Mini, Purism Librem Mini v2
    • Siemens Chili
  • Прекращена поддержка материнской платы Open Compute Project SonoraPass и 4 плат Google.
  • Подготовлена собственная реализация базового кода (refcode) для систем на кристалле Bay Trail, эквивалентная базовому коду, предоставляемому компанией Intel. Собственный refcode позволяет сократить необходимые для корректной работы внешние компоненты до одного файла MRC.bin (memory reference code), необходимого для загрузки.
  • Добавлена начальная поддержка технологии Intel TXT (Trusted eXecution Technology), достаточная для запуска модуля tboot (Trusted Boot). Реализация протестирована на материнской плате Asrock B85M Pro4 (Haswell) с TPM 2.0.
  • Добавлена обработка признака «hidded» для PCI-устройств в devicetree, позволяющая обрабатывать скрытые устройства, параметры которых выглядят так, будто устройство отсутствует (Vendor ID 0xFFFF_FFFF). Подобные устройства используются в Intel PMC (Power Management Controller).
  • Добавлены инструменты gen_spd.go и gen_part_id.go для генерации информации SPD (Serial Presence Detect) для памяти LP4x и назначения идентификаторов для модулей памяти, используемых в платах на основе TGL и JSL.
  • Предложена новая версия загрузчика SMM, которая может работать на платформах, в которых имеется более 32 потоков CPU.
  • Реализован встроенный отладочный механизм Address Sanitizer для проверки корректности работы с памятью, позволяющий выявлять такие проблемы, как выход за границы буфера. Механизм может использоваться в ramstage и в romstage для QEMU i440fx, Intel Apollo Lake и Haswell.
  • Добавлена начальная поддержка x86_64, которая позволяет работать с более чем 4 ГБ памяти и включает более оптимизированный код. Реализация пока ограничена использованием в эмуляторе.
  • Проведена подготовка для выборочного включения PCI bus mastering, для чего в Kconfig добвлены настройки, дающие возможность активации bus mastering на уровне отдельных групп устройств.
  • Предоставлена возможность изменения из romstage уровня логов, выводимых на консоль, активированную в bootblock.
  • Предложена четвёртая редакция механизма распределения ресурсов (resource allocator), в которой добавлена поддержка манипуляции несколькими диапазонами ресурсов, использования всего адресного пространства и выделения памяти в области выше 4 ГБ.
  • Дополнительно можно отметить работу по обеспечению поддержки в CoreBoot чипсетов на базе микроархитектуры AMD Zen.

Источник: [ссылка]

В Fedora 34 планируют задействовать PipeWire для звука вместо PulseAudio

Для реализации в Fedora 34 намечено изменение, переключающее все звуковые потоки со звуковых серверов PulseAudio и JACK на PipeWire. Использование PipeWire позволит в обычной настольной редакции предоставить возможности профессиональной обработки звука, избавиться от фрагментации и унифицировать звуковую инфраструктуру для разных применений. Изменение пока не рассмотрено комитетом FESCo (Fedora Engineering Steering Committee), отвечающим за техническую часть разработки дистрибутива Fedora.

В настоящее время для обработки звука в Fedora Workstation применяется фоновый процесс PulseAudio, а приложения используют клиентскую библиотеку для взаимодействия с этим процессом, микширования и управления звуковыми потоками. При профессиональной обработке звука применяется звуковой сервер JACK и связанная с ним клиентская библиотека.

Вместо PulseAudio и JACK предлагается использовать мультимедийный сервер нового поколения PipeWire с прослойкой для обеспечения совместимости, которая позволит сохранить работу всех существующих клиентов PulseAudio и JACK, а также приложений, поставляемых в формате Flatpak. Для старых клиентов, использующих низкоуровневый API ALSA, будет установлен ALSA-плагин, направляющий звуковые потоки напрямую в PipeWire. Все завязанные на PulseAudio и JACK приложения смогут работать поверх PipeWiree, без необходимости установки PulseAudio и JACK.

Напомним, что PipeWire расширяет возможности PulseAudio средствами для работы с потоками видео, возможностью обработки звука с минимальными задержками и новой моделью безопасности для управления доступом на уровне отдельных устройств и потоков. PipeWire также предоставляет возможности для управления источниками видео, такими как устройства захвата видео, web-камеры или выводимое приложениями содержимое экрана. Проект поддерживается в GNOME и уже активно применяется в Fedora Linux для записи содержимого экрана (screencasting) и совместного доступа к экрану в окружениях на базе Wayland.

PipeWire также может выступать в роли звукового сервера, обеспечивающего минимальные задержки и предоставляющего функциональность, комбинирующую возможности PulseAudio и JACK, в том числе учитывающую потребности систем профессиональной обработки звука, на которую не мог претендовать PulseAudio. Кроме того, PipeWire предлагает расширенную модель безопасности, позволяющую управлять доступом на уровне отдельных устройств и конкретных потоков, и упрощающую организацию проброса звука и видео из изолированных контейнеров и в них.

Основные возможности:

  • Захват и воспроизведение звука и видео с минимальными задержками;
  • Средства для обработки видео и звука в режиме реального времени;
  • Многопроцессная архитектура, позволяющая организовать совместный доступ к контенту нескольких приложений. Управление и обработка мультимедийных графов осуществляется в разных процессах;
  • Модель обработки на основании графа мультимедийных узлов с поддержкой циклов обратной связи и атомарных обновлений графа. Допускается подключение обработчиков как внутри сервера, так и внешних плагинов;
  • Эффективный интерфейс доступа к видеопотокам через передачу файловых дескрипторов и доступа к звуку через совместно используемые кольцевые буферы (shared ringbuffer);
  • Возможность обработки мультимедийных данных от любых процессов;
  • Наличие плагина к GStreamer для упрощения интеграции с существующими приложениями;
  • Поддержка изолированных окружений и Flatpak;
  • Поддержка плагинов в формате SPA (Simple Plugin API) и возможность создания плагинов, работающих в режиме жесткого реального времени;
  • Гибкая система согласования используемых мультимедийных форматов и выделения буферов;
  • Использование одного фонового процесса для маршрутизации звука и видео. Возможность работы в форме звукового сервера, хаба для предоставления видео приложениям (например, для gnome-shell screencast API) и сервера для управления доступом к аппаратным устройствам захвата видео.

Источник: [ссылка]

Релиз пакета для создания 2D-анимации Synfig 1.4

После более двух лет разработки состоялся релиз Synfig 1.4, одного из самых мощных свободных пакетов для векторной 2D-анимации, используемого при производстве отечественного анимационного проекта «Моревна» (Morevna). Пакет разработан специально для анимации и позволяет создавать работы кинематографического качества без рутинной промежуточной прорисовки каждого кадра. Код проекта написан на С++ и распространяется под лицензией GPLv3. Сборки Synfig формируются для Linux (AppImage), Windows и macOS.

Synfig примечателен наличием средств для композитинга на основе слоёв (в качестве слоёв можно использовать геометрические фигуры, градиенты, фильтры, искажения, преобразования, фракталы и т.п.) и полной поддержкой контурных градиентов, которые позволяют добавлять мягкое затенение анимации без необходимости рисовать его на каждом кадре. Редактор также предоставляет полноценную поддержку рисования с использованием планшетов, в том числе с возможностью изменения толщины линии в зависимости от интенсивности нажатия.

За исключением импортированных растровых изображений, редактор манипулирует векторными объектами, что делает создаваемые работы независимыми от экранных разрешений. Плавность анимации достигается благодаря автоматической интерполяции изменений изображений между ключевыми кадрами. Для обеспечения корректной цветопередачи и большого диапазона яркости применяется технология HDRI (High Dynamic-Range Imaging) и вычисления с плавающей точкой.

Ключевые новшества Synfig 1.4:

  • В панели Graphs кривые теперь можно редактировать через набор контрольных точек, перемещая их для изменения формы кривой.

  • Проведена большая чистка кода, связанного с воспроизведением звука. Решены проблемы, связанные с синхронизацией звука. Добавлена панель для визуализации звуковой волны, упрощающая синхронизацию анимации со звуковым треком.
  • В виджет трансформации добавлена специальная контрольная точка, упрощающая изменение исходной позиции для трансформации.
  • Добавлена операция «bake», позволяющая сформировать анимацию любого параметра, преобразовав интерполированную кривую в набор путевых точек.
  • В панели TimeTrack появилась возможность определения диапазона для воспроизведения и зацикливания воспроизведения.
  • В контекстное меню слоёв с изображениями добавлен пункт «Edit image in external tool…» для открытия изображения во внешнем графическом редакторе.
  • Восстановлена корректная работа функции «onion-skin», которая в ветке 1.2 была ограничена возможностью отображения только одного слоя. Кроме того, onion-skin теперь может привязываться не только к ключевым, но и к обычным кадрам.
  • Упрощён импорт наборов изображений, для которого в меню File теперь предложен пункт «Import sequence…».
  • Реализована поддержка векторизации растровых изображений — Synfig Studio теперь может конвертировать растровое изображение в векторный вариант. Алгоритм векторизации перенесён из программы OpenToonz.
  • Добавлена начальная поддержка импорта видео-файлов. Импорт файлов AVI и MP4 пока выполняется очень медленно, но для анимированных GIF-изображений работает вполне сносно.
  • Добавлена поддержка экспорта анимации в формате Lottie JSON, который можно использовать для встраивания на web-страницы и воспроизведения в браузере.
  • Настройки рендеринга по умолчанию переведены на использование формата AVI и кодека mpeg4. Для более высокого качества опционально доступен кодек H.264 в режиме Lossless.
  • Проведена оптимизация движка рендеринга. Сцены с большим числом слоёв стали обрабатываться существенно быстрее. Полностью переписана реализация слоя Outline и вынесены оптимизации в слои Region, Checkerboard и SuperSample. Для битовых карт реализован алгоритм децимации (downsampling), значительно повысивший качество результирующих изображений, при наличии в сцене уменьшенных крупных изображений.
  • Добавлен режим предпросмотра рабочей области, в отличие от черновой отрисовки, отображающий все слои.
  • Обеспечено кеширвоание уже отрендеренных кадров, что заметно улучшает воспроизведение и манипуляции на шкале времени. Добавлен режим фонового рендеринга всех кадров.
  • Реализована возможность определения значения гамма-коррекции в привязке к отдельному документу, вместо задания для всего приложения. Изменить значение можно через меню «Canvas» -> «Properties» -> «Gamma correction».
  • Расширены возможности слоёв Advanced Outline, Switch и Rectangle. Добавлена возможность сохранения слоя рабочей области («Workspace» -> «Save workspace» в меню).
  • Добавлена возможность назначение фона по умолчанию для новых файлов («Edit» -> «Preferences» -> «Document»).

Источник: [ссылка]

Pro1 X — смартфон с выдвижной клавиатурой, совместимый с Ubuntu Touch и Android

Английская компания F(x)tec в сотрудничестве с интернет-сообществом XDA проводит кампанию по привлечению средств в поддержку новой версии смартфона Pro1 с физической клавиатурой. Главной особенностью данного устройства заявлена поддержка ОС на выбор — Android 9, Lineage OS 17, либо Ubuntu Touch. Для последней заявлена поддержка «конвергенции» — возможности использования в качестве настольного ПК при подключении монитора, клавиатуры и мыши.

На текущем этапе, компания занимается адаптацией прототипа к серийному производству. Сбор средств оказался успешным и к проекту уже привлечено в 7 раз больше средств, чем было намечено. Начало массовых продаж намечено на март 2021 года. Стоимость устройства при раннем предзаказе составляет 679 долларов. Авторы заявляют, что исходный Pro1 создан под впечатлением от концепта Nokia 950, распространявшегося только среди разработчиков.

Основные характеристики телефона:

  • Габариты — 154 x 73.6 x 13.98 мм, вес — 243 грамма.
  • Выдвижная (под углом) QWERTY-клавиатура на 64 клавиши, расположенные в 5 рядов.
  • 5.99-дюймовый AMOLED дисплей разрешением 2160×1080.
  • Процессор — Qualcomm Snapdragon 835 MSM8998.
  • Оперативная память — 6 или 8 ГБ LPDDR4.
  • Хранилище — 128 или 256 ГБ, расширяемое до 2 ТБ картой microSD
  • Аккумулятор — 3200 mAh с возможностью быстрой зарядки.
  • Поддержка различных стандартов сотовой связи.
  • Две нано сим-карты (вторая занимает место карты памяти).
  • Сеть — WiFi по стандарту 802.11ac.
  • Порт USB Type-C с HDMI.
  • Звук — стерео, гнездо 3.5 мм, FM-радио.
  • Камеры — передняя 8 МП, задняя 12 МП (Sony IMX363) + 5 МП.

Устройство будет поставляться с разблокируемым загрузчиком — разработчики обещают, что «продвинутые» пользователи смогут прошивать и свободно изменять ОС на своё усмотрение. На данный момент заявлена возможность заказа с предустановленными ОС Android, Lineage OS и Ubuntu Touch. Из страницы анонса краудфандинг-кампании можно заключить, что также ведётся работа по адаптации таких операционных систем как Sailfish OS, Windows и Debian.

Для Ubuntu используется версия от проекта Ubports. Возможности, предоставляемые ОС Ubuntu Touch — интерфейс с поддержкой жестов, использование сенсорного экрана устройства в качестве манипулятора типа «мышь», работа с несколькими приложениями одновременно, запуск приложений Android через AnBox, запуск приложений для полноценных Linux-дистрибутивов через Libertine. Ubuntu Touch на смартфоне работает через прослойку Halium — слой абстракции над железом, предназначенный для использования дистрибутивов Linux на смартфонах, изначально работающих под ОС Android.

Источник: [ссылка]

Выпуск языка программирования Rust 1.48

Опубликован релиз 1.48 языка системного программирования Rust, основанного проектом Mozilla. Язык сфокусирован на безопасной работе с памятью, обеспечивает автоматическое управление памятью и предоставляет средства для достижения высокого параллелизма выполнения заданий, при этом обходясь без использования сборщика мусора и runtime (runtime сводится к базовой инициализации и сопровождению стандартной библиотеки).

Автоматическое управление памятью в Rust избавляет разработчика от ошибок при манипулировании указателями и защищает от проблем, возникающих из-за низкоуровневой работы с памятью, таких как обращение к области памяти после её освобождения, разыменование нулевых указателей, выход за границы буфера и т.п. Для распространения библиотек, обеспечения сборки и управления зависимостями проектом развивается пакетный менеджер Cargo. Для размещения библиотек поддерживается репозиторий crates.io.

Основные новшества:

  • Расширены возможности утилиты rustdoc, применяемой для генерации документации из примечаний в коде или файлов в формате Markdown. Добавлены средства для добавления в документирующие комментарии ссылок на другие элементы, упоминаемые при описании взаимосвязи. Если раньше ссылки на файлы с описанием дополнительных элементов выставлялись вручную, то теперь rustdoc определяет упоминание типа и автоматически генерирует URL. Например, в примере ниже показано как разместить ссылку на структуру Bar, в первом случае с текстом ссылки «Bar», а во втором «crate::foo::Bar»:
         pub mod foo {         /// Some docs for `Foo`         ///         /// You may want to use `Foo` with [`Bar`](crate::bar::Bar).         /// You may want to use `Foo` with [`crate::foo::Bar`].           pub struct Foo;      }  

    В rustdoc также добавлена возможность добавления псевдонимов при помощи аннотации #[doc(alias = «‹alias›»)], которые становятся доступны при поиске через интерфейс rustdoc. Например, указанная возможность позволяет ассоциировать Rust-функции с Си-функциями в пакетах с FFI-обвязками для поиска по именам функций из лежащей в основе Си-библиотеки. В примере ниже к структуре «Foo» привязывается псевдоним «bar», после чего поиск «bar» приведёт к упоминанию «Foo» в результатах поиска.

         #[doc(alias = "bar")]     struct Foo;  
  • В стандартной библиотеке стабилизировано применение константных дженериков («const generics») «[T; N]: TryFrom‹Vec‹T››» для превращения вектора в массив заданной длины. Все массивы любого размера теперь поддерживают «TryFrom‹Vec‹T››».
         use std::convert::TryInto;       let v1: Vec‹u32› = vec![1, 2, 3];     let a1: [u32; 3] = v1.try_into().expect("wrong length");  
  • В разряд стабильных переведена новая порция API, в том числе стабилизированы
    • slice::as_ptr_range,
    • slice::as_mut_ptr_range,
    • VecDeque::make_contiguous,
    • future::pending и
    • future::ready.
  • Признак «const», определяющий возможность использования в любом контексте вместо констант, применён в методах:
    • Option::is_some
    • Option::is_none
    • Option::as_ref
    • Result::is_ok
    • Result::is_err
    • Result::as_ref
    • Ordering::reverse
    • Ordering::then
  • В модулях синтаксически разрешено использование ключевого слова unsafe (семантически данное ключевое слово по-прежнему не принимается, но теперь может быть разобрано в процедурных макросах).
  • В компиляторе стабилизирован флаг «-C link-self-contained=‹yes|no›, позволяющий управлять связыванием с собственными Си-runtime и библиотеками при использовании платформ windows-gnu, linux-musl и wasi. Для платформ linux-gnu добавлена поддержка флага «-C target-feature=+crt-static».
  • Обеспечен второй уровень поддержки для платформы aarch64-unknown-linux-musl.

Источник: [ссылка]

IBM, Linux Foundation, Cisco, Akamai и VMware начали продвижение инклюзивной терминологии

IBM, Red Hat, Linux Foundation, Cisco, Akamai, Cloud Native Computing Foundation и VMware выступили с совместной инициативой Inclusive Naming, нацеленной на оказание помощи компаниям и проектам по избавлению кода и документации от неполиткорректных или оскорбляющих определённые категории людей терминов.

В рамках инициативы предложен список замен, в котором упомянута недопустимость применения таких терминов, как whitelist, blacklist, master и slave, которые рекомендовано как можно скорее заменить на альтернативные термины, такие как allowlist, denylist, control plane, сontroller, doer, primary, replica, secondary, leader, follower, parent, child, main, original и source.

Компания Red Hat подготовила список замены, охватывающий различные репозитории открытых проектов. В списке отмечено 337 тысяч упоминаний слова «master», 105 тысяч слова «save», 10 тысяч слова «whitelist» и 17 тысяч слова «blacklist». Отмечается, что для замены неприемлемых терминов потребуется грандиозная работа, охватывающая сотни сообществ, тысячи проектов и репозиториев. При этом при переименовании рекомендуется проявлять большую осторожность, чтобы недопустить возможных нарушений обратной совместимости и нарушений работы привычных API.

Для выявления неприемлемых терминов и выражений предложен специальный фреймворк. Кроме вышеотмеченных терминов, фреймворк также позволяет определять сексистские, трансфобные, гомофобные или связанные с гендерной идентичностью выражения, к которым, например, отнесены слова «transclusion», «homogenous» и «binary». Не рекомендована также фраза «sanity check», которая может быть воспринята как неуважение к инвалидам. Среди терминов, которых следует избегать из-за их отношения к насилию и милитаризму, не рекомендованы слова «kill» и «marshal».

Источник: [ссылка]

Смартфон Librem 5 перешёл на стадию массового производства

Компании Purism объявила о начале массового производства смартфона Librem 5, примечательного наличием программных и аппаратных средств для блокирования попыток отслеживания и сбора информации о пользователе. Смартфон предоставляет пользователю полный контроль над устройством и оснащён только свободным ПО, включая драйверы и прошивки.

Разработчики сообщили, что все стадии проверки качества успешно пройдены и проект переходит на стадию массового производства и широких продаж. В первую очередь смартфоны будут отправлены участникам программы начальных предзаказов, благодаря которым велось финансирование проекта. Устройства по начальным предзаказам планируют отправить до начала декабря, после чего до конца января будет производиться отправка устройств по обычным предзаказам из США. Отправку телефонов по остальным ранее сделанным предзаказам планируется завершить в феврале. Параллельно будут отправляться устройства по новым заказам.

Напомним, что смартфон Librem 5 поставляется с полностью свободным Linux-дистрибутивом PureOS, использующим пакетную базу Debian и адаптированное для смартфонов окружение GNOME, и оснащён тремя аппаратными переключателями, которые на уровне разрыва цепей позволяют отключить камеру, микрофон, GPS, WiFi/Bluetooth и модуль Baseband. При отключении всех трёх переключателей дополнительно блокируются и датчики (IMU+компас & GNSS, датчики освещения и приближения). Компоненты Baseband-чипа, отвечающего за работу в сотовых сетях, отделены от основного CPU, обеспечивающего работу пользовательского окружения. Заявленная цена Librem 5 — $799.

Работа мобильных приложений обеспечивается библиотекой libhandy, в рамках которой развивается набор виджетов и объектов для создания интерфейса пользователя для мобильных устройств при помощи GTK и технологий GNOME. Библиотека позволяет работать с одними и теми же GNOME-приложениями на смартфонах и ПК — подключив смартфон к монитору получить типовой рабочий стол GNOME на базе единого набора приложений. Для обмена сообщениями по умолчанию предложена система децентрализованных коммуникаций на базе протокола Matrix.

Аппаратная начинка:

  • SoC i.MX8M c четырёхядерным CPU ARM64 Cortex A53 (1.5GHz), вспомогательным чипом Cortex M4 и GPU Vivante GC7000Lite c поддержкой OpenGL/ES 3.1, Vulkan и OpenCL 1.2.
  • 5.7-дюймовый экран (IPS TFT) с разрешением 720×1440.
  • ОЗУ — 3GB.
  • встроенный Flash 32GB плюс слот microSD.
  • Baseband-чип Gemalto PLS8 3G/4G (возможна замена на Broadmobi BM818, производимый в Китае).
  • GPS TESEO LIV3.
  • Аккумулятор ёмкостью 4500mAh.
  • Wi-Fi Redpine Signals RS9116 — 802.11abgn 2.4 Ghz / 5Ghz, Bluetooth 4.
  • Передняя и задняя камеры в 8 и 13 мегапикселей.
  • USB Type-C (USB 3.0, питание и видеовывод DisplayPort).
  • Слот для чтения смарткарт 2FF.

Источник: [ссылка]

Релиз Chrome 87

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

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

  • Включён режим урезания активности фоновых вкладок («Tab Throttling»). Браузер теперь отдаёт приоритет активным вкладкам и ограничивает потребление CPU фоновыми вкладками, снижая интенсивность пробуждения процессора. В соответствии с собранной статистикой около 40% потребления ресурсов при вызове таймеров JavaScript приходилось на фоновые вкладки. Подобные вкладки после пяти минут нахождения в фоне теперь могут активироваться не чаще одного раза в минуту, за исключением операций воспроизведения мультимедийного содержимого, активных потоков RTCDataChannel и MediaStreamTrack или обработки поступивших уведомлений. Проведённое тестирование показало, что внесённые изменения при наличии большого числа открытых вкладок позволили до 5 раз снизить нагрузку на CPU и продлить время автономной работы более чем на час.
  • Включено отслеживание видимости вкладок и окон при выполнении отрисовки. Операции отрисовки теперь выполняются только если они приводят к изменению видимой пользователю информации и приостанавливаются для фоновых вкладок. Благодаря данной оптимизации удалось добиться сокращения времени запуска браузера на 25%, ускорения загрузки страниц на 7% и снижения потребления памяти.
  • В версии для Android включён по умолчанию кэш перехода (Back-forward cache), обеспечивающий мгновенный переход при использовании кнопок «Назад» и «Вперёд» или при навигации по ранее просмотренным страницам текущего сайта. На настольных системах кэш можно включить при помощи настройки chrome://flags/#back-forward-cache.
  • Продолжено постепенное включение HTTP/3 и варианта протокола QUIC на основе спецификаций IETF (ранее по умолчанию использовался Google-вариант QUIC). По статистике Google по сравнению с HTTP поверх TCP+TLS 1.3 протокол IETF QUIC показал снижение задержек при поиске в Google Search на 2% и уменьшение времени ребуферизации в YouTube на 9% при увеличении пропускной способности на 3% для настольных и на 7% для мобильных систем.
  • До 50% увеличен охват отключения FTP по умолчанию. Вернуть FTP можно при помощи флага «—enable-ftp» или «—enable-features=FtpProtocol». В Chrome 88 поддержка FTP будет полностью отключена.
  • Помимо ранее добавленных функций закрепления и группировки вкладок в новой версии предложена возможность быстрого поиска вкладок. Пользователь теперь может просмотреть список всех открытых вкладок и быстро отфильтровать нужную вкладку, независимо от того в текущем или другом окне она находится. Поиск вкладок будет доведён вначале для пользователей Chromebook, а потом и для остальных настольных систем.
  • Появилась возможность выполнения действий с браузером из адресной строки. Например, можно набрать «удалить историю» и браузер предложит перейти к форме очистки истории перемещений или «редактировать пароли» и браузер откроет менеджер паролей. Пока распознаются только действия, связанные с конфиденциальностью и безопасностью.
  • Для страницы, показываемой при открытии новой вкладки, реализованы информационные карты, помогающие найти недавно просматриваемый контент и связанную с ним информацию. Карты призваны упростить продолжение работы с информацией, просмотр которой был прерван. Например, карты помогут найти рецепт блюда, который недавно был найден в сети, но утерян после закрытия страницы, продолжить выбор покупок в магазинах или вернуться к просмотру прерванного видео. Возможность будет доводиться до пользователей постепенно в ходе нескольких экспериментальных внедрений.
  • Предложена новая реализация интерфейса встроенного просмотрщика документов в формате PDF. Интерфейс примечателен выносом в верхнюю панель всех настроек. Если раньше в верхней панели отображались только название файла, информация о страницах, кнопки поворота, печати и сохранения, то теперь в неё перенесено и содержимое боковой панели, включавшей элементы управления масштабированием и размещения документа по размеру страницы. Появилась возможность просмотра аннотаций и добавлен режим двухстраничного просмотра.
  • 31 декабря, после официального прекращения поддержки Flash Player компанией Adobe, Chrome полностью перестанет обрабатывать Flash-контент, в том числе в прошлых выпусках. В Chrome 88 связанный с Flash Player код будет полностью удалён. Предприятиям, которым необходима поддержка Flash после 31 декабря, предложено воспользоваться отдельным сервисом HARMAN. 31 декабря также будет прекращена поддержка Google Cloud Print и убрана возможность сохранения в Google Drive со страницы управления выводом на печать (пользователям отныте потребуется осуществить печать в PDF и затем вручную загружать результат в Google Drive в при помощи меню «New › File upload» на сайте drive.google.com).
  • В версии для платформы Android предоставлена возможность подключения к web-сервисам в браузере с использованием учётной записи в Google, привязанной к устройству. Синхронизация при этом включается отдельно. Для пользователей, подключивших браузер к учётной записи Google, но не включивших синхронизацию, предоставлен доступ к сохранённым в учётной записи методам платежей и паролям.
  • При попытке отправки смешанных web-форм добавлен вывод предупреждения о потенциальном риске передачи данных через незашифрованный канал связи (в прошлой версии предупреждение выводилось при заполнении подобных форм, но вывод предупреждения при отправке был отменён). Под смешанными формами подразумеваются формы ввода на страницах, загруженных по HTTPS, но отправляющих данные по HTTP, что создаёт угрозу перехвата и подмены данных при совершении MITM-атак.
  • Продолжено блокирование небезопасной загрузки (без шифрования) исполняемых файлов. В новой версии реализована блокировка небезопасной загрузки документов (docx, pdf и т.п.) и обеспечен вывод предупреждений при небезопасной загрузке мультимедийных данных, текстовых файлов и изображений. Блокировка реализована, так как загрузка файлов без шифрования может использоваться для совершения вредоносных действий путём подмены содержимого в процессе MITM-атак. Ранее была включена блокировка небезопасной загрузки исполняемых файлов и архивов (zip, iso и т.п.).
  • Имена политик для предприятий переведены на инклюзивную терминологию. Термины «whitelist» и «blacklist» заменены на «allowlist» и «blocklist». Убрано слово Native. Например, политика DeviceNativePrinters теперь именуется DevicePrinters, а DeviceUserWhitelist — DeviceUserAllowlist. Уже используемые политики сохранят свою работу, но на странице chrome://policy для них будет показано предупреждение.
  • В облачном интерфейсе управления (Chrome Browser Cloud Management) реализована возможность удалённого выполнения команд в браузере. Например, можно удалённо инициировать очистку кэша или Cookie.
  • Внесены изменения для блокирования атаки NAT slipstreaming, позволяющей при открытии страницы в браузере организовать соединение сервера атакующего с любым портом UDP или TCP на системе пользователя, находящейся за транслятором адресов.

  • В API MediaDevices.getUserMedia() и MediaStreamTrack.applyConstraints() добавлена поддержка управления панорамированием, наклоном и масштабированием камеры. Доступ к возможностям по управлению движением камеры предоставляется только после явного предоставления приложению полномочий.
  • Добавлены сокращённые варианты написания различных CSS-свойств, управляющих логическим позиционированием элементов (для поддержки языков, в которых написание производится не сверху вниз и слева направо, логическое позиционирование использует понятия начала, конца и направления текста). Например, значения «margin-block-start», «margin-block-end», «margin-inline-start» и «margin-inline-end» теперь можно определить при помощи сводных свойств «margin-block» и «margin-inline» (т.е. вместо двух отдельных свойств теперь можно писать «margin-block: 2ch 2ch;», как это было раньше сделано в Firefox). Аналогичные короткие варианты реализованы для свойств padding-*. Вместо раздельных наборов свойств top, right, bottom и left предложены сводные свойства «inset», «inset-block» и «inset-inline».
  • Стабилизирован API Cookie Store для доступа Service worker к HTTP Cookies, выступающий асинхронной альтернативой применения document.cookie.
  • Расширен режим изоляции Cross-Origin, в котором при помощи заголовков Cross-Origin-Embedder-Policy и Cross-Origin-Opener-Policy задаются правила безопасного использования на странице привилегированных операций, таких как SharedArrayBuffer, Performance.measureMemory() и API профилирования (данные API могут применяться для осуществления атак по сторонним каналам, таким как Spectre). Изоляция подразумевает вынос обработчиков контента в отдельные процессы в привязке к источнику (origin — домен+порт+протокол), а не сайту, т.е. позволяет организовать разделение по разным процессам на основе домена ресурса, а не сайта со всеми посторонними включениями на страницах. В новой версии в качестве ключа для изолированного кластера используется origin, а не сайт. В изолированном кластере запрещено изменение свойства document.domain. Добавлен параметр window.crossOriginIsolated для определения выполнения в режиме изоляции.
  • Добавлен метод isInputPending(), доступный из navigator.scheduling и позволяющий определить наличие ввода при выполнении длительных операциях в скриптах, блокирующих ввод.
  • В режиме Origin Trials добавлен API Font Access, при помощи которого можно определить и использовать установленные в системе шрифты, а также манипулировать шрифтами на низком уровне (например, фильтровать и трансформировать глифы). С меткой Origin Trials распространяются экспериментальные возможности, требующие отдельной активации. Origin Trial подразумевает возможность работы с тестируемыми API из приложений, загруженных с localhost или 127.0.0.1, или после прохождения регистрации и получения специального токена, который действует ограниченное время для конкретного сайта.
  • В Service Worker разрешена обработка Range-запросов, используемых для передачи данных отдельными блоками.
  • В Streams API добавлна поддержка переносимых потоков, позволяющих передавать объекты ReadableStream, WritableStream и TransformStream в форме аргументов при вызове postMessage(), для того чтобы вынести выполнение операции в web worker с клонированием данных в фоновом режиме.
  • В CSS-свойства ascent-override, descent-override и line-gap-override добавлен дескриптор @font-face для переопределения метрик шрифта, что может быть использовано для унификации отображения шрифта в разных браузерах и операционных системах, а также для исключения сдвига макета страницы web-шрифтами.
  • Добавлено несколько новых CSS-свойств для декорирования и подчёркивания текста, позволяющих избавиться от проблем со слишком близким прилеганием линии подчёркивания к тексту или её выходом за край текста. Для изменения толщины линии предложено свойство text-decoration-thickness, а для управления размещением подчёркивания свойство text-underline-offset и параметр from-font в text-underline-position.
  • В CSS-свойстве quotes реализовано значение ‘auto’, при указании которого будут использоваться символы кавычек, определённые в браузере по умолчанию и зависящие от выбранного языка.
  • В JavaScript реализован метод Atomics.waitAsync(), представляющий собой асинхронную версию Atomics.wait(), позволяющую ожидать определения размещения SharedArrayBuffer по аналогии с Atomics.wait(), но с возвращением Promise.
  • Добавлен экспериментальный внутренний С API (включается при запуске с опцией «—enable-unsafe-fast-js-calls»), позволяющий выполнять системные вызовы из JavaScript. Подобная возможность необходима для повышения производительности некоторых графических API в Chrome.
  • В инструментах для web-разработчиков реализована новая панель WebAuthn тестирования и отладки аутентификации на сайте с использованием не настоящих, а эмулируемых USB-токенов.

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

Источник: [ссылка]