itkvariat

Mozilla исправила в браузере Firefox ошибку CSS 18-летней давности



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

Недостаток в браузере Firefox был помечен как «устраненный» сразу после достижения его "совершеннолетия". Ошибка 290125 была впервые обнаружена 18 лет назад, когда разработчики Mozilla обнаружили, что браузер с открытым исходным кодом неправильно обрабатывает псевдоэлемент ::first-letter CSS.

Как поясняется в веб-документах MDN, CSS-псевдоэлемент ::first-letter «применяет стили к первой букве первой строки блочного элемента, но только в том случае, если ему не предшествует другой контент (например, изображения или встроенные элементы таблицы)». При перемещении влево для создания буквицы, Gecko, текущий механизм компоновки Firefox «игнорирует любую объявленную высоту строки и наследует высоту строки родительского блока».


Неправильное поведение — согласно стандарту CSS — «не позволяет авторам позиционировать первую букву, уменьшая поле строки за счет использования небольшой высоты строки». Конечным результатом было то, что Firefox неправильно отображал первую букву, в то время как другие браузеры (Opera 7.5+ и Safari 1.0 в то время) функцию CSS обрабатывали правильно.

О первоначальной проблеме было сообщено 12 апреля 2005 г., и она присутствовала в первом основном выпуске Firefox (1.0). Первое исправление появилось в Firefox 3.0 в 2007 году, когда разработчики Mozilla решили проблему разного рендеринга высоты строк на платформе Mac. Позже ошибка была повторно обнаружена (в 2014 году), когда рабочая группа CSS, которая управляет стандартом CSS в консорциуме World Wide Web, решила, что Firefox не соответствует официальным спецификациям CSS с его специальной обработкой ::first- буквенный элемент.

Ошибка была окончательно устранена 20 декабря 2022 года, и новый код должен появиться в предстоящем выпуске Firefox 110, который в настоящее время запланирован на февраль 2023 года. Однако, как объяснил разработчик Mozilla Джонатан Кью, принятое в настоящее время решение представляет собой «патч», предназначенный для «минимизировать риск» и упростить переключение между существующим «устаревшим» поведением механизма компоновки Gecko и новым «совместимым» поведением.

В конечном итоге Mozilla должна «переопределить ::first-letter полностью во время построения фрейма, а не во время перекомпоновки», — объяснил Кью. На данный момент недавно созданный патч позволяет браузеру выбирать между тремя различными вариантами поведения: «использовать узкие границы глифов», что является существующим поведением Gecko; «не используйте жесткие границы глифов, соблюдайте высоту строки», чтобы получить результат, аналогичный Webkit/Blink (Chromium/Chrome) или «автоматически выбирать» между двумя вышеупомянутыми поведениями на основе эвристики.


Иван Ковалев

VIA



Подписывайтесь и читайте новости от ITквариат раньше остальных в нашем Telegram-канале !





Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!  




И еще на эту тему...
  • Google Chrome тестирует гораздо более информативные подсказки об установке PWA на рабочем столе
  • Google Pixel может потерять свой главный эксклюзив
  • Экстренное обновление Apple исправляет уязвимость "нулевого дня" для компьютеров Mac и умных часов
  • Почему пятикратный ввод одного и того же слова в документах Google Docs приводил к "вылету" приложения?
  • Уязвимость "нулевого дня" в Windows снова получила неофициальное исправление
  • В 2021 году количество установок веб-приложений Google увеличилось почти втрое
  • Уязвимость в процессорах Intel может применяться для получения доступа к зашифрованным файлам
  • Уязвимости в Zoom позволяли хакерам получить доступ к аккаунту пользователя
  • "Белый квадрат" объявил программу фестиваля 2021 года
  • XII "Белый квадрат" объявил победителей
  • Mastercard увеличивает сумму для бесконтактной оплаты покупок без ПИН-кода в 29 странах
  • Компания "Делойт" приглашает беларуские IT-компании присоединиться к инициативе Code Club - бесплатных уроков по программированию для детей
  • БГУ приглашает на курсы для программистов, экономистов, специалистов по защите информации
  • Каким будет беларуский портал открытых данных?
  • ESET: Средства с банковских счетов теперь можно украсть новым способом
  • Исследователи ESET обнаружили новые образцы шпионского софта разработчика Hacking Team
  • Новый Vivaldi 1.11 уже доступен для скачивания
  • Конференция CSS-Minsk-JS пройдет 10 сентября в отеле Ренессанс
  • Vivaldi 1.8. Обзор финальной версии. «Вспомнить всё»…
  • Mozilla усовершенствует браузерные игры с помощью WebAssembly



  • ITквариат Powered by © 1996-2025 16+