Полезная информация

Mozilla Россия — свежие версии программ Mozilla, а также масса полезной информации по каждому продукту.

№109-10-2008 13:03:08

Yakovchuck
Участник
 
Группа: Members
Зарегистрирован: 09-10-2008
Сообщений: 21
UA: IE 7.0

Перевод расширения на Gecko 1.9

Срочно нужна помощь по следующему вопросу.

При переводе расширения для FF3 установил Gecko 1.9

В результате стала выдаваться ошибка
'NS_NewGenericModule2': identifier not found

Отсутствует

 

№209-10-2008 13:07:05

Shutnik
Участник
 
Группа: Extensions
Зарегистрирован: 12-11-2005
Сообщений: 3785
UA: Iceweasel 3.0

Re: Перевод расширения на Gecko 1.9

При переводе расширения для FF3 установил Gechko 1.9

Gecko 1.9 в Fx 3.0 уже включен

Отсутствует

 

№309-10-2008 13:19:07

Yakovchuck
Участник
 
Группа: Members
Зарегистрирован: 09-10-2008
Сообщений: 21
UA: IE 7.0

Re: Перевод расширения на Gecko 1.9

Уточнияю.

Существовало дополнение на основе Gechko 1.8 прекрасно работающее в FF версии до 3. Теперь встала задча пределать его для FF3.
В результате после замены библиотек выдаётся вышеописанная ошибка.

Отсутствует

 

№409-10-2008 15:22:23

Shutnik
Участник
 
Группа: Extensions
Зарегистрирован: 12-11-2005
Сообщений: 3785
UA: Iceweasel 3.0

Re: Перевод расширения на Gecko 1.9

Существовало дополнение на основе Gechko 1.8 прекрасно работающее в FF версии до 3.

что такое Gechko? Gecko?

Теперь встала задча пределать его для FF3.

переделывайте

В результате после замены библиотек выдаётся вышеописанная ошибка.

замены каких библиотек? где?
Gecko 1.8 уже включен в Firefox 2.0, Gecko 1.9 - в Firefox 3.0

Отсутствует

 

№510-10-2008 07:31:56

Yakovchuck
Участник
 
Группа: Members
Зарегистрирован: 09-10-2008
Сообщений: 21
UA: IE 7.0

Re: Перевод расширения на Gecko 1.9

Дополнение написано на С++ и является тулбаром. Для этого используётся конструкции из Gecko 1.8. Но с Gecko 1.9 проект не собирается. Выдаётся вышеописанная ошибка. Хотя в принципе NS_NewGenericModule2 - внутреняя функция в gechko. В проекте используется макрос NS_IMPL_NSGETMODULE - на него и указывает ошибка.

#include "StdAfx.h"
#include "nsigenericfactory.h"
#include "nsHandyPassword.h"

NS_GENERIC_FACTORY_CONSTRUCTOR(nsHandyPassword)

static nsModuleComponentInfo components[] =
{
    {
       HANDYPASSWORD_CLASSNAME,
       HANDYPASSWORD_CID,
       HANDYPASSWORD_CONTRACTID,
       nsHandyPasswordConstructor
    }
};

NS_IMPL_NSGETMODULE("nsHandyPassworModule", components)

Добавлено 10-10-2008 07:35:55
Также прилинковал следующие библиотеки:
plds4.lib
plc4.lib
xpcomglue_s.lib
xpcom.lib
nspr4.lib

Отсутствует

 

№610-10-2008 08:50:54

Yakovchuck
Участник
 
Группа: Members
Зарегистрирован: 09-10-2008
Сообщений: 21
UA: IE 7.0

Re: Перевод расширения на Gecko 1.9

После установки препроцессору XPCOM_GLUE 1 как указано в
http://developer.mozilla.org/en/XPCOM_Glue
стали выдаваться следующие ошибки:

error LNK2001: unresolved external symbol "public: void __thiscall nsCOMPtr_base::assign_from_qi(class nsQueryInterface,struct nsID const &)" (?assign_from_qi@nsCOMPtr_base@@QAEXVnsQueryInterface@@ABUnsID@@@Z)

error LNK2019: unresolved external symbol "public: void __thiscall nsCOMPtr_base::assign_from_qi(class nsQueryInterface,struct nsID const &)" (?assign_from_qi@nsCOMPtr_base@@QAEXVnsQueryInterface@@ABUnsID@@@Z) referenced in function "public: __thiscall nsCOMPtr<class nsIDOMNode>::nsCOMPtr<class nsIDOMNode>(class nsQueryInterface)" (??0?$nsCOMPtr@VnsIDOMNode@@@@QAE@VnsQueryInterface@@@Z)

