Разработчики из «Яндекса» в своём блоге на «Хабре» рассказали о том, как встроили движок Internet Explorer в «Яндекс Браузер» для организаций (причём речь о 32-битном движке для 64-битного веб-обозревателя). Сама задумка реализации такого проекта выросла из проблемы — старые корпоративные веб-приложения зависят от Internet Explorer, поскольку были разработаны под него с использованием технологии ActiveX. Нюанс современных браузеров в том, что различия в обработке HTML/CSS и JavaScript приводят к проблемам с вёрсткой и работой приложений в целом — режимы совместимости и подмена User-Agent помогают не всегда и не во всём. В то же время такие ActiveX-системы под Internet Explorer трудно и дорого переписывать, особенно в финансовом секторе, где стабильность важнее обновлений.
Чтобы улучшить ситуацию, «Яндекс» и решил встроить сам движок в свой браузер — чтобы его можно было использовать как с современными веб-приложениями, так и с устаревшими. Это полезно не только для удобства конечных юзеров, но и для упрощения инфраструктуры организаций и снижения затрат на её поддержку.
Задумку реализовали в три этапа. Прежде всего создали IEWindow — отдельное окно под движок Internet Explorer, реализованное через интерфейс IWebBrowser2 из библиотеки ieframe.dll. В него добавили стандартные элементы, такие как кнопки «Назад», «Вперёд» и «Обновить», заголовок страницы и прочее. Затем интерфейс встроили непосредственно в «Яндекс Браузер», обеспечив бесшовную интеграцию между вкладками — независимо от того, используют ли они движок IE или Chromium. Третий этап стал не менее важным — речь о добавлении поддержки технологии ActiveX (в том числе для реализации мультимедиа и подключения к базам данных), то есть 32-битные компоненты подружили с 64-битным браузером. Поверх всего этого реализовали различные слои безопасности, среди которых ограничение доступа ActiveX-компонентов к ресурсам системы.
Технические подробности можно найти в блоге.