summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/service-workers/stub-4.1-service-worker-global-scope.html
blob: 48697f01e62fa0203682476b93a8579cfe30ae65 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
<!DOCTYPE html>
<html>
<title>Service Workers: ServiceWorkerGlobalScope</title>
    <head>
        <link rel="help" href="https://w3c.github.io/ServiceWorker/#service-worker-global-scope">
        <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">
[Global]
interface ServiceWorkerGlobalScope : WorkerGlobalScope {
  readonly attribute CacheStorage caches;
  // A container for a list of window objects, identifiable by ID, that
  // correspond to windows (or workers) that are "controlled" by this SW
  readonly attribute ServiceWorkerClients clients;
  [Unforgeable] readonly attribute DOMString scope;

  Promise<any> fetch((Request or ScalarValueString) request);

  void update();
  void unregister();

  attribute EventHandler oninstall;
  attribute EventHandler onactivate;
  attribute EventHandler onfetch;
  attribute EventHandler onbeforeevicted;
  attribute EventHandler onevicted;

  // The event.source of these MessageEvents are instances of Client
  attribute EventHandler onmessage;

  // close() method inherited from WorkerGlobalScope is not exposed.
};
</pre>

<!--
The `ServiceWorkerGlobalScope` interface represents the global execution
context of a Service Worker. `ServiceWorkerGlobalScope` object provides
generic, event-driven, time-limited script execution contexts that run at an
origin. Once successfully [registered][1], a Service Worker is started, kept
alive and killed by their relationship to events, not documents. Any type of
synchronous requests MUST NOT be initiated inside of a Service Worker.

[1]: #navigator-service-worker-register
-->


    <script type=text/plain id="untested_idls">
        interface CacheStorage {};
        interface ServiceWorkerClients {};
        interface Request {};
        interface ScalarValueString {};
        interface EventHandler {};
        interface WorkerGlobalScope {};
    </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({
            ServiceWorkerGlobalScope: ["throw new Error ('No object defined for the ServiceWorkerGlobalScope interface')"]
        });
        idl_array.test();
    </script>

    </body>
</html>