(function () { Rakka.canAccessLocalFile = function () { return $.browser.mozilla; }; var loadBin_mozilla = function (path) { try { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); } catch (e) { alert("Permission to read local file was denied. " + "Open about:config and check that " + "signed.applets.codebase_principal_support is set to true."); } var localFile = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile); localFile.initWithPath(path); var stream = Components.classes["@mozilla.org/network/file-input-stream;1"].createInstance(Components.interfaces.nsIFileInputStream); stream.init(localFile, 0x01, 00004, null); var bstream = Components.classes["@mozilla.org/network/buffered-input-stream;1"].getService(); bstream.QueryInterface(Components.interfaces.nsIBufferedInputStream); bstream.init(stream, 1000); bstream.QueryInterface(Components.interfaces.nsIInputStream); var binary = Components.classes["@mozilla.org/binaryinputstream;1"].createInstance(Components.interfaces.nsIBinaryInputStream); binary.setInputStream(stream); return binary.readBytes(binary.available()); }; Rakka.loadLocalBinaryFile = function (path) { if ($.browser.mozilla) { return loadBin_mozilla(path); } }; })();