Revision 68:0ec0b09ea126

b/src/pithos/content/connection.js
105 105

  
106 106
    this.rest_request_get_inline = function(rest_req) {
107 107
        var url = this.create_request_get(rest_req);
108
        netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
108
        netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect UniversalFileRead UniversalBrowserRead");
109 109
        var req = Components.classes["@mozilla.org/xmlextras/xmlhttprequest;1"].createInstance(Components.interfaces.nsIXMLHttpRequest);
110 110
        req.open("GET", url, false);
111 111
        req.overrideMimeType('text/plain; charset=x-user-defined');
......
117 117

  
118 118
	this.rest_request_get_inline_async = function(rest_req,params,destination) {
119 119
        var url = this.create_request_get(rest_req);
120
        netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
120
        netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect UniversalFileRead UniversalBrowserRead");
121 121
        var req = Components.classes["@mozilla.org/xmlextras/xmlhttprequest;1"].createInstance(Components.interfaces.nsIXMLHttpRequest);
122 122
        
123 123
		req.onload = this.onLoadDefault;
......
143 143
        var sign_url = rest_req.replace(current.rest_url, '');
144 144
        var gmtstring = (new Date()).toGMTString();
145 145

  
146
        netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
146
        netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect UniversalFileRead UniversalBrowserRead");
147 147
        var file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
148 148
        try {
149 149
            file.initWithPath(source);
......
152 152
            return null;
153 153
        }
154 154
        
155
		netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
155
		netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect UniversalFileRead UniversalBrowserRead");
156 156
        var stream = Components.classes["@mozilla.org/network/file-input-stream;1"].createInstance(Components.interfaces.nsIFileInputStream);
157
        stream.init(file, 0x04 | 0x08, 0644, 0x04); // file is an nsIFile instance  
157
		netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect UniversalFileRead UniversalBrowserRead");
158
        stream.init(file, 0x01, 0644, 0x04); // file is an nsIFile instance  
158 159

  
159
		netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
160
		netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect UniversalFileRead UniversalBrowserRead");
160 161
        var req = Components.classes["@mozilla.org/xmlextras/xmlhttprequest;1"].createInstance(Components.interfaces.nsIXMLHttpRequest);
161 162
		
162 163
		req.onload = this.onLoadDefault;
......
186 187
        var sign_url = rest_req.replace(current.rest_url, '');
187 188
        var gmtstring = (new Date()).toGMTString();
188 189

  
189
        netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
190
        netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect UniversalFileRead UniversalBrowserRead");
190 191
        var file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
191 192
        try {
192 193
            file.initWithPath(source);
......
195 196
            return null;
196 197
        }
197 198
        
198
		netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
199
		netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect UniversalFileRead UniversalBrowserRead");
199 200
        var stream = Components.classes["@mozilla.org/network/file-input-stream;1"].createInstance(Components.interfaces.nsIFileInputStream);
200
        stream.init(file, 0x04 | 0x08, 0644, 0x04); // file is an nsIFile instance  
201
		netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect UniversalFileRead UniversalBrowserRead");
202
        stream.init(file, 0x01, 0644, 0x04); // file is an nsIFile instance  
201 203

  
202
		netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
204
		netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect UniversalFileRead UniversalBrowserRead");
203 205
        var req = Components.classes["@mozilla.org/xmlextras/xmlhttprequest;1"].createInstance(Components.interfaces.nsIXMLHttpRequest);
204 206
        req.open("PUT", url, false);
205 207

  
......
265 267
		var sign_url = rest_req.replace(current.rest_url, '');
266 268
		var gmtstring = new Date().toGMTString();
267 269
		
268
		netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
270
		netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect UniversalFileRead UniversalBrowserRead");
269 271
		var req = Components.classes["@mozilla.org/xmlextras/xmlhttprequest;1"].createInstance(Components.interfaces.nsIXMLHttpRequest);
270 272
		req.open(method, url + params, async);
271 273
		
......
305 307
	
306 308
	
307 309
	// Allow access to cookie database of browser
308
	netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');    
310
	netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect UniversalFileRead UniversalBrowserRead");    
309 311
	var cookieManager = Components.classes["@mozilla.org/cookiemanager;1"].getService(Components.interfaces.nsICookieManager);
310 312
	var menum = cookieManager.enumerator;
311 313
	while (menum.hasMoreElements()){
b/src/pithos/content/dragndrop.js
65 65
    }
66 66

  
67 67
    // Ok we are allowed to do the operation now
68
    netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
68
    netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect UniversalFileRead UniversalBrowserRead");
69 69
    window.openDialog("dialogs/operation_dialog.xul", "Copy Files", "chrome,resizable,centerscreen,window", "copy", source_array, destination, pithos_object);    
70 70

  
71 71
    //if( copy(source, destination) ) {
b/src/pithos/content/localfile.js
37 37
	dir_obj.folders = new Array();
38 38
	dir_obj.permissions = new Array();
39 39
	
40
	netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
40
	netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect UniversalFileRead UniversalBrowserRead");
41 41
	var file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
42 42
	try {
43 43
		file.initWithPath(path);
......
112 112
	var file_obj = new Object();
113 113
	
114 114
	try {
115
		netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
115
		netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect UniversalFileRead UniversalBrowserRead");
116 116
		var file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
117 117
		file.initWithPath(path);
118 118
		
b/src/pithos/content/moz.js
33 33
// Provides a handful of utilities related to Mozilla internal API
34 34

  
35 35
function Mozilla() {
36
	netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
36
	netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect UniversalFileRead UniversalBrowserRead");
37 37
	var mozThis = this;
38 38
	
39 39
	this.classes = Components.classes;
b/src/pithos/content/operations.js
54 54
		return (connection_obj.success(req.status));
55 55
	} else if ( vfs.isLocalResource(uri) ) {
56 56
		try {
57
			netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
57
			netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect UniversalFileRead UniversalBrowserRead");
58 58
			var file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
59 59
			file.initWithPath(uri);
60 60
			file.append(new_directory);
......
96 96
        }
97 97
	}
98 98
	
99
	netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
99
	netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect UniversalFileRead UniversalBrowserRead");
100 100
	window.openDialog("dialogs/operation_dialog.xul", "Copy Files", "chrome,resizable,centerscreen,window", "copy", sources, destination, pithos_object);
101 101
	
102 102
    pithos_object.refreshLists();
......
133 133
		
134 134
	} else if ( vfs.isLocalResource(source) && vfs.isLocalResource(destination) ) {
135 135
		try {
136
			netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
136
			netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect UniversalFileRead UniversalBrowserRead");
137 137
			var source_file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
138 138
			source_file.initWithPath(source);
139 139
            
140
			netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
140
			netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect UniversalFileRead UniversalBrowserRead");
141 141
			var destination_file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
142 142
			destination_file.initWithPath(destination);
143 143
            
......
173 173

  
174 174
	}
175 175
	
176
	netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
176
	netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect UniversalFileRead UniversalBrowserRead");
177 177
	window.openDialog("dialogs/operation_dialog.xul", "Move Files", "chrome,resizable,centerscreen,window, window", "move", sources, destination,pithos_object);	
178 178

  
179 179
    pithos_object.refreshLists();
......
187 187
		return connection_obj.success(req.status);	
188 188
	} else if ( vfs.isLocalResource(source) && vfs.isLocalResource(destination) ) {
189 189
        try {
190
            netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
190
            netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect UniversalFileRead UniversalBrowserRead");
191 191
            var source_file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
192 192
            source_file.initWithPath(source);
193 193

  
194
			netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
194
			netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect UniversalFileRead UniversalBrowserRead");
195 195
            var destination_file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
196 196
            destination_file.initWithPath(destination);
197 197

  
......
213 213
////////////////////////////////////////////////////// DELETE /////////////////////////////////////////////////////////////////////
214 214

  
215 215
function delete_all_async(uris) {
216
	netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
216
	netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect UniversalFileRead UniversalBrowserRead");
217 217
	window.openDialog("dialogs/operation_dialog.xul", "Delete Files", "chrome,resizable,centerscreen,window, modal", "delete_all", uris);
218 218
	pithos_object.refreshLists();    
219 219
}
220 220

  
221 221
function delete_context_menu(uri) {
222
	netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
222
	netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect UniversalFileRead UniversalBrowserRead");
223 223
	var prompt = Components.classes["@mozilla.org/embedcomp/prompt-service;1"].getService(Components.interfaces.nsIPromptService);
224 224
	var result = prompt.confirm(window, "Confirm action", "Delete " + uri + "?");
225 225
	if ( result ) {
......
241 241
		promptAlert('No File/Directory is selected');
242 242
		return;
243 243
	}
244
	netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
244
	netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect UniversalFileRead UniversalBrowserRead");
245 245
	var prompt = Components.classes["@mozilla.org/embedcomp/prompt-service;1"].getService(Components.interfaces.nsIPromptService);
246 246
	var result = prompt.confirm(window, "Confirm action", "You are going to delete the " + resources.length + " item(s). Proceed?");
247 247
	
......
281 281
		return connection_obj.success(req.status);
282 282
	} else if ( vfs.isLocalResource(uri) ) {
283 283
		try {
284
			netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
284
			netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect UniversalFileRead UniversalBrowserRead");
285 285
			var file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
286 286
			file.initWithPath(uri);
287 287
			file.remove(true);
......
318 318
}
319 319

  
320 320
function movetotrash_context_menu(uri) {
321
	netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
321
	netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect UniversalFileRead UniversalBrowserRead");
322 322
	var prompt = Components.classes["@mozilla.org/embedcomp/prompt-service;1"].getService(Components.interfaces.nsIPromptService);
323 323
	var result = prompt.confirm(window, "Confirm action", "Delete " + uri + "?");
324 324
	if ( result ) {
......
339 339
		return connection_obj.success(req.status);
340 340
	} else if ( vfs.isLocalResource(uri) ) {
341 341
		try {
342
			netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
342
			netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect UniversalFileRead UniversalBrowserRead");
343 343
			var file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
344 344
			file.initWithPath(uri);
345 345
			file.remove(true);
......
366 366
/////////////////////////////////////////////////////////// SHARE ////////////////////////////////////////////////////////////////////////////////////
367 367

  
368 368
function share_event(source) {
369
	netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
369
	netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect UniversalFileRead UniversalBrowserRead");
370 370

  
371 371
	// Create a parameter list
372 372
	var params = { inp: source, out: null };
......
377 377
}
378 378

  
379 379
function share_resource(source, permissions) {
380
	netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
380
	netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect UniversalFileRead UniversalBrowserRead");
381 381
	var ret = connection_obj.rest_request_post(source, '?update=', jsonToString(permissions));
382 382

  
383 383
	// if status not acceptable, return the status code (false scenario)
......
395 395

  
396 396
function unshare_event(source) {
397 397
	// Example of source: http://pithos.grnet.gr/pithos/rest/aaitest@grnet-hq.admin.grnet.gr/files/Documents/
398
	netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
398
	netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect UniversalFileRead UniversalBrowserRead");
399 399

  
400 400
	// Get the metadata of the source
401 401
	var source_metadata = vfs.getResourceMetadata(source);
......
444 444
////////////////////////////////////////////////////// TAGS //////////////////////////////////////////////////////////////////////////////////////
445 445

  
446 446
function modifytags_event(source){
447
	netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
447
	netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect UniversalFileRead UniversalBrowserRead");
448 448
	window.openDialog("tags/tags.xul", "Modify tags", "chrome,dialog,modal,resizable",source);
449 449
}
450 450

  
......
453 453
///////////////////////////////////////////////////////////////////// RENAME ///////////////////////////////////////////////////////////////////////////////
454 454

  
455 455
function rename_context_menu(uri) {
456
	netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
456
	netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect UniversalFileRead UniversalBrowserRead");
457 457
	var prompt = Components.classes["@mozilla.org/embedcomp/prompt-service;1"].getService(Components.interfaces.nsIPromptService);
458 458
	var new_name = window.prompt("Enter the new name:", "");
459 459
	if ( new_name != null ) {
......
479 479
		return (connection_obj.success(req.status));
480 480
	} else if ( vfs.isLocalResource(uri) ) {
481 481
		try {
482
			netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
482
			netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect UniversalFileRead UniversalBrowserRead");
483 483
			var file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
484 484
			file.initWithPath(uri);
485 485
			file.moveTo(file.parent, new_name);
......
500 500
function launch_local_resource(uri) {
501 501
	if (  vfs.isLocalResource(uri) ) {
502 502
		try {
503
			netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
503
			netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect UniversalFileRead UniversalBrowserRead");
504 504
			var file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
505 505
			file.initWithPath(uri);
506 506
			file.launch();
......
569 569
////////////////////////////////////////////////// UNDELETE ///////////////////////////////////////////////////////////////////////////////
570 570

  
571 571
function restore_context_menu_trash(uri) {
572
    netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
572
    netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect UniversalFileRead UniversalBrowserRead");
573 573

  
574 574
    var theuri = uri;
575 575
    var theobj = vfs.getResourceMetadata(theuri);
b/src/pithos/content/pithos.js
39 39
}
40 40

  
41 41
function open_groups() {
42
	netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
42
	netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect UniversalFileRead UniversalBrowserRead");
43 43
	window.openDialog("groups/groups.xul", "Groups", "chrome,dialog,resizable,centerscreen");
44 44
	pithos_object.refreshLists();
45 45
}
46 46

  
47 47
function show_properties(uri) {
48
	netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
48
	netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect UniversalFileRead UniversalBrowserRead");
49 49
	window.openDialog("dialogs/file_properties.xul", "Trash", "chrome,dialog,resizable,centerscreen,width=400, height=300", uri);
50 50
}
51 51

  
b/src/pithos/content/ui.js
34 34

  
35 35
// This will display a prompt with Ok or Cancel, the result needs to be checked
36 36
function promptBox(message) {
37
    netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
37
    netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect UniversalFileRead UniversalBrowserRead");
38 38
    var prompts = Components.classes["@mozilla.org/embedcomp/prompt-service;1"].getService(Components.interfaces.nsIPromptService);
39 39
    var result = prompts.confirm(window, "Confirm action", message);
40 40
    
......
43 43

  
44 44
// This is just an alert box, using the prompt xpcom service
45 45
function promptAlert(message) {
46
    netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
46
    netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect UniversalFileRead UniversalBrowserRead");
47 47
    var prompts = Components.classes["@mozilla.org/embedcomp/prompt-service;1"].getService(Components.interfaces.nsIPromptService);
48 48
    prompts.alert(window, "Information", message);
49 49
}
......
51 51
// selList is an array of strings to be selected in this prompt
52 52
// outChoice is the index to the chosen string
53 53
function promptSelect(title,message,selList,outChoice) {
54
    netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
54
    netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect UniversalFileRead UniversalBrowserRead");
55 55
    var prompts = Components.classes["@mozilla.org/embedcomp/prompt-service;1"].getService(Components.interfaces.nsIPromptService);
56 56
    var res = prompts.select(null,title,message,selList.length,selList,outChoice);
57 57
    
b/src/pithos/content/util.js
55 55
}
56 56

  
57 57
function getHomeDirectory() {
58
	netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
58
	netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect UniversalFileRead UniversalBrowserRead");
59 59
	var dirService = Components.classes["@mozilla.org/file/directory_service;1"].getService(Components.interfaces.nsIProperties); 
60 60
	var homeDirFile = dirService.get("Home", Components.interfaces.nsIFile);
61 61
	
......
105 105
}
106 106

  
107 107
function getParentFolder(path) {
108
	netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
108
	netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect UniversalFileRead UniversalBrowserRead");
109 109
	var file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
110 110
	try {
111 111
		file.initWithPath(path);
......
136 136
	var drives = [];
137 137
	
138 138
	if (isWindows()) {
139
		netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
139
		netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect UniversalFileRead UniversalBrowserRead");
140 140
		var root = null; //Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
141 141
		try {
142 142
			root = moz.newLocalFile("\\\\.");
......
214 214

  
215 215
function saveBinaryFile(filename, data) {
216 216
    try {
217
        netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
217
        netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect UniversalFileRead UniversalBrowserRead");
218 218
        var aFile = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
219 219

  
220 220
        aFile.initWithPath( filename );
221 221
        aFile.createUnique( Components.interfaces.nsIFile.NORMAL_FILE_TYPE, 600);
222 222

  
223
		netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
223
		netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect UniversalFileRead UniversalBrowserRead");
224 224
        var stream = Components.classes["@mozilla.org/network/safe-file-output-stream;1"].createInstance(Components.interfaces.nsIFileOutputStream);
225 225
        stream.init(aFile, 0x04 | 0x08 | 0x20, 0600, 0); // write, create, truncate
226 226

  
......
239 239

  
240 240
function loadBinaryFile(filename) {
241 241
    try {
242
        netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
242
        netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect UniversalFileRead UniversalBrowserRead");
243 243
        var ios = Components.classes["@mozilla.org/network/io-service;1"].getService(Components.interfaces.nsIIOService);
244 244
        var url = ios.newURI(connection_obj.create_request_get(filename), null, null);
245 245

  
246 246
        if (!url || !url.schemeIs("file")) throw "Expected a file URL.";
247 247

  
248 248
        var afile = url.QueryInterface(Components.interfaces.nsIFileURL).file;
249
		netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
249
		netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect UniversalFileRead UniversalBrowserRead");
250 250
        var istream = Components.classes["@mozilla.org/network/file-input-stream;1"].createInstance(Components.interfaces.nsIFileInputStream);
251

  
251
		netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect UniversalFileRead UniversalBrowserRead");
252 252
        istream.init(afile, -1, -1, false);
253 253

  
254
		netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
254
		netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect UniversalFileRead UniversalBrowserRead");
255 255
        var bstream = Components.classes["@mozilla.org/binaryinputstream;1"].createInstance(Components.interfaces.nsIBinaryInputStream);
256 256
        bstream.setInputStream(istream);
257 257

  
b/src/pithos/content/vfs.js
108 108
			return (uri.charAt(uri.length - 1) == '/');
109 109
		} else if ( this.isLocalResource(uri)) {
110 110
			try {
111
				netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
111
				netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect UniversalFileRead UniversalBrowserRead");
112 112
				var file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
113 113
				file.initWithPath(uri);
114 114
                

Also available in: Unified diff