PRESENTER STEPS:
TECHNICAL CONSIDERATIONS:
Prerendering:
Design and Status
Matt Falkenhagen, on behalf of the team
BlinkOn 14
Status and updates
BlinkOn 14
Same-origin
BlinkOn 14
Speculation rules
<script type="speculationrules">�{ prerender: [{ source: 'list', urls: ['next.html'] }] }�</script>
BlinkOn 14
Behaviors of prerendered content
BlinkOn 14
Restrictions on prerendered content
BlinkOn 14
Restricted APIs will mostly defer
document.addEventListener('prerenderingchange', () => {� console.log('activated!');�});
console.log(document.prerendering); // true;�const result = await navigator.frobinate();�console.log(document.prerendering); // false;
Outputs: “true”, “activated!”, “false”.
BlinkOn 14
What APIs to restrict
BlinkOn 14
Specification text
Modify the getCurrentPosition() method steps by prepending the following step:
If this's relevant global object's browsing context is a prerendering browsing context, then append the following steps to this's post-prerendering activation steps list and return.
BlinkOn 14
How this is implemented (idealized)
getCurrentPosition() {� if (document->IsPrerendering()) {
document->AddPostPrerenderActivationStep(
WTF::Bind(&getCurrentPosition));
return;�}
BlinkOn 14
WPT
BlinkOn 14
What have we done
BlinkOn 14
Special cases
BlinkOn 14
Storage
BlinkOn 14
Session storage
BlinkOn 14
Service worker
BlinkOn 14
Session history
BlinkOn 14
Try it now
BlinkOn 14
Discussion
BlinkOn 14
Archive
BlinkOn 14
Agenda
BlinkOn 14
Metrics (maybe drop this one)
BlinkOn 14
BlinkOn 14
BlinkOn 14
BlinkOn 14
BlinkOn 14
BlinkOn 14
BlinkOn 14
BlinkOn 14