Обновление GeckoFX для Gecko 2.0?

Я был очень взволнован, когда нашел GeckoFX в прошлом месяце. Мой работодатель хочет распространять встроенный браузер с нашим настольным приложением (чтобы сгладить переход от настольных приложений к веб-приложениям), и возможность использовать Gecko вместо IE была чудом!

Последние версии GeckoFX, которые я могу найти, используют версии 1.9.1 и 1.9.2 движка Gecko (Xulrunner). Это прекрасно работает, но в нем отсутствует множество полезных функций, которые поставлялись с Firefox 4 (Gecko 2.0) на этой неделе.

У меня уже есть дистрибутив Xulrunner 2.0, но GeckoFX не будет работать с ним из коробки. Некоторые из API XPCOM изменились, и я уверен, что есть много других мелких несовместимостей. Я бы сказал, что это должно быть легко исправить, но я не разработчик C++, поэтому понятия не имею.

То, что я ищу прямо сейчас, является одним из следующих, в порядке предпочтения:

  1. Уже встроенное обновление GeckoFX, совместимое с Xulrunner 2.0.
  2. Еще одно решение, которое позволяет мне встроить веб-браузер на базе Gecko в приложение C# для Windows.
  3. Совет о том, с чего начать обновлять GeckoFX самостоятельно (под советом я подразумеваю совет «держи меня за руку и разговаривай со мной, как будто я 6»)

Просто копаться в коде и пытаться разобраться во всех ошибках не помогает. Я продолжаю получать InvalidCastException при попытке создать экземпляр nsIWebBrowser (и нет, я не могу получить более подробное описание, потому что это все сообщение об ошибке и трассировка стека!). Было много головоломок и бессмысленного гугления, поскольку кажется, что никто еще не выпустил встроенный Firefox 4.

Идеи? Предложения?


person EAMann    schedule 23.03.2011    source источник
comment
Я не могу просматривать указанный ниже веб-сайт с помощью Gecko Wrapper для .net. premier.ticketek.com.au/shows/show.aspx?sh= KYLIEMIN11 Пожалуйста, помогите мне, это срочно для меня. Если возможно, предоставьте мне пример приложения, которое может запустить эту ссылку выше. Спасибо.   -  person    schedule 09.04.2011
comment
Адил. Если у вас возникла проблема со службой поддержки или вы столкнулись с конкретной ошибкой, сообщите о ней как о проблеме на сайте Google Code =› code.google.com/p/leapin-lizard/issues/list. Тем не менее, пожалуйста, будьте более четкими в своем запросе. Ссылка прекрасно работает с использованием Gecko Wrapper, и я обеспокоен тем, что вы можете попросить кого-нибудь сделать работу по созданию приложения для вас.   -  person EAMann    schedule 12.04.2011


Ответы (2)


В отсутствие более глубокой помощи я нашел время, чтобы копаться и разбираться во всем самостоятельно. Хитрость заключалась в том, чтобы понять ComImport, чего я раньше не использовал.

Оказывается, Mozilla изменила идентификаторы GUID некоторых методов API, предоставляемых XPCOM. Самое главное, GUID для nsIWebBrowser изменился с 69E5DF00-7B8B-11d3-AF61-00A024FFC08C на 33e9d001-caab-4ba9-8961-54902f197202.

Внесение этого единственного изменения в nsInterfaces.cs на самом деле немного исправило ситуацию.

Построчное рассмотрение и согласование ошибок сборки (несмотря на загадочные сообщения об ошибках) позволило мне закончить систему и создать сборку, которая действительно запускает XULRunner 2.0.

К сожалению, возможность собрать и запустить Gecko 2 и раскрыть весь API — это две большие разницы. Я создал проект в Google Code, чтобы полностью переписать GeckoFX для Gecko 2: Leapin' Ящерица. По сути, это форк исходного кода Skybound.Gecko, распространяемый под теми же лицензиями с открытым исходным кодом.

Итак, теперь у меня есть сборка GeckoFX, совместимая с XULRunner 2.0. Его просто нужно отполировать.

person EAMann    schedule 31.03.2011
comment
Столкнулся с той же проблемой, где скачать Leapin' Lizard? поскольку страница кода Google не показывает загрузок... - person Kushal; 01.04.2011
comment
Проверьте код с помощью Mercurial. Вы хотите использовать ветку Gecko 2.0. Как только я закончу очистку кода (целые фрагменты XPCOM API отсутствуют), я опубликую сборку в виде загружаемого ZIP-файла. На данный момент, к сожалению, вам придется проверить код и собрать его самостоятельно. - person EAMann; 01.04.2011
comment
Спасибо, с нетерпением жду светлого будущего приложений, использующих Gecko поверх .NET. ;-) - person Kushal; 01.04.2011
comment
Я планирую добавить поддержку xulrunner 2.0 в свою кросс-платформенную вилку geckofx, bitbucket.org/geckofx/geckofx Ваши изменения выглядят хорошим началом. Есть идеи, насколько они полны? - person Tom; 13.04.2011
comment
Я, может быть, 25% пути через API. Я также добавляю много документации, чтобы упростить разработку библиотеки. К сожалению, он огромен и пока не имеет полной поддержки DOM для HTML5. Это в списке дел, просто это займет время. - person EAMann; 13.04.2011

На данный момент нет предварительно скомпилированной библиотеки, обертывающей XulRunner 4.0. Я автор MozNET, оболочки Mozilla, которая на самом деле активно разрабатывается. У меня есть полурабочая сборка с использованием XulRunner 2.0, но она еще не завершена. Из-за изменений, внесенных в XulRunner 2.0, есть еще масса изменений, чтобы сделать MozNET полностью совместимым с новой сборкой. На данный момент у меня есть полная поддержка просмотра, почти полный доступ к объектам DOM и полная поддержка проверки орфографии. Сборка находится в стадии разработки, так как я все еще поддерживаю MozNET 1.9.2.17.

person user257033    schedule 13.04.2011
comment
Просто чтобы вы знали, ваш веб-сайт (поддерживающий MozNET) постоянно истекает, когда я пытаюсь зайти на него. И я рассматривал вашу библиотеку, но без поддержки XulRunner 2.0 она не очень подходит для моих нужд... поэтому вместо этого я накатил свою. К сожалению :-( - person EAMann; 13.04.2011