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

Общайтесь со знакомыми и друзьями в нашем сообществе в Facebook.

Разработка » Failed to load XPCOM component » 23-08-2009 21:31:41

malor пишет

Какие задачи вами возлагались на XPCOM-компонент и на COM-сервер ? :sick:

В com находится реализация основной фукнциональности, а XPCOM я использую, т.к. не знаю как иначе обратится к com объекту написанному ранее из расширения Firefox. Если кто-нибудь знает как это сделать проще буду очень презнателен.

Crazy-EyE пишет

Может используется C++ Runtime (msvcrt или как там её) с динамической линковкой? Тогда в XP, где стоит Visual Studio, все работает, т.к. есть нужные динамические библиотеки, а в висте их нет.

Возможно. Может кто-нибудь подскажет где это посмотреть и точно убедится статическая или динамическая линковка и потом выставить статически если нужно ? Я использую Visual Studio 2005.

Разработка » Failed to load XPCOM component » 03-08-2009 14:21:47

Добрый день,

такая проблема - после инсталляции расширения в FF под Вистой в консоли появляется сообщение Failed to load XPCOM component - соответственно моё расширение не работает. В XP всё проходит отлично. В чём может быть дело?
Я использую XPCOM компоненту для взаимодействия расширения с внешним модулем реализованным в в виде DLL c com сервером

Заранее спасибо.

Разработка » Автоматический Enable тулбара » 27-05-2009 13:58:05

У меня в XUL фалй был следующий код

Выделить код

Код:

<toolbox id="navigator-toolbox">
  <toolbar class = "chromeclass-directories"
	id="my_bar"
	toolbarname="Toolbar"
	tbautostretch="always"
	allowevent="true"
	context="toolbar-context-menu"
        persist="collapsed"
        collapsed="false">

Тулбар автоматически после установки не появляется, добалвял аттрибут hidden="false", тот же результат

Разработка » Автоматический Enable тулбара » 15-04-2009 15:41:05

Здраствуйте,

Есть реализованный под FF тулбар, но проблема состоит в том, что после установки расширения для его появления необходимо зайти в Вид->Панели инструментов и там сделать активным. Необходимо это сделать автоматически без участия пользователя.

Заранее спасибо за любые идеи и коментарии.

Разработка » Не регистрируется XPCOM » 05-11-2008 09:12:00

код то там не маленький, а кусок я даже не знаю какой выложить.
Просто я считал, что из-за кода такой ошибки не должно быть. Просто выдаст ошибку другую, или в крайнем случае FireFox упадёт.
Может быть такое елси там используется интрефейс закрытый в тройке? Если да то как его быстро выявить?

Разработка » Не регистрируется XPCOM » 31-10-2008 12:35:18

Всем здраствуйте.

XPCOM компонента прекрасно регистрируется и работает в FireFox 3. Решил проверить работу расширения на FireFox 2. Здесь выдаётся предупреждение
MyExtension is unable to initialize a toolbar.
Reason: Cannot register component

В консоле ошибок появляется следующая запись:
Ошибка: Components.classes[contractid] has no properties
Источник: chrome://MyExtension/content/MyExtension.js
Строка: 1411

При этом я не использовал никаких новых возможностей FireFox 3, отсутствующих в двойке.

В чём может быть причина этого или хотя бы в каком направлении мне смотреть?

Разработка » getAccessibleFor(window.content.document) даёт null » 26-10-2008 21:21:27

Доброго врмени суток,

В XUL файле есть следующее описание тулбара:
<toolbox id="navigator-toolbox">
        <toolbar class = "chromeclass-directories"
                id="bar"
                toolbarname="Toolbar"
                persist="collapsed"
                tbautostretch="always"
                allowevent="true"
                context="toolbar-context-menu"
                collapsed="false">
    <observes element="bar" attribute="collapsed"
onbroadcast="ToolbarCollapsedEventHandler();" /> - in XUL file

так вот в js файле в функции ToolbarCollapsedEventHandler(); при вызове getAccessibleFor(window.content.document); возвращается null при загрузке FireFox.

Как-нибудь можно это обойти?

Разработка » Перевод расширения на Gecko 1.9 » 20-10-2008 07:39:09

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

Разработка » Перевод расширения на Gecko 1.9 » 16-10-2008 11:40:11

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

Разработка » Перевод расширения на Gecko 1.9 » 15-10-2008 15:20:56

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

Разработка » Перевод расширения на Gecko 1.9 » 14-10-2008 14:32:22

Собственно вот код, где возникает ошибка:   
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);

Разработка » Не работает простой скрипт » 14-10-2008 13:29:22

Да всё уже испраивл - там синтаксическая и была. Только этот премер я для теста делал. А само расширение теперь выдаёт ошибку не синтаксическу. Её рписание в теме "Перевод расширения на Gecko 1.9 "

Разработка » Не работает простой скрипт » 14-10-2008 13:23:16

Да, спасибо.
Всё так и сделал, нашёл синтаксическую.

Разработка » Перевод расширения на Gecko 1.9 » 14-10-2008 13:06:26

Сообщение в кщнсоли 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 такой ошибки не возникает

Разработка » Не работает простой скрипт » 14-10-2008 12:27:59

Т.е как я понимаю, если в какой-то функции будет ошибка, то весь скрипт не будет работать

Разработка » Не работает простой скрипт » 14-10-2008 11:06:32

Имеется файл MyExtNavigatorOverlay.xul:

<?xml version="1.0"?>
<?xml-stylesheet href="chrome://MyExt/content/MyExt.css" type="text/css"?>
<overlay id="MyExtNavigatorOverlay" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<script type="application/x-javascript" src="chrome://MyExt/content/MyExt.js"/>
...
<toolbarbutton
    id="extff_Btn"
    container="true"
    crop="right"
    image="chrome://MyExt/content/Pict.png"
    observes="true"
    oncommand="Test();"
    tooltiptext="Ok button"/>
... и.т.д.

В файле MyExt.js
function Test()
{
    alert('OK');
}

Но при нажатии кнопки на тулбаре ничего непроисходит.
У меня стоит FireFox 3.0.3

Разработка » Перевод расширения на Gecko 1.9 » 10-10-2008 14:27:07

Проблема решена.
Нужно было препроцессору установить:
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

Разработка » Перевод расширения на Gecko 1.9 » 10-10-2008 08:50:54

После установки препроцессору 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:

Разработка » Перевод расширения на Gecko 1.9 » 10-10-2008 07:31:56

Дополнение написано на С++ и является тулбаром. Для этого используётся конструкции из 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

Разработка » Перевод расширения на Gecko 1.9 » 09-10-2008 13:19:07

Уточнияю.

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

Разработка » Перевод расширения на Gecko 1.9 » 09-10-2008 13:03:08

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

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

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

Board footer

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