По мотивам доклада «Современный станок верстальщика»
Давно пора свыкнуться с мыслью, что некоторые вещи в этом мире нельзя изменить. Одна из таких вещей — зоопарк браузеров, который встречается при поддержке проектов. Странная тенденция: есть стандарты и спецификации, но с каждым годом браузеров становиться всё больше. Может дело в инертности пользователей, может в вендорах, которые только сейчас задумались над автообновлением своих продуктов. Но по словам Яндекса картина на май 2012 выглядит так:
Мы не Яндекс, поэтому нет необходимости смотреть на несвежие версии Chrome/Firefox/Opera в виду отсутствие сил и времени, но от этого сильно легче не становится: Chrome 20, IE 6–9, Firefox 14, Opera 12. Итого 7 браузеров, каждый из которых в какой-то мера надо поддерживать. Опыт использование IETester и подобных программ для запуска разных версии Internet Explorer крайне отрицательный, не один раз наступал на разваливающуюся верстку в IETester в режиме IE 7, однако в самом Internet Explorer всё было в порядке. Поэтому для проверки верстки использую непосредственно нужный браузер, а не его эмуляцию.
Можно по-разному организовать виртуализацию IE. Например, две виртуальныe машины: в первой Windows XP и через Snapshot сохранены состояния, когда был установлен IE 6, IE 7 и IE 8; а во второй виртуальной машине Windows 7 для IE 9. Плюсы — экономия места, достаточно легко просто переключиться, хотя в Parallel Desktop переключение между контрольными точками не происходит мгновенно. Минус не очевиден, но очень важен: нельзя изменять что-то в виртуальной машине, при переключении на другую версию браузера (контрольную точку) будут произведен полный откат всех изменений, т.е. нельзя установить сниффер, внести новую запись в hosts или изменить параметры сети. Машина с IE 6–8 находится в замороженном состоянии и не подлежит изменению. Второй вариант — каждый браузер (Internet Explorer) в отдельной виртуальной машине. Плюс: виртуальная машина находится не в замороженном состоянии. Минусы: минимум четыре виртуальные машины, одновременная проверка в двух версиях IE — невероятно затратно.
Еще один вариант — портативные версии нужных браузеров. В Яндексе для виртуализации приложений используют Novell ZENWorks Application Virtualisation, я воспользовался VMWare ThinApp. Процесс долгий, но понятный: берём Windows XP SP2 витуализируем IE 6. Ставим Service Pack 3, вместе с ним получаем IE 7, виртуализируем его. Устанавливаем все доступные обновления из Windows Update, еще один раз запускаем VMWare ThinApp и виртуализируем IE 8. Не всё получилось с первого раза, особенно IE 9 не хотел поддаваться и зависал при попытках открыть любую страницу. Но результат того стоит — одна виртуальная машина со всеми нужными браузерами.