mirror of
https://github.com/servo/servo
synced 2026-04-28 18:37:39 +02:00
35 lines
1.1 KiB
Python
35 lines
1.1 KiB
Python
import time
|
|
import json
|
|
import re
|
|
|
|
def main(request, response):
|
|
op = request.GET.first("op");
|
|
key = request.GET.first("reportID")
|
|
|
|
if op == "take":
|
|
timeout = float(request.GET.first("timeout"))
|
|
t0 = time.time()
|
|
while time.time() - t0 < timeout:
|
|
time.sleep(0.5)
|
|
value = request.server.stash.take(key=key)
|
|
if value is not None:
|
|
return [("Content-Type", "application/json")], value
|
|
|
|
return [("Content-Type", "application/json")], json.dumps({'error': 'No such report.' , 'guid' : key})
|
|
|
|
if op == "cookies":
|
|
cval = request.server.stash.take(key=re.sub('^...', 'ccc', key))
|
|
if cval is None:
|
|
cval = "\"None\""
|
|
|
|
return [("Content-Type", "application/json")], "{ \"reportCookies\" : " + cval + "}"
|
|
|
|
if hasattr(request, 'Cookies'):
|
|
request.server.stash.put(key=re.sub('^...', 'ccc', key), value=request.Cookies)
|
|
|
|
report = request.body
|
|
report.rstrip()
|
|
request.server.stash.take(key=key)
|
|
request.server.stash.put(key=key, value=report)
|
|
return [("Content-Type", "text/plain")], "Recorded report " + report
|