- From: Jake Archibald <notifications@github.com>
- Date: Thu, 08 Sep 2016 03:37:47 -0700
- To: w3c/ServiceWorker <ServiceWorker@noreply.github.com>
- Message-ID: <w3c/ServiceWorker/issues/870/245559217@github.com>
There's a lot of confusion around `targetId`, and reading back I've made some confusing statements too. Let me try and clarify: * `clientId` - the client that initiated the request. * `reservedClientId` - the client that the response may create. Undefined if the response may never result in a new client (subresources). * `targetClientId` - the client that would become unloaded if the response creates a client. Undefined if the response is not replacing an existing client. In https://github.com/w3c/ServiceWorker/issues/870#issuecomment-208498912 I suggested that `targetClientId` may sometimes be the same as `reservedClientId`. I think this is a mistake, and probably the cause of a lot of confusion in this thread - sorry! `targetClientId` will never be the same as `reservedClientId`. # Subresrouce `page1.html`: ```html <script src="script.js"></script> ``` For the request for `script.js`: * `clientId` - the client for `page1.html` * `reservedClientId` - undefined as this is a subresource request * `targetClientId` - undefined as this is a subresource request # Simple navigation `page1.html` ```html <a href="page2.html">Hello</a> ``` When the link is clicked without modifiers, the request for `page2.html`: * `clientId` - the client for `page1.html` * `reservedClientId` - the client that will be used to display `page2.html` * `targetClientId` - the same ID as `clientId`, as page2 replaces page1 # New window navigation `page1.html` ```html <a href="page2.html" target="_blank">Hello</a> ``` When the link is clicked without modifiers, the request for `page2.html`: * `clientId` - the client for `page1.html` * `reservedClientId` - the new client that will be used to display `page2.html` * `targetClientId` - undefined, as page2 is not replacing anything # Other window navigation `page1.html` ```html <iframe name="foo" src="page2.html"> <a href="page3.html" target="foo">Hello</a> ``` When the link is clicked without modifiers, the request for `page3.html`: * `clientId` - the client for `page1.html` * `reservedClientId` - the new client that will be used to display `page3.html` * `targetClientId` - the client for `page2.html` # Worker `page1.html` ```html <script>new Worker('script.js');</script> ``` The request for `script.js`: * `clientId` - the client for `page1.html` * `reservedClientId` - the new client that will be used to execute the worker * `targetClientId` - undefined, nothing is being replaced -- 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/870#issuecomment-245559217
Received on Thursday, 8 September 2016 10:38:15 UTC