| import time |
| |
| |
| def main(request, response): |
| head = b"""<script> |
| let navigationTiming = performance.getEntriesByType('navigation')[0]; |
| let originalResponseEnd = navigationTiming.responseEnd; |
| let originalDuration = navigationTiming.duration; |
| function checkResponseEnd() { |
| let responseEndDuringLoadEvent = navigationTiming.responseEnd; |
| let durationDuringLoadEvent = navigationTiming.duration; |
| setTimeout(function() { |
| parent.postMessage([ |
| originalResponseEnd, |
| originalDuration, |
| responseEndDuringLoadEvent, |
| durationDuringLoadEvent, |
| navigationTiming.responseEnd, |
| navigationTiming.duration], '*'); |
| }, 0); |
| } |
| </script><body onload='checkResponseEnd()'>""" |
| response.headers.set(b"Content-Length", str(len(head) + 1000)) |
| response.headers.set(b"Content-Type", b"text/html") |
| response.write_status_headers() |
| response.writer.write_content(head) |
| for i in range(100): |
| response.writer.write_content(b"1234567890") |
| time.sleep(0.01) |