Re: [ServiceWorker] Make FetchEvent.prototype.client nullable (#631)

> What is an empty environment settings object? And what does that mean for client?

Just an empty object in case it makes more sense to give it a symbolic name than null. It should mean null for `client` I think.

> How does that work? What does postMessage() do?
My question is not about how it works but what the `client` should be conceptually? And you can `postMessage()` to a Client object that represents the event's request's client like as you can with the Client objects gotten from `self.clients.matchAll({ includeUncontrolled: true })`.

> (I see in the specification you have linked postMessage() to the definition for window's postMessage(). That's bogus. You need to define it yourself.

Agreed.

> Where does the specification define the steps to create a Client object? Surely you cannot create one before you have created the environment?

Yes, you cannot create one before having a client environment. My thought for the 'FetchEvent.prototype.client`'s value for `client requests` was not about creating one without a client environment, but creating one for the event's request's client. (rather than the one for the requested resource.)

Re the steps to create `WindowClient`, [Capture Window Client](https://slightlyoff.github.io/ServiceWorker/spec/service_worker/#capture-windowclient-algorithm) does that.

For `Client` objects need to be created during Handle a Fetch, I found I need to update the related text.

---
Reply to this email directly or view it on GitHub:
https://github.com/slightlyoff/ServiceWorker/issues/631#issuecomment-75716849

Received on Tuesday, 24 February 2015 08:28:59 UTC