Обновление GeckoFX для Gecko 2.0? - PullRequest
4 голосов
/ 23 марта 2011

Я был очень взволнован, когда я нашел 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 (и нет, я не могу получить более описательный, чем это, потому что это все сообщения об ошибках и трассировки стека!). Было много головокружительных и бессмысленных поисков в Google, поскольку кажется, что никто еще не запустил встроенный Firefox 4.

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

Ответы [ 2 ]

2 голосов
/ 31 марта 2011

В отсутствие более глубокой помощи, я нашел время, чтобы покопаться и разобраться во всем самостоятельно. Уловка была в понимании 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 'Lizard . По сути, это ответвление исходного кода Skybound.Gecko, распространяемое по тем же лицензиям с открытым исходным кодом.

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

0 голосов
/ 13 апреля 2011

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

...