Вопрос по XPCOM
Добрый день комрады!
Имею два вопроса, начну с наиболее актуального.
1. Первая задача состоит в том, что мне необходимо при открытии новой вкладки (именно новой, а не открытии контента например через контекстное меню "Открыть в новой вкладке") загружать по умолчанию свой контент с сервера. Ни как не могу понять как отловить событие открытия новой вкладки. ПРошу подсказать решение моей проблемы (пробовал через ProgressListener но то ли руки не с того места растут, то ли просто не вдуплил).
2. Добавляю свой поисковик. Создал xml файлик по принципу OpenSearch. Когда просто кладу ручками его в профайл, все нормально цепляется. Однако пробуя подключать его в коде, получаю ошибку конструктора. Вот мой код:
Код:
var addedEngineName = "DBSearch";
var ss = Components.classes["@mozilla.org/browser/s earch-service;1"].getService(Ci.nsIBrows erSearchService);
var engine = ss.getEngineByName(addedEngineName);
if (engine != null)
ss.removeEngine(engine);
try {
ss.addEngine ("chrome://tuttoolbar/content/dbsearch.x ml", Components.interfaces.nsISearchEngine.DA TA_XML, "chrome://tuttoolbar/skin/favico.ico", false);
} catch(e) {
alert(e.message);
throw e;
}
Покапавшись в исходниках nsISearchEngine возникло предположение, что он не понимает ссылок на ресурсы типа chrome:. Подскажите как же все таки правильно регистрировать свой поисковик?
Имею два вопроса, начну с наиболее актуального.
1. Первая задача состоит в том, что мне необходимо при открытии новой вкладки (именно новой, а не открытии контента например через контекстное меню "Открыть в новой вкладке") загружать по умолчанию свой контент с сервера. Ни как не могу понять как отловить событие открытия новой вкладки. ПРошу подсказать решение моей проблемы (пробовал через ProgressListener но то ли руки не с того места растут, то ли просто не вдуплил).
2. Добавляю свой поисковик. Создал xml файлик по принципу OpenSearch. Когда просто кладу ручками его в профайл, все нормально цепляется. Однако пробуя подключать его в коде, получаю ошибку конструктора. Вот мой код:
Код:
var addedEngineName = "DBSearch";
var ss = Components.classes["@mozilla.org/browser/s
var engine = ss.getEngineByName(addedEngineName);
if (engine != null)
ss.removeEngine(engine);
try {
ss.addEngine ("chrome://tuttoolbar/content/dbsearch.x
} catch(e) {
alert(e.message);
throw e;
}
Покапавшись в исходниках nsISearchEngine возникло предположение, что он не понимает ссылок на ресурсы типа chrome:. Подскажите как же все таки правильно регистрировать свой поисковик?
