shared-storage-write-notify-parent.py (998B)
1 from wptserve.utils import isomorphic_decode 2 from wptserve.utils import isomorphic_encode 3 from urllib.parse import unquote 4 5 def unescape_query_value(query_value_bytes): 6 return isomorphic_encode(unquote(isomorphic_decode(query_value_bytes))) 7 8 def main(request, response): 9 writable_header = request.headers.get( 10 b"Sec-Shared-Storage-Writable", 11 b"NO_SHARED_STORAGE_WRITABLE_HEADER") 12 response.headers.append(b"Content-Type", b"text/html") 13 response.headers.append(b"Access-Control-Allow-Origin", b"*") 14 response.headers.append(b"Supports-Loading-Mode", b"fenced-frame") 15 if writable_header == b"?1" and b'write' in request.GET: 16 write_header = unescape_query_value(request.GET[b'write']) 17 response.headers.append(b"Shared-Storage-Write", write_header) 18 response.content = b''' 19 <script> 20 let parentOrOpener = window.opener || window.parent; 21 parentOrOpener.postMessage({ sharedStorageWritableHeader: '%s'}, "*"); 22 </script> 23 ''' % (writable_header)