2012-04-26 38 views
17

Mi pregunta es bastante simple, traté de crear una extensión de Chrome que llama a un módulo de NaCl. Mi botón y diferentes archivos parecen estar bien, y mi código bastante simple en C++ devuelve un mensaje de texto Hola mundo. Pero, cuando lo intento, no funciona. ¿Hay cosas específicas que no he hecho para incluir un módulo NaCl en una extensión de Chrome? Debo decir que estoy perdiendo un poco la esperanza.Agregar NaCl en una extensión de Chrome

Aquí está mi "background.html":

<body> 
    <script src="background.js"></script> 
    <div id="listener"> 
    <embed name="nacl_module" 
     id="nacl_correction" 
     src="nacl_correction.nmf" 
     type="application/x-nacl" /> 
    </div> 
    <script > 
    document.getElementById('listener').addEventListener('load', moduleDidLoad, true); 
    </script> 
</body> 

Aquí es mi "background.js":

var NaclCorrectionModule = null; // Global application object. 

function moduleDidLoad() { 
    NaclCorrectionModule = document.getElementById('nacl_correction'); 
    //alert(NaclCorrectionModule); 
    if (NaclCorrectionModule == null) { 
     alert('Out');  
    } 
    else { 
     alert (NaclCorrectionModule);  
    } 
    NaclCorrectionModule.addEventListener('message', handleMessage, false); 
} 
function handleMessage(message_event) { 
    alert(message_event.data); 
} 
chrome.browserAction.onClicked.addListener(moduleDidLoad); 

Y, al fin, mi "manifest.json":

{ 
    "name": "Correction de Cordial sous Chrome", 
    "version": "1.0", 
    "background_page" :"background.html", 
    "description": "Intégration d'une extension Cordial pour la correction sous Chrome", 
    "permissions": [ 
    "tabs", "http://*/*" 
    ], 
    "browser_action": { 
    "default_icon": "corriger_big.png", // Icône de l'extension 
    "default_title": "Correction de Cordial" // Titre affiche sur le bouton   
    } 
} 

Si alguien tiene alguna idea, le agradecería.

Respuesta

14

Después de buscar un poco, he encontrado que olvidé algo. En mi background.js, no envié ningún mensaje a NaCl, por lo que no puede funcionar.

yo sólo tenía que añadir 1 línea:

NaclCorrectionModule.postMessage(''); 

Gracias por leer mi pregunta, y espero que esto puede ayudar a alguien !!

Cuestiones relacionadas