На хабре уже писали о модуле выбора браузера для европейских пользователей: «Модуль выбора браузеров появляется в качестве обновлений Windows. Сразу показывается пять самых популярных (Apple Safari, Google Chrome, Microsoft Internet Explorer, Mozilla Firefox и Opera). Причем в случайном порядке.»
Как выяснили ребята со словацкого сайта DSL.sk, у модуля большие проблемы именно со случайным порядком вывода браузеров. Страница, с помощью которой предпологается выполнять требования Евросоюза, не выводит список браузеров в случайном порядке, как предполагалось. Вместо общепринятых алгоритмов используется наихудший вариант реализации перемешивания списка браузеров через сортировку массива с функцией сравнения, возвращающей случайный результат. Из-за этого вместо равновероятного размещения браузеров в списке получается смещённое. Таким образом, для IE вероятность оказаться на последнем месте первой страницы почему-то оказалась наибольшей (~50%)! Однако при этом он всегда показывается изначально на первом месте, и только после окончания «перемешивания» меняет своё местоположение. Что интересно, указанный выше алгоритм выдаётся первым при поиске по «javascript randomize array» как в google, так и в bing :)
Технические подробности расследования (на английском).
P.S.: Как подсказал naum код на странице поправили.
Как выяснили ребята со словацкого сайта DSL.sk, у модуля большие проблемы именно со случайным порядком вывода браузеров. Страница, с помощью которой предпологается выполнять требования Евросоюза, не выводит список браузеров в случайном порядке, как предполагалось. Вместо общепринятых алгоритмов используется наихудший вариант реализации перемешивания списка браузеров через сортировку массива с функцией сравнения, возвращающей случайный результат. Из-за этого вместо равновероятного размещения браузеров в списке получается смещённое. Таким образом, для IE вероятность оказаться на последнем месте первой страницы почему-то оказалась наибольшей (~50%)! Однако при этом он всегда показывается изначально на первом месте, и только после окончания «перемешивания» меняет своё местоположение. Что интересно, указанный выше алгоритм выдаётся первым при поиске по «javascript randomize array» как в google, так и в bing :)
Технические подробности расследования (на английском).
P.S.: Как подсказал naum код на странице поправили.