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

Заказывай стафф с атрибутикой Mozilla и... пусть все вокруг завидуют тебе! Быть уникальным - быть с Mozilla!

Разработка » Подмена about:neterror » 12-01-2010 16:09:09

Всем привет!

Вот ломаю голову над такой задачей: осуществил перехват about:neterror с помощью подмены файла neterror.xhtml (и еще двух для ошибок типа Untrusted connection) в соответствующих jar-файлах. Все вроде бы хорошо работает, не устраивает одно - не хватает прав для вызова функции через XPCOM, попытка установить права тоже ни к чему не приводят. В связи с этим у меня вопрос как сделать перехват по другому, например, через extension, или установить права.

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

Разработка » XPCOM C++ » 16-11-2009 18:43:39

Elexander пишет

Вероятно, contentDocument - это XBL-свойство sidebar. В таком случае я бы вызывал JavaScript из XPCOM. Для этого нужно реализоть на JS объект со всем необходимым функционалом и передать ссылку на него в XPCOM-компонент.

После вызова setCallback в компоненте можна запоминать и использовать интерфейс ICallbackObject.

Что-то у меня при вызове Java-функции из С++ происходит падение. Т.е я в setCallback запоминаю адрес объекта и затем делаю вызов object->getSidebarURL() - падение. Может быть у тебя есть какой-нибудь работающий пример (или кусок примера) ? Буду премного благодарен.

Разработка » XPCOM C++ » 09-11-2009 12:30:52

Elexander пишет

Попробуйте через QueryInterface попросить у sidebar один из этих интерфейсов.

Выделить код

Код:

nsIDOMHTMLObjectElement
nsIDOMHTMLFrameElement
nsIDOMHTMLIFrameElement

Только в них есть свойство contentDocument.

Приветствую всех!

Попробовал запросить все три интерфейса для sidebar следующим образом (подставляя нужный интерфейс):

nsCOMPtr<nsIDOMHTMLObjectElement> htmlobj;
nsresult rv = sidebar->QueryInterface(NS_GET_IID(nsIDOMHTMLObjectElement), getter_AddRefs(htmlobj));

Во всех трех случаях получил NS_FAILED(rv).

Сам sidebar - это:

nsCOMPtr<nsIDOMElement> sidebar;
document->GetElementById( nsString(L"sidebar"), getter_AddRefs(sidebar));

Возможно, я что-то делаю не так, подскажите, pls., кто может.

Разработка » XPCOM C++ » 30-10-2009 14:40:38

Добрый день, уважаемые специалисты!

Проблема в следующем. Пишу на С++ XPCOM, а точнее переписываю на плюсах скриптовый код для запуска sidebar-а. Все шло хорошо, пока я не наткнулся на следующий код:

например - if (sidebar.contentDocument.location.href != url)

sidebar - это nsCOMPtr<nsIDOMElement> sidebar; получается он так:

document->GetElementById( nsString(L"sidebar"), getter_AddRefs(sidebar))))

а что такое contentDocument (бывает еще contentWindow) ? Как его получить? Перерыл весь интернет, ничего толком не нашел.

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

Board footer

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