Image

Category:

Вопрос по XPCOM

Добрый день комрады!
Имею два вопроса, начну с наиболее актуального.

1. Первая задача состоит в том, что мне необходимо при открытии новой вкладки (именно новой, а не открытии контента например через контекстное меню "Открыть в новой вкладке") загружать по умолчанию свой контент с сервера. Ни как не могу понять как отловить событие открытия новой вкладки. ПРошу подсказать решение моей проблемы (пробовал через ProgressListener но то ли руки не с того места растут, то ли просто не вдуплил).

2. Добавляю свой поисковик. Создал xml файлик по принципу OpenSearch. Когда просто кладу ручками его в профайл, все нормально цепляется. Однако пробуя подключать его в коде, получаю ошибку конструктора. Вот мой код:
Код:

var addedEngineName = "DBSearch";
var ss = Components.classes["@mozilla.org/browser/search-service;1"].getService(Ci.nsIBrowserSearchService);

var engine = ss.getEngineByName(addedEngineName);
if (engine != null)
ss.removeEngine(engine);
try {
ss.addEngine ("chrome://tuttoolbar/content/dbsearch.xml", Components.interfaces.nsISearchEngine.DATA_XML, "chrome://tuttoolbar/skin/favico.ico", false);
} catch(e) {
alert(e.message);
throw e;
}

Покапавшись в исходниках nsISearchEngine возникло предположение, что он не понимает ссылок на ресурсы типа chrome:. Подскажите как же все таки правильно регистрировать свой поисковик?