|  | <!DOCTYPE html> | 
|  | <html> | 
|  | <title>Service Workers: onmessage</title> | 
|  | <head> | 
|  | <link rel="help" href="https://slightlyoff.github.io/ServiceWorker/spec/service_worker/#service-worker-global-scope-onmessage"> | 
|  | <script src="/resources/testharness.js"></script> | 
|  | <script src="/resources/testharnessreport.js"></script> | 
|  |  | 
|  | </head> | 
|  | <body> | 
|  |  | 
|  | <!-- | 
|  |  | 
|  | `self.onmessage` is the [event handler][1] that must be supported as attribute | 
|  | by the `ServiceWorkerGlobalScope` object. `ServiceWorkerGlobalScope` objects | 
|  | act as if they had an implicit `[MessagePort][2]` associated with them. This | 
|  | port is part of a channel that is set up when the worker is created, but it is | 
|  | not exposed. This object must never be garbage collected before the | 
|  | `ServiceWorkerGlobalScope` object. | 
|  |  | 
|  | All messages received by that port must immediately be retargeted at the | 
|  | `ServiceWorkerGlobalScope` object. That is, an event named `message` using the | 
|  | `[MessageEvent][3]` interface is dispatched on ServiceWorkerGlobalScope object. | 
|  | The `event.source` of these `[MessageEvent][3]`s are instances of `[Client][4]`. | 
|  |  | 
|  |  | 
|  |  | 
|  | [1]: http://goo.gl/rBfiz0 | 
|  | [2]: http://goo.gl/tHBrI6 | 
|  | [3]: http://goo.gl/S5e0b6 | 
|  | [4]: #client-interface | 
|  |  | 
|  | --> | 
|  |  | 
|  |  | 
|  |  | 
|  | <script> | 
|  | test(function() { | 
|  | // not_implemented(); | 
|  | }, "There are no tests for section onmessage so far."); | 
|  | </script> | 
|  |  | 
|  | </body> | 
|  | </html> | 
|  |  |