- From: Jake Archibald <notifications@github.com>
- Date: Wed, 24 Feb 2021 00:21:52 -0800
- To: whatwg/storage <storage@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
Received on Wednesday, 24 February 2021 08:22:06 UTC
Ignore the specifics of step 4 for now, I'm getting ahead of myself.
> Are the modifications performed by the pre-rendering page to sessionStorage discarded by the bottle transplant?
Yes, discarded, although some event may provide insight into which keys changed as a result of the transplant, and provide their old value.
So:
1. Main page has session storage `{ foo: 'bar', hello: 'world' }`.
1. Prerender created, which has a clone of session storage, so `{ foo: 'bar', hello: 'world' }`.
1. Main page sets 'username' to 'sarah' in session storage, so `{ foo: 'bar', hello: 'world', username: 'sarah' }`.
1. Prerender sets 'foo' to 'yo', and '123' to '456', so { foo: 'yo', hello: 'world', '123': '456' }`.
If prerender becomes the main page, it's session storage will be replaced with the main page's storage, and it gets an event that tells it:
- 'foo' changed, was 'yo'
- 'username' changed, was undefined
- '123' changed, was '456'
I don't know if this is a good idea yet, but I'm trying to get a sense for how complex it is vs making session storage 'work' across processes.
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/whatwg/storage/issues/119#issuecomment-784897334
Received on Wednesday, 24 February 2021 08:22:06 UTC