lkj > 05-10-2010 12:20:11 |
Проблема. Есть адон с +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- я плохо разбираюсь, учить буду скоро, пока времени нет. Вики читал, использовал алтернативы- не идёт(адон работает, а настройки не работают(да и не считывает настройки тоже). Помогите- даёте альтернативный код. Заранее благодарю. |
luitzen > 05-10-2010 12:58:03 |
А попробуйте использовать Components.utils.import. Правда, нужно будет объявить resourse в chrome.manifest. |
lkj > 06-10-2010 14:45:36 |
Благодарю за полсказку. Но что то не получилось. Не могли бы вы дать код который вставить в манифест(За имя адона постаавить "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);
Ниже начинаются параметры. Заранее благодарю. |
luitzen > 06-10-2010 16:23:46 |
lkj, шила в мешке не утаишь . Проще всего сказать в options.xul вот это: Если же хотите с использованием Components.utils.import, то: В chrome.manifest:В rjlib.js:В options.js: Правда, у меня в 3.6 после этих изменений другие проблемы возникли, но они не выглядят страшно. |