Opracowuję rozszerzenie przeglądarki Firefox oparte na XUL. Próbuję utworzyć inline Web Worker przy użyciu BLOB. Kod używany do pracy w przeglądarce Firefox 33, ale po aktualizacji do Firefoksa 35 Wystąpił błąd. Oto przykładowy kod:Nie można utworzyć wbudowanego obiektu Web Worker w przeglądarce 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);
}
I otrzymuję następujący błąd:
Failed to load script (nsresult = 0x805303f4)
Zdaję sobie sprawę, że pojawi się ten błąd, gdy Web Worker próbuje załadować skryptu z innej domeny, ale nie mogę dowiedzieć się, dlaczego tak się dzieje w moim przypadku. Adres URL otrzymany od funkcji createObjectURL() wydaje się być nieprawidłowy. Zawiera prefiks "null /".
Czy ktoś ma wyjaśnienie, co się dzieje? Jaka jest możliwa poprawka tutaj?
może się zdarzyć, że 'Blob' nie jest już w zakresie dodatku (przystań w stanie wykorzystać go w JSMs na chwilę teraz), nie jestem pewien, spróbuj importowania Blob tak: https://developer.mozilla.org/en-US/docs/Web/API/Blob#Chrome_Code_-_Scope_Availability również widzę, że dotykasz 'okna', aby uzyskać' window.URL' możesz zaimportować adres URL w ten sam sposób: https://developer.mozilla.org/en-US/docs/Web/API/URL#Chrome_Code_-_Scope_Availability – Noitidart
Gdzie dokładnie uruchamiasz ten kod? W zakresie XUL (chrome), wstrzyknięty do strony, poprzez "SandBox"? Podaj * pełny *, powtarzalny przykład. – nmaier
Kod działa w zakresie chromowania, NIE jest wstrzykiwany do żadnej strony internetowej. Dodanie 'Components.utils.importGlobalProperties (['Blob', 'URL']);' nie pomoże. – saloman