Почему моя надстройка Firefox не работает после обновления Firefox до версии 50
Я разработал дополнение daneshLink, которое было проверено Firefox. Пользователи установили это дополнение и использовали его. Это дополнение работало, но когда Firefox обновился до версии 50.0, это дополнение не работает.
(Примечание: надстройка не была удалена или отключена после обновления Firefox. Она просто не работает вообще).
var x = content.document.getElementsByTagName('html')[0].innerHTML;
var test = x.match(/>article Id:[0-9a-zA-z]/img);
var url = "> <a href=\"http://mysite.ir/index.jsp?articleID=";
for (var i = 0; i < test.length; i++) {
x = x.replace(test[i], url +">Download :" + test[i] + "</a>");
}
content.document.getElementsByTagName('html')[0].innerHTML = x;
1 ответ
Предоставленного вами кода недостаточно, чтобы понять, в чем проблема, но я могу догадаться. Скорее всего, вы столкнулись с проблемой перехода на многопроцессорный Firefox. Тот факт, что это дополнение наложения и ваше использование content.document
Вероятно, вы не отделяете доступ к DOM веб-страниц (используя рабочих) от вашего основного скрипта.
Возможно, вам лучше всего переписать это как WebExtension, если это возможно. Кроме того, вы можете написать его как расширение на основе SDK Add-on. Если вам действительно нужно, чтобы это был надстройка Overlay, можно обеспечить разделение между основными функциями скрипта и доступом к DOM. Однако сделать это не так удобно, как для других типов надстроек.
Возможно, вы сможете сделать текущий код более совместимым, указав:
<em:multiprocessCompatible>false/em:multiprocessCompatible>
в вашем install.rdf. Это должно помешать Firefox включить многопроцессорный режим, когда ваше расширение установлено, или, по крайней мере, использовать совместимые прокладки, которые могут быть достаточными для функционирования вашего дополнения.
Я бы предложил вам прочитать: