Я бета-тестирование приложения, которое включает в себя расширение Firefox в качестве одного компонента. Первоначально он был развернут, когда FF3.5.5 была последней версией, и выжил 3.5.6 и 3.5.7. Однако на FF3.6 я получаю в консоли ошибок следующее:
Warning: reference to undefined property Components.interfaces.nsIProcess2
Source file: chrome://overthewall/content/otwhelper.js
Line: 55
Error: Component returned failure code: 0x80570018 (NS_ERROR_XPC_BAD_IID)
[nsIJSCID.createInstance]
Source file: chrome://overthewall/content/otwhelper.js
Line: 55
Функция, выдающая ошибку:
48 function otwRunHelper(cmd, aCallback) {
49 var file =
50 Components.classes["@mozilla.org/file/local;1"].
51 createInstance(Components.interfaces.nsILocalFile);
52 file.initWithPath(otwRegInstallDir+'otwhelper.exe');
53
54 otwProcess = Components.classes["@mozilla.org/process/util;1"]
55 .createInstance(Components.interfaces.nsIProcess2);
56
57 otwProcess.init(file);
58 var params = new Array();
59 params = cmd.split(' ');
60
61 otwNextCallback = aCallback;
62 otwObserver = new otwHelperProcess();
63 otwProcess.runAsync(params, params.length, otwObserver, false);
64 }
Как вы можете видеть, все, что эта функция делает, - запускает внешний вспомогательный файл EXE (расположенный по ключу реестра) с некоторыми параметрами командной строки и настраивает Observer для асинхронного ожидания ответа и обработки кода выхода.
Неправильная строка подразумевает, что Components.interfaces.nsIProcess2 больше не определяется в FF3.6. Куда это делось? Я не могу найти ничего в документации Mozilla, указывающей, что это было изменено в последней версии.