respond-slowly.py (1116B)
1 import time 2 3 4 def main(request, response): 5 head = b"""<script> 6 let navigationTiming = performance.getEntriesByType('navigation')[0]; 7 let originalResponseEnd = navigationTiming.responseEnd; 8 let originalDuration = navigationTiming.duration; 9 function checkResponseEnd() { 10 let responseEndDuringLoadEvent = navigationTiming.responseEnd; 11 let durationDuringLoadEvent = navigationTiming.duration; 12 setTimeout(function() { 13 parent.postMessage([ 14 originalResponseEnd, 15 originalDuration, 16 responseEndDuringLoadEvent, 17 durationDuringLoadEvent, 18 navigationTiming.responseEnd, 19 navigationTiming.duration], '*'); 20 }, 0); 21 } 22 </script><body onload='checkResponseEnd()'>""" 23 response.headers.set(b"Content-Length", str(len(head) + 1000)) 24 response.headers.set(b"Content-Type", b"text/html") 25 response.write_status_headers() 26 response.writer.write_content(head) 27 for i in range(100): 28 response.writer.write_content(b"1234567890") 29 time.sleep(0.01)