dll - ¿Utiliza un complemento generado con Firebreath en una extensión de Firefox?
firefox-addon xpcom (3)
Para una funcionalidad simple, también recomiendo js-ctypes. Es fácil de usar y proporciona un buen aislamiento (ya que los scripts en la página no pueden acceder a la biblioteca importada).
Si realmente necesita acceder a un complemento NPAPI desde cualquier página, el enfoque estándar parece ser crear una extensión y modificar el DOM de cada página para incluir el complemento:
¿Es posible usar un .dll creado con Firebreath en una extensión de Firefox?
Actualmente, intento portar una extensión que hice para Google Chrome que usa javascript para obtener el HTML del documento, y luego llama a una función del .dll y pasa el HTML del documento como parámetro. El .dll luego guarda el archivo y abre un programa.
¿Hay alguna forma sencilla de transferir esta funcionalidad a Firefox? ¿O tendré que volver a escribir el código usando XPCOM?
XPCOM es demasiado complicado para cosas simples, por lo que Firefox 4 y versiones posteriores tienen js-ctypes (consulte https://developer.mozilla.org/en/js-ctypes para obtener una descripción general y https://developer.mozilla.org/en / js-ctypes / Using_js-ctypes # Calling_Windows_routines para ver un ejemplo). Esto le permite cargar la DLL y llamar fácilmente a una función nativa exportada. Si realmente necesita utilizar este archivo DLL como un complemento NPAPI, las cosas se vuelven más complicadas porque necesita una ventana para cargar el complemento y Firefox, a diferencia de Chrome, no tiene una ventana de fondo dedicada para eso. Pero supongo que solo convirtió su DLL en un complemento para poder usarlo en Chrome.
Al ubicar su DLL para usar con ctypes.open () vea mi respuesta aquí: Haga referencia a un componente binario para js-ctypes
sí, puede usar un dll Firebreath como extensión de Firefox. puedes usar el mismo javascript con algunas modificaciones para Firefox y para HTML tienes que usar XUL . Tienes que cargar el script en un XUL que se superpone al browser.xul
predeterminado de firfox.xul
overlay chrome://browser/content/browser.xul chrome://Yourproject/content/Youroverlay.xul
Dentro de Youroverlay.xul, puede agregar la siguiente línea para incrustar Firebreath dll
<?xml version="1.0"?>
<?xml-stylesheet href="chrome://global/skin/"?>
<overlay id="myOverlay" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" xmlns:html="http://www.w3.org/1999/xhtml">
<script type="application/javascript" src="chrome://Yourproject/content/background.js"/>
<vbox style="height:0;">
<html:embed type="application/x-myproject" id="myproject1" style="height:0;"/>
</vbox>
</overlay>