| <!DOCTYPE html> | |
| <html> | |
| <title>Service Workers: Client</title> | |
| <head> | |
| <link rel="help" href="https://slightlyoff.github.io/ServiceWorker/spec/service_worker/#client"> | |
| <script src="/resources/testharness.js"></script> | |
| <script src="/resources/testharnessreport.js"></script> | |
| <script src=/resources/WebIDLParser.js></script> | |
| <script src=/resources/idlharness.js></script> | |
| </head> | |
| <body> | |
| <script type=text/plain id="idl_0"> | |
| [Constructor()] // no-op constructor | |
| interface Client { | |
| readonly attribute unsigned long id; | |
| void postMessage(any message, DOMString targetOrigin, | |
| optional sequence<Transferable> transfer); | |
| }; | |
| </pre> | |
| <!-- | |
| The `Client` interface represents the window or the worker (defined as client) | |
| that is [controlled][1] by the Service Worker. This object provides a no-op | |
| constructor. Callers should note that only `Client` objects created by the user | |
| agent (see [`this.clients.getServiced()`][2]) will provide meaningful | |
| functionality. | |
| The `id` of a `Client` identifies the specific client object from the list of | |
| client objects serviced by the Service Worker. The `postMessage(message, | |
| targetOrigin, transfer)` method of a `[Client][3]`, when called, causes a | |
| `[MessageEvent][4]` to be dispatched at the client object. | |
| [1]: #document-control | |
| [2]: #get-serviced-method | |
| [3]: #client-interface | |
| [4]: http://goo.gl/4SLWiH | |
| --> | |
| <script type=text/plain id="untested_idls"> | |
| interface Transferable {}; | |
| </pre> | |
| <script> | |
| var idl_array = new IdlArray(); | |
| idl_array.add_untested_idls(document.getElementById("untested_idls").textContent); | |
| idl_array.add_idls(document.getElementById("idl_0").textContent); | |
| idl_array.add_objects({ | |
| Client: ["throw new Error ('No object defined for the Client interface')"] | |
| }); | |
| idl_array.test(); | |
| </script> | |
| </body> | |
| </html> | |