- From: Ben Kelly <notifications@github.com>
- Date: Thu, 11 May 2017 08:04:04 -0700
- To: w3c/ServiceWorker <ServiceWorker@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
- Message-ID: <w3c/ServiceWorker/issues/1091/300817825@github.com>
I read through the meeting minutes and it seems we did not really come to conclusion here.
I need to do something for our implementation, though, so I'd like to make a sketch proposal we can discuss at the next meeting. Hopefully I will have something implemented behind a pref so we can try it out.
My idea is to be more explicit about the replacement case. Instead of putting the about:blank client ID in the `FetchEvent.reservedClientId` we expose it in a new `FetchEvent.initialClientId`.
I took the term "initial" here from the "initial about:blank document" used in the HTML spec. I also considered `replacementClientId`, but I think that's confusing because in other navigations the `targetClientId` is usually being replaced by the reserved client. When there is an initial about:blank we are actually *not* replacing the client, but reusing it. The document is getting replaced (but a client is not the document).
So for this code snippet:
```
// foo.html
let f = document.createElement('iframe');
document.body.appendChild(f);
f.contentWindow.someGlobalStatus = 'yuck';
f.src = 'frame.html';
```
The FetchEvent would have:
* clientId = foo.html window
* reservedClientId = null
* initialClientId = about:blank iframe window
* targetClientId = about:blank iframe window
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/w3c/ServiceWorker/issues/1091#issuecomment-300817825
Received on Thursday, 11 May 2017 15:04:40 UTC