Megakote Веб-разработчик

Виртуализация браузеров или как запустить несколько версий Internet Explorer

По мотивам доклада «Современный станок верстальщика»

Давно пора свыкнуться с мыслью, что некоторые вещи в этом мире нельзя изменить. Одна из таких вещей — зоопарк браузеров, который встречается при поддержке проектов. Странная тенденция: есть стандарты и спецификации, но с каждым годом браузеров становиться всё больше. Может дело в инертности пользователей, может в вендорах, которые только сейчас задумались над автообновлением своих продуктов. Но по словам Яндекса картина на май 2012 выглядит так:

Добавляем надавно вышедшие Chrome 19/20, Firefox 13/14 и Opera 12.00 — получаем 28 браузеров

Мы не Яндекс, поэтому нет необходимости смотреть на несвежие версии 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 не хотел поддаваться и зависал при попытках открыть любую страницу. Но результат того стоит — одна виртуальная машина со всеми нужными браузерами.

Ссылки на портативные версии браузеров

  1. Chrome 20.0.1132.57
  2. Internet Explorer 6
  3. Internet Explorer 7
  4. Internet Explorer 8
  5. Internet Explorer 9
  6. Mozilla Firefox 14.0.1
  7. Opera 12.00
comments powered by Disqus