не могу получить расширение ff для работы в v3.0.5 - PullRequest
2 голосов
/ 22 декабря 2010

Кто-нибудь знает, что могло измениться после v3.0.5, чтобы расширения могли работать?Или, может быть, я где-то пропустил настройку?Я написал это дополнение, которое отлично работает с новыми версиями, но я не могу запустить его в более старых версиях.В частности, я даже не могу заставить эту часть работать (это в моем браузере overlay.xul):

<html:script>
<![CDATA[

    var Cc = Components.classes;
    var Ci = Components.interfaces;
    var obSvc = Cc["@mozilla.org/observer-service;1"].getService(Ci.nsIObserverService);

    gBrowser.consoleService = Cc["@mozilla.org/consoleservice;1"].getService(Ci.nsIConsoleService);
    gBrowser.log = function(msg){
        this.consoleService.logStringMessage(msg);
    }

    gBrowser.newObj= new MyAddOn();
    gBrowser.log("initializing...");
    function regListener()
    {
        obSvc.addObserver(gBrowser.newObj, "http-on-modify-request", false);
    }
    function unregListener()
    {
        obSvc.removeObserver(gBrowser.newObj, "http-on-modify-request");
    }

    window.addEventListener("load", regListener, false);
    window.addEventListener("unload", unregListener, false);

]]>

Это должно присоединять слушателейnew obj (определяется связанным .js) Однако я даже не получаю сообщение «initializing ...» в консоли.Есть идеи?

Ответы [ 2 ]

1 голос
/ 09 января 2011
  1. Не используйте , используйте (при условии, что у вас есть xmlns = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" в корневом элементе ).
  2. Не регистрируйте глобальный прослушиватель приложения (http-on-modify-request) из окна наложения. В результате ваш код будет запускаться один раз в каждом окне, которое может открыть пользователь. Вместо этого используйте компонент XPCOM - https://developer.mozilla.org/en/Setting_HTTP_request_headers
  3. Не загрязняйте обычные объекты (например, gBrowser или глобальный объект (с var Cc)) своими собственными свойствами. Если бы все так делали, никакие два расширения не работали бы вместе. Поместите все свои свойства кода в свой собственный объект с уникальным именем.
    • доступ к gBrowser до события загрузки, вероятно, является причиной вашей конкретной проблемы.
  4. Настройте среду и проверьте консоль ошибок на наличие ошибок.
  5. Не теряйте времени, пытаясь поддержать Firefox 3. Он не поддерживается самой Mozilla более года и не должен использоваться для доступа в Интернет.
0 голосов
/ 23 декабря 2010

Похоже, что gBrowser.log не определено или, по крайней мере, не является функцией, как, вероятно, скажет консоль ошибок. Я никогда об этом не слышал. Может быть, это было добавлено в Fx 3.5?

...