coopHeaderCommon.sjs (931B)
1 function handleRequest(request, response) { 2 let { NetUtil } = ChromeUtils.importESModule( 3 "resource://gre/modules/NetUtil.sys.mjs" 4 ); 5 let query = new URLSearchParams(request.queryString); 6 7 response.setHeader("Cross-Origin-Opener-Policy", "same-origin", false); 8 response.setHeader("Cross-Origin-Embedder-Policy", "require-corp", false); 9 10 var fileRoot = query.get("fileRoot"); 11 12 // Get the desired file 13 var file; 14 getObjectState("SERVER_ROOT", function (serverRoot) { 15 file = serverRoot.getFile(fileRoot); 16 }); 17 18 // Set up the file streams to read in the file as UTF-8 19 let fstream = Cc["@mozilla.org/network/file-input-stream;1"].createInstance( 20 Ci.nsIFileInputStream 21 ); 22 23 fstream.init(file, -1, 0, 0); 24 25 // Read the file 26 let available = fstream.available(); 27 let data = 28 available > 0 ? NetUtil.readInputStreamToString(fstream, available) : ""; 29 fstream.close(); 30 31 response.write(data); 32 }