import random import time from wptserve.utils import isomorphic_decode """ This script serves """ def main(request, response): inlineOrExternal = request.GET.first(b"inlineOrExternal", b"null") hasBlockingStylesheet = request.GET.first(b"hasBlockingStylesheet", b"true") == b"true" result = request.GET.first(b"result", b"success") type = u"text/javascript" if request.GET.first(b"type", b"classic") == b"classic" else u"module" response.headers.set(b"Content-Type", b"text/html; charset=utf-8") response.headers.set(b"Transfer-Encoding", b"chunked") response.write_status_headers() # Step 1: Start parsing. body = u""" """ if hasBlockingStylesheet: body += u""" """ % random.random() body += u""" """ if inlineOrExternal == b"inline" or inlineOrExternal == b"external" or inlineOrExternal == b"empty-src": body += u""" """ # Trigger DOM processing body += u"A" * 100000 response.writer.write(u"%x\r\n" % len(body)) response.writer.write(body) response.writer.write(u"\r\n") body = u"" if inlineOrExternal == b"inline": time.sleep(1) body += u""" """ elif inlineOrExternal == b"external": time.sleep(1) body += u""" """ % (type, isomorphic_decode(result), random.random()) elif inlineOrExternal == b"empty-src": time.sleep(1) body += u""" """ % (type,) # // if readyToEvaluate is false, the script is probably # // wasn't blocked by stylesheets as expected. # Trigger DOM processing body += u"B" * 100000 response.writer.write(u"%x\r\n" % len(body)) response.writer.write(body) response.writer.write(u"\r\n") response.writer.write(u"0\r\n") response.writer.write(u"\r\n")