error LNK2001: unresolved external symbol "public: void __thiscall nsCOMPtr_base::assign_from_qi(class nsQueryInterface,struct nsID const &)" (?assign_from_qi@nsCOMPtr_base@@QAEXVnsQueryInterface@@ABUnsID@@@Z)

error LNK2001: unresolved external symbol "public: void __thiscall nsCOMPtr_base::assign_from_qi(class nsQueryInterface,struct nsID const &)" (?assign_from_qi@nsCOMPtr_base@@QAEXVnsQueryInterface@@ABUnsID@@@Z)

error LNK2001: unresolved external symbol "public: void __thiscall nsCOMPtr_base::assign_from_qi(class nsQueryInterface,struct nsID const &)" (?assign_from_qi@nsCOMPtr_base@@QAEXVnsQueryInterface@@ABUnsID@@@Z)

error LNK2019: unresolved external symbol "public: wchar_t const * __thiscall nsAString::BeginReading(void)const " (?BeginReading@nsAString@@QBEPB_WXZ) referenced in function "public: wchar_t const * __thiscall nsString_external::get(void)const " (?get@nsString_external@@QBEPB_WXZ)

error LNK2001: unresolved external symbol "public: wchar_t const * __thiscall nsAString::BeginReading(void)const " (?BeginReading@nsAString@@QBEPB_WXZ)

error LNK2019: unresolved external symbol "public: void __thiscall nsCOMPtr_base::assign_with_AddRef(class nsISupports *)" (?assign_with_AddRef@nsCOMPtr_base@@QAEXPAVnsISupports@@@Z) referenced in function "public: class nsCOMPtr<class nsIDOMHTMLCollection> & __thiscall nsCOMPtr<class nsIDOMHTMLCollection>::operator=(class nsCOMPtr<class nsIDOMHTMLCollection> const &)" (??4?$nsCOMPtr@VnsIDOMHTMLCollection@@@@QAEAAV0@ABV0@@Z)

error LNK2001: unresolved external symbol "public: void __thiscall nsCOMPtr_base::assign_with_AddRef(class nsISupports *)" (?assign_with_AddRef@nsCOMPtr_base@@QAEXPAVnsISupports@@@Z)
nsSmartFiller.obj : error LNK2001: unresolved external symbol "public: void __thiscall nsCOMPtr_base::assign_with_AddRef(class nsISupports *)" (?assign_with_AddRef@nsCOMPtr_base@@QAEXPAVnsISupports@@@Z)

error LNK2001: unresolved external symbol "public: void __thiscall nsCOMPtr_base::assign_with_AddRef(class nsISupports *)" (?assign_with_AddRef@nsCOMPtr_base@@QAEXPAVnsISupports@@@Z)

error LNK2019: unresolved external symbol "unsigned int __cdecl NS_TableDrivenQI(void *,struct QITableEntry const *,struct nsID const &,void * *)" (?NS_TableDrivenQI@@YAIPAXPBUQITableEntry@@ABUnsID@@PAPAX@Z) referenced in function "public: virtual unsigned int __stdcall nsHandyPassword::QueryInterface(struct nsID const &,void * *)" (?QueryInterface@nsHandyPassword@@UAGIABUnsID@@PAPAX@Z)

error LNK2019: unresolved external symbol "unsigned int __cdecl NS_NewGenericModule2(struct nsModuleInfo const *,class nsIModule * *)" (?NS_NewGenericModule2@@YAIPBUnsModuleInfo@@PAPAVnsIModule@@@Z) referenced in function _NSGetModule

Отсутствует

 

№710-10-2008 14:27:07

Yakovchuck
Участник
 
Группа: Members
Зарегистрирован: 09-10-2008
Сообщений: 21
UA: IE 7.0

Re: Перевод расширения на Gecko 1.9

Проблема решена.
Нужно было препроцессору установить:
XPCOM_GLUE_USE_NSPR
MOZILLA_STRICT_API
XP_WIN
XP_WIN32

Добавлено 10-10-2008 14:29:22
Только в FireFox не хочет регистрироваться.
Выдаёт:
«Моё расширение» не будет установлен, так как он не обеспечивает безопасные обновления

Добавлено 10-10-2008 14:30:35
Я впринципе расчитывал что достаточно перекомпилировать с Gecko 1.9

Отсутствует

 

№810-10-2008 15:27:41

Fenimor
Участник
 
Группа: Members
Зарегистрирован: 10-10-2008
Сообщений: 2
UA: Opera 9.0

