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

    </head>
    <body>

<!--

`self.fetch(request)` method must run these steps:

1.  Let `request` be a [request][1] represented by `request`.
2.  Set [`client`][2] of `request` to the [JavaScript global
    environment][3] represented by `self` object.
3.  Let `promise` be a newly-created [promise][4].
4.  Return `promise.`
5.  Run the following steps asynchronously:
    1.  Let `response` be the result of running [fetch algorithm][5] with
        `request` as its argument.
    2.  If `response` is a [network error][6], then:
        1.  Reject `promise` with a new [DOMException][7] whose name is
            "[NetworkError][8]".
    3.  Else,
        1.  Resolve `promise` with a new [Response][9] object associated
            with `response`.



[1]: http://goo.gl/ucOuXl
[2]: http://goo.gl/Oxj4xQ
[3]: http://goo.gl/ifwwCC
[4]: http://goo.gl/3TobQS
[5]: http://goo.gl/fGMifs
[6]: http://goo.gl/jprjjc
[7]: http://goo.gl/A0U8qC
[8]: http://goo.gl/lud5HB
[9]: http://goo.gl/Deazjv

-->



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

    </body>
</html>

