Re: [w3c/ServiceWorker] consider Client behavior for windows where initial about:blank is replaced with a loaded document (#1091)

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