tor-browser

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

generate-report-once.py (1116B)


      1 def main(request, response):
      2  # Handle CORS preflight requests
      3  if request.method == u'OPTIONS':
      4    # Always reject preflights for one subdomain
      5    if b"www2" in request.headers[b"Origin"]:
      6      return (400, [], u"CORS preflight rejected for www2")
      7    return [
      8        (b"Content-Type", b"text/plain"),
      9        (b"Access-Control-Allow-Origin", b"*"),
     10        (b"Access-Control-Allow-Methods", b"get"),
     11        (b"Access-Control-Allow-Headers", b"Content-Type"),
     12    ], u"CORS allowed"
     13 
     14  if b"reportID" in request.GET:
     15    key = request.GET.first(b"reportID")
     16  else:
     17    response.status = 400
     18    return "reportID parameter is required."
     19 
     20  with request.server.stash.lock:
     21    visited = request.server.stash.take(key=key)
     22    if visited is None:
     23      response.headers.set("Reporting-Endpoints",
     24                           b"default=\"/reporting/resources/report.py?reportID=%s\"" % key)
     25    request.server.stash.put(key=key, value=True)
     26 
     27  response.content = b"""
     28 <!DOCTYPE HTML>
     29 <meta charset=utf-8>
     30 <title>Generate deprecation report</title>
     31 <script>
     32  webkitRequestAnimationFrame(() => {});
     33 </script>
     34 """