<!DOCTYPE html>
<html>
<title>Service Workers: state</title>
    <head>
        <link rel="help" href="https://w3c.github.io/ServiceWorker/#service-worker-state">
        <script src="/resources/testharness.js"></script>
        <script src="/resources/testharnessreport.js"></script>

    </head>
    <body>

<!--

The [ServiceWorker][1] object can be in several states. The `state` attribute
must return the current state, which must be one of the following values
defined in the [ServiceWorkerState][2] enumeration:

`"installing"`:
    The Service Worker represented by the [ServiceWorker][1] object has entered
    and is running the steps in the [installation process][3]. During this
    state, `e.waitUntil(p)` can be called inside the `oninstall` event handler
    of the associcated [ServiceWorkerGloberScope][4] object to extend the life
    of the [installing worker][5] until the passed [Promise][6] resolves
    successfully. This is primarily used to ensure that the Service Worker is
    not active until all of the core caches are populated.
`"installed"`:
    The Service Worker represented by the [ServiceWorker][1] object has
    completed the steps in the [installation process][3]. The Service Worker in
    this state is considered the [worker in waiting][7].
`"activating"`:
    The Service Worker represented by the [ServiceWorker][1] object has entered
    and is running the steps in the [activation process][8]. During this state,
    `e.waitUntil(p)` can be called inside the `onactivate` event handler of the
    associated [ServiceWorkerGloberScope][9] object to extend the life of the
    activating [active worker][10] until the passed [Promise][6] resolves
    successfully. Note that no [functional events][11] are dispatched until the
    state becomes `"activated"`.
`"activated"`:
    The Service Worker represented by the [ServiceWorker][1] object has
    completed the steps in the [activation process][8]. The Service Worker in
    this state is considered the [active worker][10] ready to [control][12] the
    documents in matching scope upon subsequence [navigation][13].
`"redundant"`:
    A newly created Service Worker [registration][14] is replacing the current
    [registration][14] of the Service Worker.



[1]: #service-worker-interface
[2]: #service-worker-state-enum
[3]: #installation-process
[4]: #service-worker-glober-scope-interface
[5]: #installing-worker
[6]: http://goo.gl/3TobQS
[7]: #worker-in-waiting
[8]: #activation-process
[9]: #service-worker-global-scope-interface
[10]: #active-worker
[11]: #functional-events
[12]: #document-control
[13]: http://www.whatwg.org/specs/web-apps/current-work/multipage/history.html#navigate
[14]: #registration

-->



    <script>
        test(function() {
            // not_implemented();
        }, "There are no tests for section state so far.");
    </script>

    </body>
</html>

