<!DOCTYPE html>
<html>
<title>Service Workers: FetchEvent</title>
    <head>
        <link rel="help" href="https://w3c.github.io/ServiceWorker/#fetch-event-section">
        <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]
interface FetchEvent : Event {
  readonly attribute Request request;
  readonly attribute Client client; // The window issuing the request.
  readonly attribute Context context;
  readonly attribute boolean isReload;

  void respondWith(Promise<AbstractResponse> r);
  Promise<any> forwardTo(ScalarValueString url);
  Promise<any> default();
};

enum Context {
  "connect",
  "font",
  "img",
  "object",
  "script",
  "style",
  "worker",
  "popup",
  "child",
  "navigate"
};
</script>

<!--
Service Workers use the `[FetchEvent][1]` interface for `[fetch][2]` event.

[1]: #fetch-event-interface
[2]: #fetch-event
-->


    <script type=text/plain id="untested_idls">
        interface Request {};
        interface Client {};
        interface AbstractResponse {};
        interface ScalarValueString {};
        interface Event {};
    </script>

    <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({
            FetchEvent: ["throw new Error ('No object defined for the FetchEvent interface')"],
            Context: ["throw new Error ('No object defined for the Context enum')"]
        });
        idl_array.test();
    </script>

    </body>
</html>

