1/*
2 * Copyright (C) 2008, 2009 Apple Inc. All Rights Reserved.
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
6 * are met:
7 * 1. Redistributions of source code must retain the above copyright
8 *    notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright
10 *    notice, this list of conditions and the following disclaimer in the
11 *    documentation and/or other materials provided with the distribution.
12 *
13 * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
14 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
17 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
18 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
19 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
20 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
21 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24 */
25
26module offline {
27
28    interface [
29        Conditional=OFFLINE_WEB_APPLICATIONS,
30        EventTarget,
31        OmitConstructor,
32        DontCheckEnums
33    ] DOMApplicationCache {
34        // update status
35        const unsigned short UNCACHED = 0;
36        const unsigned short IDLE = 1;
37        const unsigned short CHECKING = 2;
38        const unsigned short DOWNLOADING = 3;
39        const unsigned short UPDATEREADY = 4;
40        const unsigned short OBSOLETE = 5;
41        readonly attribute unsigned short status;
42
43        void update()
44            raises(DOMException);
45        void swapCache()
46            raises(DOMException);
47
48        // events
49        attribute EventListener onchecking;
50        attribute EventListener onerror;
51        attribute EventListener onnoupdate;
52        attribute EventListener ondownloading;
53        attribute EventListener onprogress;
54        attribute EventListener onupdateready;
55        attribute EventListener oncached;
56        attribute EventListener onobsolete;
57
58        // EventTarget interface
59        void addEventListener(in DOMString type,
60                              in EventListener listener,
61                              in boolean useCapture);
62        void removeEventListener(in DOMString type,
63                                 in EventListener listener,
64                                 in boolean useCapture);
65        boolean dispatchEvent(in Event evt)
66            raises(EventException);
67    };
68
69}
70