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        GenerateIsReachable=ImplFrame
34    ] DOMApplicationCache {
35        // update status
36        const unsigned short UNCACHED = 0;
37        const unsigned short IDLE = 1;
38        const unsigned short CHECKING = 2;
39        const unsigned short DOWNLOADING = 3;
40        const unsigned short UPDATEREADY = 4;
41        const unsigned short OBSOLETE = 5;
42        readonly attribute unsigned short status;
43
44        void update()
45            raises(DOMException);
46        void swapCache()
47            raises(DOMException);
48
49        // events
50        attribute EventListener onchecking;
51        attribute EventListener onerror;
52        attribute EventListener onnoupdate;
53        attribute EventListener ondownloading;
54        attribute EventListener onprogress;
55        attribute EventListener onupdateready;
56        attribute EventListener oncached;
57        attribute EventListener onobsolete;
58
59        // EventTarget interface
60        void addEventListener(in DOMString type,
61                              in EventListener listener,
62                              in boolean useCapture);
63        void removeEventListener(in DOMString type,
64                                 in EventListener listener,
65                                 in boolean useCapture);
66        boolean dispatchEvent(in Event evt)
67            raises(EventException);
68    };
69
70}
71