import json def main(request, response): requestData = request.GET if request.method == u"POST": requestData = request.POST coop = requestData.first(b"coop") coopReportOnly = requestData.first(b"coop-report-only", None) coep = requestData.first(b"coep") coepReportOnly = requestData.first(b"coep-report-only", None) redirect = requestData.first(b"redirect", None) if coop != b"": response.headers.set(b"Cross-Origin-Opener-Policy", coop) if coopReportOnly is not None: response.headers.set(b"Cross-Origin-Opener-Policy-Report-Only", coopReportOnly) if coep != b"": response.headers.set(b"Cross-Origin-Embedder-Policy", coep) if coepReportOnly is not None: response.headers.set(b"Cross-Origin-Embedder-Policy-Report-Only", coepReportOnly) if b'cache' in requestData: response.headers.set(b'Cache-Control', b'max-age=3600') host = request.url_parts[1] if redirect != None: response.status = 302 response.headers.set(b"Location", redirect) return # Collect relevant params to be visible to response JS params = {} for key in (b"navHistory", b"avoidBackAndForth", b"navigate", b"channel", b"responseToken", b"iframeToken"): value = requestData.first(key, None) params[key.decode()] = value and value.decode() response.content = b""" """ % json.dumps(params).encode("utf-8")