Page loads follow a two-step process. When a request for a new page load is received, the network request is initiated and the relevant data pertaining to the new page is stashed. While the non-blocking request is ongoing, the script thread is free to process further events, noting when they pertain to ongoing loads (such as resizes/viewport adjustments). When the initial response is received for an ongoing load, the second phase starts - the frame tree entry is created, along with the Window and Document objects, and the appropriate parser takes over the response body. Once parsing is complete, the document lifecycle for loading a page runs its course and the script thread returns to processing events in the main event loop.