Internet Explorer на основе управления WPF страдает WebBrowser от некоторых клавишных и фокусных вопросов и проблем утечки памяти . В качестве альтернативного решения этих проблем мы рассматриваем доступные варианты размещения Chromium вместо элемента управления WebBrowser в нашем проекте WPF / C #, основанном на редактировании HTML. Подобные вопросы были заданы здесь ранее. Я прочитал ответы и провел собственное исследование, но я надеюсь получить больше отзывов от людей, которые фактически использовали любой из следующих вариантов в проектах производственного качества :
Это выглядит очень уместно, но мне не нравится тот факт, что проект не с открытым исходным кодом, а полный исходный код не так легко получить. Кроме того, это может быть излишним для нашего проекта, так как закадровый рендеринг - это не то, от чего мы действительно зависим.
Привязки Chromium Embedded Framework (CEF) и .NET для CEF
Это, вероятно, лучший вариант из доступных на данный момент. Проект кажется живым и активным, в настоящее время синхронизирован с Chrome v27. CEF3 использует многопроцессную архитектуру Chrome. Это также выглядит как Adobe дает ему некоторую поддержку .
Хотя первоначальная цель заключалась в том, чтобы быть плагином HTML5 для IE и Firefox, на самом деле он также работает как автономный элемент управления ActiveX, поэтому я мог обернуть его для использования с WPF. Он предоставляет достаточный API для взаимодействия с внутренней веб-страницей ( onmessage, addEventListener/removeEventListener, postMessage
). Я знаю, что Google должен прекратить Chrome Frame, но я предполагаю, что источники останутся в хранилище Chromium. Не должно быть сложностей обновить его последним кодом Chromium, и мы будем иметь полный контроль над этим.
Не совсем на основе хрома и не использует двигатель V8, так что это на самом деле не вариант.
Есть ли другой вариант, который я мог упустить из виду?
Я был бы очень признателен, если бы кто-то поделился своим опытом с любым из вышеперечисленных вариантов для реального проекта WPF производственного качества. Были ли у вас какие-либо последствия для интеграции, лицензирования или развертывания? Спасибо.
[ИЗМЕНЕНО] Я также хотел бы поблагодарить artlung за поддержку этого вопроса, предоставив щедрое предложение за вознаграждение.