Firebreath JSAPI nie zostanie rozpoznany w Firefox
Najpierw podaje trochę informacji o tym, co robię z Firebreath.
Tworzę wtyczkę przeglądarki renderującej w przeglądarce, używając firebreath.W wtyczce definiuję dwa typy MIME, jeden dla głównej przeglądarki, a drugi dla widoku planu 2D.Na każdej stronie dozwolona jest tylko jedna główna przeglądarka, ale może mieć wiele widoków planu 2D. Wszystkie one korzystają z tego samego modelu dokumentu, który został otwarty w głównej przeglądarce.Tak więc, po utworzeniu instancji widoku 2D, muszę przekazać obiekt dokumentu (firebreath JSAPI) do widoku planu 2d.Następnie załóżmy, że główna przeglądarka i widok planu są załadowane jako „mainviewer” i „planview”, a ja dołączę dokument do przeglądarki planu, jak poniżej,
planview.attach(mainviewer.doc);
(the signature is "bool attach(const FB::JSObjectPtr& myDoc)" and
The mainviewer.doc is just a firebreath JSAPI)
ISSUE jest taki, że w firefoxie przekazany JSObject nie może zostać rozpoznany jako JSAPI przez wywołanie
FB::JSAPIPtr jsAPI = myDoc->getJSAPI(); // THIS WILL RETURN **NULL**.
m_main_doc = FB::ptr_cast<LcFbViewerDocumentAPI>(jsAPI); // Cast to my document API.
Ten problem występuje tylko wtedy, gdy przeglądarka hosta jest firefox, IE / Chrome działa dobrze.
Więc co się stało z przekazanym JSAPI podczas używania firefox?