23-летний кодер изгнал призраков, вселившихся в Firefox более 20 лет назад

23-летний кодер изгнал призраков, вселившихся в Firefox более 20 лет назад

23-летний кодер изгнал призраков, вселившихся в Firefox более 20 лет назад

В начале прошлого месяца в код Firefox, отвечающий за всплывающие подсказки ссылки, были внесены изменения с целью устранения бага, известного с 2002 года. Фикс включен в сборку 119 браузера, выпуск которой намечен на 24 октября.

Проблему, которой был присвоен ID 148624, зарегистрировал в Bugzilla пользователь Juneappal (Adam Price), владелец macOS-компьютера с установленным браузером Mozilla. Прайсу надоели tooltip-подсказки, появлявшиеся при наведении курсора на закладку и подвисавшие при переходе в окно другого приложения.

 

Избавиться от них можно было, лишь сдвинув курсор и вернувшись в браузер. Впоследствии этот же баг пытались зарегистрировать и другие пользователи Firefox; иногда он проявлялся также на Windows- и Linux-платформах.

Поскольку фантомные подсказки не нарушали работу Firefox, а только вызывали раздражение, решение проблемы каждый раз откладывалось. Когда с ней столкнулся 23-летний выпускник Стэнфорда И Фань Чжу (Yifan Zhu), оказалось, что они почти ровесники.

Молодой человек был заинтригован и решил попробовать исправить ситуацию, благо лето и впереди куча свободного времени. Программированию Чжу был обучен, но никогда не имел дело с такими сложными проектами, как Firefox.

Первый блин оказался комом, хотя новичку-энтузиасту помогли детализировать патч и оформить коммит. Вторая попытка, тоже с посторонним участием, оказалась более удачной. Предложение Чжу было принято, соответствующие исправления внесены в код Firefox 119, который сейчас проходит бета-тестирование.

В соцсетях по этому поводу появились восторженные отзывы. Некоторые начали отпускать шутки вроде «а Bugzilla-то постарше бага будет, ей в августе стукнуло 25» и «фикс отнял добычу у ботов, собравшихся удалить неисправленный баг за давностью». Один комментатор описал жизненный путь борца за чистоту кода следующим образом:

«Наверно, он столкнулся с багом, еще когда был ребенком. Это задело его за живое, он пошел в университет, чтобы научиться программированию, окончил его, создал аккаунт и все пофиксил. Цель жизни исчерпана».

Новые файлы в Windows могут наследовать дату старых, но это не баг

Создали новый файл, открыли его свойства, а Windows уверяет, что он появился вчера? Нет, система не сошла с ума. Это File System Tunnelling — файловое туннелирование, которое Windows использует уже несколько десятилетий, объяснил один из специалистов Microsoft.

Как выяснили в Windows Latest, после удаления или переименования файла система ненадолго сохраняет его метаданные в специальном кеше.

Если в той же папке быстро создать новый файл с прежним именем, он может унаследовать дату создания предшественника и соответствие между длинным и коротким именами.

По умолчанию метаданные хранятся около 15 секунд. Само содержимое удалённого файла при этом не воскресает, только дата и служебная информация.


Механизм появился не ради издевательства над пользователями. Многие программы сохраняют документы безопасным способом: создают временный файл с изменениями, удаляют оригинал, а затем переименовывают временный файл. Без туннелирования Windows считала бы такой документ совершенно новым и каждый раз меняла дату его создания.

Вторая причина тянется прямиком из эпохи DOS и 16-битных приложений. Старые программы работали с короткими именами формата 8.3, поэтому Windows требовалось сохранять связь между ними и привычными длинными названиями файлов.

Туннелирование срабатывает при определённых сочетаниях удаления, создания и переименования файлов в одной папке. Кеш временный и постепенно очищается, поэтому документ, удалённый месяц назад, внезапно не передаст свою дату новому тёзке.

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

RSS: Новости на портале Anti-Malware.ru