partitioned.sjs (890B)
1 function handleRequest(aRequest, aResponse) { 2 if (aRequest.hasHeader("Origin")) { 3 let origin = aRequest.getHeader("Origin"); 4 aResponse.setHeader("Access-Control-Allow-Origin", origin); 5 aResponse.setHeader("Access-Control-Allow-Credentials", "true"); 6 } 7 8 var params = new URLSearchParams(aRequest.queryString); 9 if (params.has("redirect")) { 10 aResponse.setHeader("Location", params.get("redirect")); 11 aResponse.setStatusLine(aRequest.httpVersion, 302); 12 } else { 13 aResponse.setStatusLine(aRequest.httpVersion, 200); 14 } 15 16 if (params.has("nocookie")) { 17 return; 18 } 19 20 if (params.has("nosecure")) { 21 aResponse.setHeader("Set-Cookie", "c=3; Partitioned;", true); 22 23 return; 24 } 25 26 aResponse.setHeader("Set-Cookie", "a=1; SameSite=None; Secure", true); 27 aResponse.setHeader( 28 "Set-Cookie", 29 "b=2; Partitioned; SameSite=None; Secure", 30 true 31 ); 32 }