tor-browser

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

document.py (1179B)


      1 import os, sys, json
      2 
      3 from wptserve.utils import isomorphic_decode, isomorphic_encode
      4 
      5 import importlib
      6 util = importlib.import_module("common.security-features.scope.util")
      7 
      8 def main(request, response):
      9  policyDeliveries = json.loads(request.GET.first(b"policyDeliveries", b"[]"))
     10  maybe_additional_headers = {}
     11  meta = u''
     12  error = u''
     13  for delivery in policyDeliveries:
     14    if delivery[u'deliveryType'] == u'meta':
     15      if delivery[u'key'] == u'referrerPolicy':
     16        meta += u'<meta name="referrer" content="%s">' % delivery[u'value']
     17      else:
     18        error = u'invalid delivery key'
     19    elif delivery[u'deliveryType'] == u'http-rp':
     20      if delivery[u'key'] == u'referrerPolicy':
     21        maybe_additional_headers[b'Referrer-Policy'] = isomorphic_encode(delivery[u'value'])
     22      else:
     23        error = u'invalid delivery key'
     24    else:
     25      error = u'invalid deliveryType'
     26 
     27  handler = lambda: util.get_template(u"document.html.template") % ({
     28      u"meta": meta,
     29      u"error": error
     30  })
     31  util.respond(
     32      request,
     33      response,
     34      payload_generator=handler,
     35      content_type=b"text/html",
     36      maybe_additional_headers=maybe_additional_headers)