postToParent.py (977B)
1 import json 2 from cookies.resources import helpers 3 4 from wptserve.utils import isomorphic_decode 5 6 def main(request, response): 7 headers = helpers.setNoCacheAndCORSHeaders(request, response) 8 cookies = helpers.readCookies(request) 9 headers.append((b"Content-Type", b"text/html; charset=utf-8")) 10 11 tmpl = u""" 12 <!DOCTYPE html> 13 <script> 14 var data = %s; 15 data.type = "COOKIES"; 16 17 try { 18 data.domcookies = document.cookie; 19 } catch (e) {} 20 21 if (window.parent != window) { 22 window.parent.postMessage(data, "*"); 23 if (window.top != window.parent) 24 window.top.postMessage(data, "*"); 25 } 26 27 28 if (window.opener) 29 window.opener.postMessage(data, "*"); 30 31 window.addEventListener("message", e => { 32 console.log(e); 33 if (e.data == "reload") 34 window.location.reload(); 35 }); 36 </script> 37 """ 38 decoded_cookies = {isomorphic_decode(key): isomorphic_decode(val) for key, val in cookies.items()} 39 return headers, tmpl % json.dumps(decoded_cookies)