var bInStream = Cc['@mozilla.org/binaryinputstream;1']. createInstance(Ci.nsIBinaryInputStream); var fileInStream = Cc["@mozilla.org/network/file-input-stream;1"]. createInstance(Ci.nsIFileInputStream); fileInStream.init(icon, MODE_RDONLY, PERMS_FILE, 0); bInStream.setInputStream(fileInStream); var byteArray = bInStream.readByteArray(bInStream.available()); // Convert the byte array to a base64-encoded string var str = btoa(String.fromCharCode.apply(null, bytes)); engine._iconURI = makeURI(ICON_DATAURL_PREFIX + str);