Ну, вот я снова с другой проблемой, касающейся частей моего аддона.Object.defineProperty() работает во время тестирования (jpm run), но ничего не делает при использовании фактического xpi
Я использую наблюдателя для изменения значений, вызываемых через javascript.
var observerService = Cc["@mozilla.org/observer-service;1"].getService(Ci.nsIObserverService);
observerService.addObserver(this, "document-element-inserted", false);
Я делаю это, наблюдая был создан «документ-элемент вставленного», который является
Sent сразу после корневого элемента документа, но перед выполнением какого-либо сценария на нем , (Source)
При вызове, мой аддон изменяет несколько документов/навигатор/экран-значения для уменьшения дактилоскопии путем переопределения значения navigator.X:
Object.defineProperty(XPCNativeWrapper.unwrap(navigator), "plugins", {
value: "",
});
В этом случае, например, список плагинов, что он выглядит так, как будто у меня нет каких-либо подключаемых модулей.
До сих пор это работало нормально в моей среде разработки/jpm run. Однако теперь, когда я создал фактический xpi, ничего не происходит. Код все еще вызывается, я использовал несколько консольных выходов в моей функции jSTracking, и все они появились в консоли браузера. Однако предположительно измененные значения по-прежнему являются оригинальными.
Есть только две ошибки, которые не отображаются при использовании JPM пробег:
[Exception ... "Компонент возвращается код ошибки: 0x80004005 (NS_ERROR_FAILURE) [nsIURI.hostPort]" nsresult: «0x80004005 (NS_ERROR_FAILURE)»место: "JS рамка :: ресурс: //gre/modules/PopupNotifications.jsm :: PopupNotifications_refreshPanel/< :: строка 667" данные: нет] (неизвестный)
выкинут дважды во время установки ,
Использование nsIFile в процессе содержимого устарело. Content.js: 25: 17
Использование nsIFile в процессе содержимого устарело. NetUtil.jsm: 335: 12
Является ли другой, который появляется время от времени, хотя и не связан с моими сценариями.
Что меня больше смущает: почему Object.defineProperty работает с jpm run, но не с xpi? Что мне нужно изменить, чтобы он всегда работал?
Весь проект можно найти на my Github repository.
регистрирующий наблюдателя находится в пп.JS в строке 452,
наблюдения функция находится в строках 436-446
и функция jsTracking начинается в строке 193 и заканчивается в строке 433
Котировочная плагин-пример можно найти в строках 399-403
Я был бы признателен за любую помощь!
Если вы получаете доступ к документам содержания через наблюдателей, то это проблема с вашим аддоном, не совместимым с e10s, а не с firefox. – the8472
Вы, конечно, правы - это то, что мне нужно исправить в моем аддоне. То, что я действительно хотел сказать, было больше похоже на это: «Угадайте, что я просмотрю сообщения об ошибках на bugzilla.mozilla.org, чтобы узнать, не могу ли я это исправить прямо сейчас, или если это то, что они могут сделать на своем конце/добавить в документацию ». Как и в, возможно, сделайте короткую заметку на странице наблюдателя [https://developer.mozilla.org/en-US/Firefox/Multiprocess_Firefox/Limitations_of_chrome_scripts#Observers_in_the_chrome_process]. Я отредактирую свой комментарий, чтобы сделать его более понятным. – Sintho