拡張機能自体に含まれている Java jar をロードする Firefox 拡張機能があります。以前はwindow.java DOMオブジェクトを使用していたので、
var loader = java.net.URLClassLoader.newInstance(urls);
const myClassRef = java.lang.Class.forName("com.me.program", true, loader);
var myJavaObject = myClassRef.newInstance();
//use LiveConnect to directly call stuff on my object now.
file:///
私の拡張機能の JS コードでは、urls はjar ファイルへの uri を含む配列でした。
Firefox が window.java を削除したとき、Java への参照を取得するためにアプレットをタグに埋め込み始めました。
<html:embed id ="appletID" type="application/x-java-applet"
code="java.applet.Applet" pluginspage="http://java.com/download/" MAYSCRIPT="true" width="0" height="0" />
....
var ref = document.getElementById("appletID");
window.java = ref.Packages.java;
これは、7u13 への更新後は機能しなくなりました。おそらく、embed タグの code 属性がサポートされなくなったためです。これを修正するにはどうすればよいですか?
アプレットを指す属性を直接使用しようとしましたが、問題は、Firefox 拡張機能を使用しているため、すべてがJRE がまだ処理できない uris にarchive=
変わり、 urisがサポートされていないように見えることです (一般的な許可拒否メッセージ)。chrome://
file://