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

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

Разработка » Запрет установки XPI для Mozilla-based браузеров, отличных от Firefox » 21-05-2009 12:14:45

Всем привет!
Вылезла такая маленькая проблема: сделал extension для Firefox 3. Все классно, все работает. Но есть небольшой баг, а именно, при попытке установить (обычный драг-энд-дроп) XPI файл в другие Mozilla-based браузеры (Netscape, SeaMonkie) выдаются не очень понятные для пользователя сообщения:
1. О том, что невозможно проверить цифровую подпись.
2. О том, что install.js не найден (более критично).

Как это все корректно пофиксать? Т.е. можно при создании extension указать, что он ТОЛЬКО (!!) для Firefox и при попытке установки в не-FF выдавать красивое окошко с сообщением об этом ограничении?

СУВ, Kuvaldis

Разработка » Отловить событие "прерывание загрузки страницы" » 03-04-2009 00:51:19

Всем привет! Не получается отловить событие "прерывание загрузки страницы" (когда в статусбаре надпись "остановлено"). Ковырялся с https://developer.mozilla.org/En/NsIWebProgressListener но так и не понял. Может есть какой-нибудь еще способ?
СУВ, Kuvaldis

Разработка » Добавить новый таб на старте браузера » 02-04-2009 21:44:03

Всем привет! Пытаюсь добавить новый таб на старте браузера. Делаю так

Выделить код

Код:

var Taggerator = 
{
	Load: function() 
	{
                 gBrowser.selectedTab = gBrowser.addTab("http://google.com");
	}
}

window.addEventListener("load", function(event) { Taggerator.Load(event); }, false);

Но таб не открывается. Ставил в вызов alert(). И вроде бы браузер еще не рендерится. Если дернуть этот же метод Load() по клику на какой-нибудь кнопке в тулбаре, то он отрабатывает.
Вероятно, я должен вызывать добавление таба в другом месте, но каком???
Прошу совета бывалых )

СУВ, Kuvaldis

02-04-2009 21:45:49
Еще мини-вопрос: как в JavaScript debugger поставить брейкпоинт на методе Load() чтобы он отработал на старте браузера? В Win API я мог вызвать __asm int 3 для принудительного прерывания по отладке. А как здесь?

Разработка » Добавить скрипт в "about-blank" страницу » 31-03-2009 14:33:27

Всем привет!
Делаю тулбар для Firefox. Один из юзкейсов - логин для пользователя, который вводится в IFRAME, добавленный на страницу вместе с обрабатывающим его скриптом. Все прекрасно работает, кроме "about-blank" страниц. Причем проблемы как при добавлении из JS, так и из С++ XPCOM. Смотрел в С++ коды ошибок (nsresult). Все проходит без сваливаний, но... HTML документ остается без изменений.
Может кто сталкивался с такой проблемой? Workaround - это при необходимости логина открывать предопределенную страницу для этого случая, но хотелось бы разобраться с about:blank (IE, кстати, разрешает модификацию)

СУВ, Kuvaldis

Разработка » Загрузить новый URL из XPCOM C++ (а-ля document.location = ...) » 17-03-2009 14:52:12

Всем привет!
Не вижу в упор, как загрузить URL в текущую страницу просто. Нашел только такой вариант:
nsIDOMDocument --> nsIDOMNSDocument --> GetLocation --> nsIDOMLocation и через последний интерфейс работа. Но это как-то из пушек по воробьям.
Тыкните носом в более короткое решение.  :)

СУВ, Kuvaldis

Разработка » Аналог window.document.readyState » 16-03-2009 17:22:23

Вопрос решен, много есть несколько вариантов Gecko 1.9.:)

Разработка » Получить все узлы HTML документа » 16-03-2009 17:21:15

Всем привет!
Мне нужно получить список элементов по имени тега, наличию атрибута определенного и его значению. В IE я сначала получал все элементы HTML документа через get_all() вызов (сразу коллекция) и далее уже проверял атрибуты. В Firefox нашел только вызов GetElementsByTagName(). НО!! Ему нельзя передать пустую строку, чтобы получить все элементы. Хотел уже было итератор использовать nsIDOMNodeIterator. Но это только с Firefox 3.1...
Нужен совет! :)

