1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/content/canvas/test/crossorigin/video.sjs Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,43 @@ 1.4 +function parseQuery(request, key) { 1.5 + var params = request.queryString.split('&'); 1.6 + for (var j = 0; j < params.length; ++j) { 1.7 + var p = params[j]; 1.8 + if (p == key) 1.9 + return true; 1.10 + if (p.indexOf(key + "=") == 0) 1.11 + return p.substring(key.length + 1); 1.12 + if (p.indexOf("=") < 0 && key == "") 1.13 + return p; 1.14 + } 1.15 + return false; 1.16 +} 1.17 + 1.18 +function handleRequest(request, response) { 1.19 + var name = parseQuery(request, "name"); 1.20 + var type = parseQuery(request, "type"); 1.21 + var cors = parseQuery(request, "cors"); 1.22 + var file = Components.classes["@mozilla.org/file/directory_service;1"]. 1.23 + getService(Components.interfaces.nsIProperties). 1.24 + get("CurWorkD", Components.interfaces.nsILocalFile); 1.25 + var fis = Components.classes['@mozilla.org/network/file-input-stream;1']. 1.26 + createInstance(Components.interfaces.nsIFileInputStream); 1.27 + var bis = Components.classes["@mozilla.org/binaryinputstream;1"]. 1.28 + createInstance(Components.interfaces.nsIBinaryInputStream); 1.29 + var split = name.split("/"); 1.30 + for(var i = 0; i < split.length; ++i) { 1.31 + file.append(split[i]); 1.32 + } 1.33 + fis.init(file, -1, -1, false); 1.34 + bis.setInputStream(fis); 1.35 + var bytes = bis.readBytes(bis.available()); 1.36 + response.setHeader("Content-Length", ""+bytes.length, false); 1.37 + response.setHeader("Content-Type", type, false); 1.38 + if (cors == "anonymous") { 1.39 + response.setHeader("Access-Control-Allow-Origin", "*", false); 1.40 + } else if (cors == "use-credentials") { 1.41 + response.setHeader("Access-Control-Allow-Origin", "http://mochi.test:8888", false); 1.42 + response.setHeader("Access-Control-Allow-Credentials", "true", false); 1.43 + } 1.44 + response.write(bytes, bytes.length); 1.45 + bis.close(); 1.46 +}