README.md
1This directory contains the experimental Prerender2 implementation
2(https://crbug.com/1126305). This feature is now behind the
3`blink::features::kPrerender2` flag.
4
5# Summary
6
7Prerendering is "pre"-rendering, it's about pre-loading and rendering a page
8before the user actually navigates to it. The main goal of prerendering is to
9make the next page navigation faster, or ideally nearly instant.
10
11The Prerender2 is the new implementation of prerendering.
12
13# Terminology
14
15- **Activate**: The Prerender2 runs navigation code twice: navigation for
16 prerendering a page, and navigation for displaying the prerendered page.
17 "Activate" indicates the latter navigation.
18- **Legacy Prerender**: "Legacy Prerender" is the previous implementation of
19 prerendering that does not use NoStatePrefetch. This is already deprecated
20 (https://crbug.com/755921).
21- **NoStatePrefetch**: An internal mechanism for speculative prefetching of
22 pages and their subresources that are on a critical path of page loading
23 without executing any JavaScript or creating a complex state of the web
24 platform (https://www.chromestatus.com/feature/5928321099497472). This
25 mechanism is not purely "no state" because the HTTP cache allows to create
26 cookies and other state related to validating cache entries. The current
27 prerendering uses this mechanism, that is, it does not actually render pages,
28 while the Prerender2 renders pages.
29
30# References
31
32The date is the publication date, not the last updated date.
33
34- [Prerender2](https://docs.google.com/document/d/1P2VKCLpmnNm_cRAjUeE-bqLL0bslL_zKqiNeCzNom_w/edit?usp=sharing) (Oct, 2020)
35