| # This will echo the 'Sec-Required-Document-Policy' request header in the body | |
| # of the response, as well as in the 'Document-Policy' response header (to | |
| # ensure the response is loaded by a user agent which is implementing document | |
| # policy.) | |
| import json | |
| from wptserve.utils import isomorphic_decode | |
| def main(request, response): | |
| msg = {} | |
| headers = [(b'Content-Type', b'text/html')] | |
| srdp = request.headers.get(b'Sec-Required-Document-Policy') | |
| if srdp: | |
| msg[u'requiredPolicy'] = isomorphic_decode(srdp) | |
| headers.append((b'Document-Policy', srdp)) | |
| frameId = request.GET.first(b'id',None) | |
| if frameId: | |
| msg[u'id'] = isomorphic_decode(frameId) | |
| content = u"""<!DOCTYPE html> | |
| <script> | |
| top.postMessage(%s, "*"); | |
| </script> | |
| %s | |
| """ % (json.dumps(msg), isomorphic_decode(srdp) if srdp != None else srdp) | |
| return (200, u'OK'), headers, content | |