Проблема.
Есть адон с  +2тысячи скачавших за месяц, за основу взят старый аддон и был передлан для 4 версии лисы(заменены части кода, добавлены новые функци).
Но при проверке сказали- что есть отклонения от безопасности и отказали.
Проблемы в файлах "content/***.js"
Текст из валидатора:

Безопасность результатов
Тесты на небезопасный JavaScript [справка]

    content/options.js (2) : Подошедший шаблон: "/mozIJSSubScriptLoader/"

Components.classes["@mozilla.org/moz/jssubscript-loader;1"].
    getService(Components.interfaces.mozIJSSubScriptLoader).
    loadSubScript('chrome://myaddon/content/rjlib.js');

content/overlay.js (2) : Подошедший шаблон: "/mozIJSSubScriptLoader/"

Components.classes["@mozilla.org/moz/jssubscript-loader;1"].
    getService(Components.interfaces.mozIJSSubScriptLoader).
    loadSubScript('chrome://myaddon/content/rjlib.js');

content/overlay.js (6) : Подошедший шаблон: "/mozIJSSubScriptLoader/"

Components.classes["@mozilla.org/moz/jssubscript-loader;1"].
    getService(Components.interfaces.mozIJSSubScriptLoader).
    loadSubScript('chrome://myaddon/content/themesMap.js');

    Показать ещё 3 результата

В .js- я плохо разбираюсь, учить буду скоро, пока времени нет. Вики читал, использовал алтернативы- не идёт(адон работает, а настройки не работают(да и не считывает настройки тоже).
Помогите- даёте альтернативный код. Заранее благодарю.

А попробуйте использовать Components.utils.import. Правда, нужно будет объявить resourse в chrome.manifest.

Благодарю за полсказку.
Но что то не получилось.
Не могли бы вы дать код который вставить в манифест(За имя адона постаавить "AAAA" если не сложно).
И пример кода. Даю шапку одного из фалов, остальный сам соображу как изменить.

Components.classes["@mozilla.org/moz/jssubscript-loader;1"].
       getService(Components.interfaces.mozIJSSubScriptLoader).
       loadSubScript('chrome://AAAAA/content/rjlib.js');

var sbbPrefs = Components.classes['@mozilla.org/preferences-service;1']
                    .getService(Components.interfaces.nsIPrefService)
                    .getBranch('extensions.AAAAA.');
sbbPrefs.QueryInterface(Components.interfaces.nsIPrefBranch2);

Ниже начинаются параметры.
Заранее благодарю.

lkj, шила в мешке не утаишь :).

Проще всего сказать в options.xul вот это:

Выделить код

Код:

<script src="rjlib.js"/>
<script src="options.js"/>

Если же хотите с использованием Components.utils.import, то:

  1. В chrome.manifest:

    Выделить код

    Код:

    resource smartbookmarksbar content/

  2. В rjlib.js:

    Выделить код

    Код:

    var EXPORTED_SYMBOLS = ["rjlib_restartFirefox", "rjlib_getRadiogroupValue"];

  3. В options.js:

    Выделить код

    Код:

    Components.utils.import('resource://smartbookmarksbar/rjlib.js');

Правда, у меня в 3.6 после этих изменений другие проблемы возникли, но они не выглядят страшно.