Re: Перевод расширения на Gecko 1.9

Yakovchuck пишет

Проблема решена.
Нужно было препроцессору установить:
XPCOM_GLUE_USE_NSPR
MOZILLA_STRICT_API
XP_WIN
XP_WIN32

Добавлено 10-10-2008 14:29:22
Только в FireFox не хочет регистрироваться.
Выдаёт:
«Моё расширение» не будет установлен, так как он не обеспечивает безопасные обновления

Тут об этом:
http://developer.mozilla.org/en/Extension_Versioning%2c_Update_and_Compatibility#Securing_Updates
Коротко говоря, теперь в updateURL должен использоваться https, или можно сделать хэш-подпись...

Отсутствует

 

№914-10-2008 13:06:26

Yakovchuck
Участник
 
Группа: Members
Зарегистрирован: 09-10-2008
Сообщений: 21
UA: IE 7.0

Re: Перевод расширения на Gecko 1.9

Сообщение в кщнсоли FireFox 3.0.3
Ошибка: [Exception... "Component returned failure code: 0x80570018 (NS_ERROR_XPC_BAD_IID) [nsIJSCID.getService]"  nsresult: "0x80570018 (NS_ERROR_XPC_BAD_IID)"  location: "JS frame :: chrome://handypassword/content/handypassword.js :: InitHPFiller :: line 1199"  data: no]
Источник: chrome://handypassword/content/handypassword.js
Строка: 1199

Может кто в курсе что за ошибка и как с ней бороться.
Заранее спасибо!

Добавлено 14-10-2008 13:35:28
Что характерно, в FF2 такой ошибки не возникает

Отсутствует

 

№1014-10-2008 14:32:22

Yakovchuck
Участник
 
Группа: Members
Зарегистрирован: 09-10-2008
Сообщений: 21
UA: IE 7.0

Re: Перевод расширения на Gecko 1.9

Собственно вот код, где возникает ошибка:   
const accServiceID = '@mozilla.org/accessibilityService;1';
const accServiceIF = Components.interfaces.nsIAccessibilityService;
const accService = Components.classes[accServiceID].getService(accServiceIF); - кокретно указывает на эту строку
var   acc = accService.getAccessibleFor(window.content.document);
var dom_window = acc.QueryInterface(Components.interfaces.nsIAccessibleDocument);

Отсутствует

 

№1115-10-2008 15:20:56

Yakovchuck
Участник
 
Группа: Members
Зарегистрирован: 09-10-2008
Сообщений: 21
UA: IE 7.0

Re: Перевод расширения на Gecko 1.9

Перепробовал всё - ничего не помогает !!!
Может это глюк самого FireFox?

Отсутствует

 

№1216-10-2008 11:40:11

Yakovchuck
Участник
 
Группа: Members
Зарегистрирован: 09-10-2008
Сообщений: 21
UA: IE 7.0

Re: Перевод расширения на Gecko 1.9

попробовал такой вариант
var Service = Components.classesByID["{DE401C37-9A7F-4278-A6F8-3DE2833989EF}"];
таже самая ошибка, хотя DE401C37-9A7F-4278-A6F8-3DE2833989EF указано в самом nsIAccessibilityService.h

Отсутствует

 

№1320-10-2008 07:39:09

Yakovchuck
Участник
 
Группа: Members
Зарегистрирован: 09-10-2008
Сообщений: 21
UA: IE 7.0

Re: Перевод расширения на Gecko 1.9

Проблема решена.
Дело в том, что nsIAccessibilityService больше не является scriptable, вместо него следует использовать nsIAccessibleRetrieval.

Отсутствует

 

№1423-10-2008 18:10:02

StepanM
Участник
 
Группа: Members
Зарегистрирован: 23-10-2008
Сообщений: 4
UA: unknown 0.0

Re: Перевод расширения на Gecko 1.9

Уважаемый Яковчук!

Удалось ли таким образом решить проблему в nsAString::BeginReading?
У меня не решается. Сравнил заголовочные файлы для работы со строками в версиях 1.9.0.3 и 1.8.0.4. Выяснил, что раньше BeginReading была inline :). Скопировал реализацию в новую версию nsStringAPI.h и все собралось и даже правильно работает. Но что-то мне подсказывает, что это нечестный способ.

Кстати для работы всего остального достаточно двух макросов XP_WIN и XP_WIN32, а также только трех lib'ок (nspr4, xpcom, xpcomglue_s). Ну это для того, чтобы разрешить все Ваши unresolved ссылки (может, кроме nsHandyPassword - про него ничего не знаю).

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]