(см. Мое примечание об обфускации ниже)
Возможно, это не самый оптимальный способ разработки расширения Firefox, но вы можете создать его, используя внешнюю DLL.
До Gecko 2.0 вам приходилось использовать довольно эзотерический набор инструментов сборки Mozilla для включения скомпилированного кода в ваши расширения.
js-ctypes для спасения:
https://developer.mozilla.org/en/js-ctypes/Using_js-ctypes
https://developer.mozilla.org/en/js-ctypes/js-ctypes_reference
js-ctypesупрощает загрузку внешних DLL и привязку их API к функциям JavaScript.
Вам нужно будет скомпилировать несколько разных версий вашей DLL, и ваш JavaScript должен правильно определять платформу и загружать соответствующую DLL, но он в основном работает одинаково для всех платформ, как только вы вернетесь в JavaScriptland.
ctypes.libraryName
помогает определить расширение DLL на текущей платформе (например, .dll для windows, .so для Unix).
Вы можете использовать другую информацию (например, navigator.userAgent), чтобы более конкретно определить, какая подплатформа (например: Windows 7 64-битная или Vista 32-битная).
Обновление:
Существует множество веских причин для включения скомпилированных библиотек DLL в ваши расширения / приложения (например, скорость, специальные возможности, сторонние библиотеки), но если ваша единственная цель - запутывание (скрытиеисходный код), затем ...
Я бы не беспокоился об этом, если бы я был вами.Технологические средства борьбы с пиратством не помогут вам продвинуться далеко в этом современном мире - если ваше программное обеспечение достаточно хорошо, чтобы привлечь внимание, кто-то взломает его.
Я просто забудуоб этом, и потратить немного денег на адвокатов.(Copyright: yay! Патенты: nay!)