tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

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)