Bug 470455 - test_database_sync_embed_visits.js leaks, r=sdwilsh
[wine-gecko.git] / content / base / test / file_CrossSiteXHR_cache_server.sjs
blob25edebb7f9410b98e11187e4ee760bb47ed77813
1 function d(s) { dump(s + "\n"); }\r
2 \r
3 function handleRequest(request, response)\r
4 {\r
5   var query = {};\r
6   request.queryString.split('&').forEach(function (val) {\r
7     var [name, value] = val.split('=');\r
8     query[name] = unescape(value);\r
9   });\r
11   var isPreflight = request.method == "OPTIONS";\r
13   // Send response\r
15   response.setHeader("Access-Control-Allow-Origin", query.allowOrigin);\r
17   if (isPreflight) {\r
18     var secData = {};\r
20     if (request.hasHeader("Access-Control-Request-Headers")) {\r
21       var magicHeader =\r
22         request.getHeader("Access-Control-Request-Headers").split(",").\r
23         filter(function(name) /^magic-/.test(name))[0];\r
24     }\r
26     if (magicHeader) {\r
27       secData = eval(unescape(magicHeader.substr(6)));\r
28       secData.allowHeaders = (secData.allowHeaders || "") + "," + magicHeader;\r
29     }\r
31     if (secData.allowHeaders)\r
32       response.setHeader("Access-Control-Allow-Headers", secData.allowHeaders);\r
34     if (secData.allowMethods)\r
35       response.setHeader("Access-Control-Allow-Methods", secData.allowMethods);\r
37     if (secData.cacheTime)\r
38       response.setHeader("Access-Control-Max-Age", secData.cacheTime.toString());\r
40     return;\r
41   }\r
43   response.setHeader("Content-Type", "application/xml", false);\r
44   response.write("<res>hello pass</res>\n");\r
45 }\r