СУВ, Kuvaldis

Разработка » Аналог window.document.readyState » 10-03-2009 14:24:53

lemax, попробовал я выкрутиться, но все равно остались проблемы.
Т.к. я скачал Gecko 1.9, то по ссылке http://mxr.mozilla.org/mozilla1.9.1/source/browser/components/sessionstore/src/nsSessionStore.js взял idl-файл нужного мне интерфейса. Сгенерил хедер, в коде использовал следующую конструкцию

Выделить код

Код:

nsCOMPtr<nsISessionStore> sessionStore = do_GetService("@mozilla.org/browser/sessionstore;1");

Т.е. обычное создание объекта сервиса.
Но в sessionStore возвращался ноль. Поэтому попробовал следующее

[code]bool CToolBandObj::IsDocumentLoaded(nsIDOMWindow *domWindow)
{
    static const nsEmbedString WindowStateLoaded(L"");
    bool result = false;
    nsCOMPtr<nsISupports> rawSessionStore = do_GetService("@mozilla.org/browser/sessionstore;1");
    if (rawSessionStore != NULL)
    {
        nsresult retval;
        nsCOMPtr<nsISessionStore> sessionStore = do_QueryInterface(rawSessionStore, &retval);
        if (sessionStore != NULL)
        {
            nsEmbedString windowSta

Разработка » Аналог window.document.readyState » 06-03-2009 16:58:23

Всем привет!
В очередной раз при переносе кода из IE в Firefox возникают вопросы
На данный момент не понятно, как получить статус документа (не событие, а так, как делается в IE - window.document.readyState ).
Нашел вот это - https://developer.mozilla.org/en/nsISessionStore
Но не очень понятно, где найти этот интерфейс (в XUL-Runner 1.9 такого header-файла нет). И сработает ли?..
В общем, прошу помощи

СУВ, Kuvaldis

Разработка » Аналог IE execScript() и eval() для JavaScript в XPCOM С++ » 04-03-2009 21:41:21

Всем привет!
Нужно из XPCOM компонента на С++ в страницу динамически добавить переменные и вызовы функций. При разработке для IE пользовался execScript (из С++). Для Firefox такого не нашел, только eval(). Но последний метод вызывается только из JavaScript (?)... :(
В общем, прошу помощи.

СУВ, Kuvaldis

Разработка » Поток для XPCOM компонента на каждую вкладку » 10-02-2009 21:36:54

Elexander сиба, буду пробовать.
P.S. Сорри, что сразу не ответил

Разработка » Поток для XPCOM компонента на каждую вкладку » 02-02-2009 22:24:03

Всем привет. Пришел в разработку тулбара для Лиса после IE. Разрабатываю XPCOM компонент. Мне нужно отслеживать загрузку каждой вкладки. Возникли следующие проблемы:
В IE на каждую вкладку создается поток (т.е. каждая вкладка - это отдельный браузер со своим НЕЗАВИСИМЫМ тулбаром). Соответствующим образом построена и работа - подписка на сообщения о загрузке, обработка функций окон тулбаров.
Кроме того, в DLL (BHO) существуют глобальные объекты, которые могут разделяться этими экземплярами тулбаров.

Но я не понимаю, как такое сделать для Лиса. Не ясно, как  и где создать XPCOM объекты, подписаться на события ТОЛЬКО одной вкладки (динамически).  Т.е. речь идет о nsIWebProgressListener. Т.е. мне нужен handler для событий в контексте и потоке окна закладки (НЕ браузера).
Если объект создавать в JS из XUL, то он создается один на браузер. :(

Буду рад помощи.
СУВ, Kuvaldis

Разработка » Все с нуля... или как написать приложение для работы с Mozilla... » 19-01-2009 16:39:37

Объясните, пожалуйста, как idl-файл с содержимым:

Выделить код

Код:

#include "nsISupports.idl"
#include "nsIAccessibleDocument.idl"
...

корректно пропустить через xpidl. Я, как описано, скачал Gecko SDK (версия 1.8.*), но nsIAccessibleDocument.idl файла не нашел.
ОЧЕНЬ ПРОШУ ПОМОЩИ!

СУВ, Kuvaldis

Board footer

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