blob: 7f50b512b1cfa4dde02da6fb0c83b09f4501ea01 [file] [log] [blame]
Ben Murdoch65f03d42011-05-13 16:23:25 +01001/*
2 * Copyright (C) 2010 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. AND ITS CONTRIBUTORS ``AS IS''
14 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
15 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
17 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
18 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
19 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
20 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
21 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
22 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
23 * THE POSSIBILITY OF SUCH DAMAGE.
24 */
25
26#ifndef APIObject_h
27#define APIObject_h
28
29#include <wtf/RefCounted.h>
30
31namespace WebKit {
32
33class APIObject : public RefCounted<APIObject> {
34public:
35 enum Type {
36 // Base types
37 TypeNull = 0,
38 TypeArray,
39 TypeAuthenticationChallenge,
40 TypeAuthenticationDecisionListener,
41 TypeCertificateInfo,
42 TypeContextMenuItem,
43 TypeCredential,
44 TypeData,
45 TypeDictionary,
46 TypeError,
Steve Block2fc26512011-05-18 13:36:51 +010047 TypeGraphicsContext,
Ben Murdoch65f03d42011-05-13 16:23:25 +010048 TypeImage,
49 TypeProtectionSpace,
50 TypeSecurityOrigin,
51 TypeSerializedScriptValue,
52 TypeString,
53 TypeURL,
54 TypeURLRequest,
55 TypeURLResponse,
56 TypeUserContentURLPattern,
57
58 // Base numeric types
59 TypeBoolean,
60 TypeDouble,
61 TypeUInt64,
62
63 // UIProcess types
Ben Murdoch81bc7502011-05-24 11:24:40 +010064 TypeApplicationCacheManager,
Ben Murdoch65f03d42011-05-13 16:23:25 +010065 TypeBackForwardList,
66 TypeBackForwardListItem,
Ben Murdoch81bc7502011-05-24 11:24:40 +010067 TypeCacheManager,
Ben Murdoch65f03d42011-05-13 16:23:25 +010068 TypeContext,
Ben Murdoch81bc7502011-05-24 11:24:40 +010069 TypeCookieManager,
Ben Murdoch65f03d42011-05-13 16:23:25 +010070 TypeDatabaseManager,
71 TypeDownload,
72 TypeFormSubmissionListener,
73 TypeFrame,
74 TypeFramePolicyListener,
Steve Block2bde8e42011-05-25 19:08:45 +010075 TypeFullScreenManager,
Ben Murdoch65f03d42011-05-13 16:23:25 +010076 TypeGeolocationManager,
77 TypeGeolocationPermissionRequest,
78 TypeGeolocationPosition,
Steve Block2bde8e42011-05-25 19:08:45 +010079 TypeIconDatabase,
Ben Murdoch65f03d42011-05-13 16:23:25 +010080 TypeInspector,
Ben Murdoch81bc7502011-05-24 11:24:40 +010081 TypeKeyValueStorageManager,
Steve Block2bde8e42011-05-25 19:08:45 +010082 TypeMediaCacheManager,
Ben Murdoch65f03d42011-05-13 16:23:25 +010083 TypeNavigationData,
84 TypeOpenPanelParameters,
85 TypeOpenPanelResultListener,
86 TypePage,
87 TypePageGroup,
Ben Murdoch81bc7502011-05-24 11:24:40 +010088 TypePluginSiteDataManager,
Ben Murdoch65f03d42011-05-13 16:23:25 +010089 TypePreferences,
90
91 // Bundle types
92 TypeBundle,
93 TypeBundleBackForwardList,
94 TypeBundleBackForwardListItem,
95 TypeBundleFrame,
96 TypeBundleHitTestResult,
Steve Block2fc26512011-05-18 13:36:51 +010097 TypeBundleInspector,
98 TypeBundleNavigationAction,
Ben Murdoch65f03d42011-05-13 16:23:25 +010099 TypeBundleNodeHandle,
100 TypeBundlePage,
101 TypeBundlePageGroup,
102 TypeBundlePageOverlay,
103 TypeBundleRangeHandle,
104 TypeBundleScriptWorld,
105
106 // Platform specific
Steve Block2bde8e42011-05-25 19:08:45 +0100107 TypeView,
108 TypeEditCommandProxy
Ben Murdoch65f03d42011-05-13 16:23:25 +0100109 };
110
111 virtual ~APIObject()
112 {
113 }
114
115 virtual Type type() const = 0;
116
117protected:
118 APIObject()
119 {
120 }
121};
122
123} // namespace WebKit
124
125#endif // APIObject_h