<!DOCTYPE html>
<html>
<title>Service Workers: ServiceWorker</title>
    <head>
        <link rel="help" href="https://slightlyoff.github.io/ServiceWorker/spec/service_worker/#service-worker-obj">
        <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 ServiceWorker : Worker {
  readonly attribute DOMString scope;
  readonly attribute DOMString url;
  readonly attribute ServiceWorkerState state;

  // event
  attribute EventHandler onstatechange;
};

enum ServiceWorkerState {
  "installing",
  "installed",
  "activating",
  "activated",
  "redundant"
};
</pre>

<!--
The `ServiceWorker` interface represents the document-side view of a Service
Worker. This object provides a no-op constructor. Callers should note that only
`ServiceWorker` objects created by the user agent (see
`navigator.serviceWorker.installing`, `navigator.serviceWorker.waiting`,
`navigator.serviceWorker.active` and `navigator.serviceWorker.controller`) will
provide meaningful functionality.
-->


    <script type=text/plain id="untested_idls">
        interface EventHandler {};
        interface Worker {};
    </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({
            ServiceWorker: ["throw new Error ('No object defined for the ServiceWorker interface')"],
            ServiceWorkerState: ["throw new Error ('No object defined for the ServiceWorkerState enum')"]
        });
        idl_array.test();
    </script>

    </body>
</html>

