]> gitweb @ CieloNegro.org - Rakka.git/blob - js/localFile.js
1a6fbfec73a012872318dbefc2ab58daa52a14b9
[Rakka.git] / js / localFile.js
1 (function () {
2
3     Rakka.canAccessLocalFile = function () {
4         return $.browser.mozilla;
5     };
6
7     var loadBin_mozilla = function (path) {
8         try {
9             netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
10         }
11         catch (e) {
12             alert("Permission to read local file was denied. " +
13                   "Open about:config and check that " +
14                   "signed.applets.codebase_principal_support is set to true.");
15         }
16
17         var localFile
18             = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
19         localFile.initWithPath(path);
20
21         var stream
22             = Components.classes["@mozilla.org/network/file-input-stream;1"].createInstance(Components.interfaces.nsIFileInputStream);
23         stream.init(localFile, 0x01, 00004, null);
24
25         var bstream
26             = Components.classes["@mozilla.org/network/buffered-input-stream;1"].getService();
27         bstream.QueryInterface(Components.interfaces.nsIBufferedInputStream);
28         bstream.init(stream, 1000);
29         bstream.QueryInterface(Components.interfaces.nsIInputStream);
30
31         var binary
32             = Components.classes["@mozilla.org/binaryinputstream;1"].createInstance(Components.interfaces.nsIBinaryInputStream);
33         binary.setInputStream(stream);
34
35         return binary.readBytes(binary.available());
36     };
37
38     Rakka.loadLocalBinaryFile = function (path) {
39         if ($.browser.mozilla) {
40             return loadBin_mozilla(path);
41         }
42     };
43     
44 })();