Sto sviluppando un'estensione per Firefox basata su XUL. Sto cercando di creare un web worker in linea usando BLOB. Il codice utilizzato per funzionare in Firefox 33 ma dopo l'aggiornamento a Firefox 35 ottengo un errore. Ecco un esempio di codice:Impossibile creare Web Worker in linea in Firefox 35 addon
try {
var blob = new Blob(["function f(){}"], {type: "application/javascript"});
var url = window.URL.createObjectURL(blob); //blob:null/371e34bd-1fbf-4f66-89cc-24d0c1c7bad5
return new Worker(url);
} catch(e) {
console.error(e);
}
e ottenere un seguente errore:
Failed to load script (nsresult = 0x805303f4)
Sono consapevole del fatto che questo errore viene visualizzato quando Web Worker cerca di caricare uno script da un dominio diverso ma non posso capire perché questo sta accadendo nel mio caso. L'URL che ottengo dalla funzione createObjectURL() sembra non essere valido. Contiene prefisso "null /".
Qualcuno ha una spiegazione su cosa sta succedendo? Qual è la possibile soluzione qui?
Può darsi che 'Blob' non è più nel campo di applicazione addon (i havent stato in grado di utilizzarlo in JSMS per un po 'ora), non sono sicuro, prova a importare Blob in questo modo: https://developer.mozilla.org/en-US/docs/Web/API/Blob#Chrome_Code_-_Scope_Availability anche io vedo che stai toccando 'window' per ottenere' window.URL' puoi importare anche URL nello stesso modo: https://developer.mozilla.org/en-US/docs/Web/API/URL#Chrome_Code_-_Scope_Availability – Noitidart
Dove esattamente si esegue quel codice? Nell'ambito XUL (chrome), iniettato nella pagina web, tramite un 'SandBox'? Si prega di fornire un esempio * completo *, riproducibile. – nmaier
Il codice è in esecuzione nell'ambito chrome, NON viene iniettato in nessuna pagina web. Aggiunta di 'Components.utils.importGlobalProperties (['Blob', 'URL']);' non aiuta. – saloman