2
* Copyright (C) 2010, 2011 Apple Inc. All rights reserved.
4
* Redistribution and use in source and binary forms, with or without
5
* modification, are permitted provided that the following conditions
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.
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.
29
#include <WebKit2/WKBase.h>
36
kWKCacheModelDocumentViewer = 0,
37
kWKCacheModelDocumentBrowser = 1,
38
kWKCacheModelPrimaryWebBrowser = 2
40
typedef uint32_t WKCacheModel;
42
// Injected Bundle Client
43
typedef void (*WKContextDidReceiveMessageFromInjectedBundleCallback)(WKContextRef page, WKStringRef messageName, WKTypeRef messageBody, const void *clientInfo);
44
typedef void (*WKContextDidReceiveSynchronousMessageFromInjectedBundleCallback)(WKContextRef page, WKStringRef messageName, WKTypeRef messageBody, WKTypeRef* returnData, const void *clientInfo);
45
typedef WKTypeRef (*WKContextGetInjectedBundleInitializationUserDataCallback)(WKContextRef context, const void *clientInfo);
47
struct WKContextInjectedBundleClient {
49
const void * clientInfo;
52
WKContextDidReceiveMessageFromInjectedBundleCallback didReceiveMessageFromInjectedBundle;
53
WKContextDidReceiveSynchronousMessageFromInjectedBundleCallback didReceiveSynchronousMessageFromInjectedBundle;
56
WKContextGetInjectedBundleInitializationUserDataCallback getInjectedBundleInitializationUserData;
58
typedef struct WKContextInjectedBundleClient WKContextInjectedBundleClient;
60
enum { kWKContextInjectedBundleClientCurrentVersion = 1 };
63
typedef void (*WKContextDidNavigateWithNavigationDataCallback)(WKContextRef context, WKPageRef page, WKNavigationDataRef navigationData, WKFrameRef frame, const void *clientInfo);
64
typedef void (*WKContextDidPerformClientRedirectCallback)(WKContextRef context, WKPageRef page, WKURLRef sourceURL, WKURLRef destinationURL, WKFrameRef frame, const void *clientInfo);
65
typedef void (*WKContextDidPerformServerRedirectCallback)(WKContextRef context, WKPageRef page, WKURLRef sourceURL, WKURLRef destinationURL, WKFrameRef frame, const void *clientInfo);
66
typedef void (*WKContextDidUpdateHistoryTitleCallback)(WKContextRef context, WKPageRef page, WKStringRef title, WKURLRef URL, WKFrameRef frame, const void *clientInfo);
67
typedef void (*WKContextPopulateVisitedLinksCallback)(WKContextRef context, const void *clientInfo);
69
struct WKContextHistoryClient {
71
const void * clientInfo;
72
WKContextDidNavigateWithNavigationDataCallback didNavigateWithNavigationData;
73
WKContextDidPerformClientRedirectCallback didPerformClientRedirect;
74
WKContextDidPerformServerRedirectCallback didPerformServerRedirect;
75
WKContextDidUpdateHistoryTitleCallback didUpdateHistoryTitle;
76
WKContextPopulateVisitedLinksCallback populateVisitedLinks;
78
typedef struct WKContextHistoryClient WKContextHistoryClient;
80
enum { kWKContextHistoryClientCurrentVersion = 0 };
83
typedef void (*WKContextDownloadDidStartCallback)(WKContextRef context, WKDownloadRef download, const void *clientInfo);
84
typedef void (*WKContextDownloadDidReceiveAuthenticationChallengeCallback)(WKContextRef context, WKDownloadRef download, WKAuthenticationChallengeRef authenticationChallenge, const void *clientInfo);
85
typedef void (*WKContextDownloadDidReceiveResponseCallback)(WKContextRef context, WKDownloadRef download, WKURLResponseRef response, const void *clientInfo);
86
typedef void (*WKContextDownloadDidReceiveDataCallback)(WKContextRef context, WKDownloadRef download, uint64_t length, const void *clientInfo);
87
typedef bool (*WKContextDownloadShouldDecodeSourceDataOfMIMETypeCallback)(WKContextRef context, WKDownloadRef download, WKStringRef mimeType, const void *clientInfo);
88
typedef WKStringRef (*WKContextDownloadDecideDestinationWithSuggestedFilenameCallback)(WKContextRef context, WKDownloadRef download, WKStringRef filename, bool* allowOverwrite, const void *clientInfo);
89
typedef void (*WKContextDownloadDidCreateDestinationCallback)(WKContextRef context, WKDownloadRef download, WKStringRef path, const void *clientInfo);
90
typedef void (*WKContextDownloadDidFinishCallback)(WKContextRef context, WKDownloadRef download, const void *clientInfo);
91
typedef void (*WKContextDownloadDidFailCallback)(WKContextRef context, WKDownloadRef download, WKErrorRef error, const void *clientInfo);
92
typedef void (*WKContextDownloadDidCancel)(WKContextRef context, WKDownloadRef download, const void *clientInfo);
93
typedef void (*WKContextDownloadProcessDidCrashCallback)(WKContextRef context, WKDownloadRef download, const void *clientInfo);
95
struct WKContextDownloadClient {
97
const void * clientInfo;
98
WKContextDownloadDidStartCallback didStart;
99
WKContextDownloadDidReceiveAuthenticationChallengeCallback didReceiveAuthenticationChallenge;
100
WKContextDownloadDidReceiveResponseCallback didReceiveResponse;
101
WKContextDownloadDidReceiveDataCallback didReceiveData;
102
WKContextDownloadShouldDecodeSourceDataOfMIMETypeCallback shouldDecodeSourceDataOfMIMEType;
103
WKContextDownloadDecideDestinationWithSuggestedFilenameCallback decideDestinationWithSuggestedFilename;
104
WKContextDownloadDidCreateDestinationCallback didCreateDestination;
105
WKContextDownloadDidFinishCallback didFinish;
106
WKContextDownloadDidFailCallback didFail;
107
WKContextDownloadDidCancel didCancel;
108
WKContextDownloadProcessDidCrashCallback processDidCrash;
110
typedef struct WKContextDownloadClient WKContextDownloadClient;
112
enum { kWKContextDownloadClientCurrentVersion = 0 };
115
typedef void (*WKContextDidCreateConnection)(WKContextRef context, WKConnectionRef connection, const void* clientInfo);
117
struct WKContextConnectionClient {
119
const void * clientInfo;
120
WKContextDidCreateConnection didCreateConnection;
122
typedef struct WKContextConnectionClient WKContextConnectionClient;
124
enum { kWKContextConnectionClientCurrentVersion = 0 };
127
kWKProcessModelSharedSecondaryProcess = 0,
128
kWKProcessModelMultipleSecondaryProcesses = 1
130
typedef uint32_t WKProcessModel;
132
WK_EXPORT WKTypeID WKContextGetTypeID();
134
WK_EXPORT WKContextRef WKContextCreate();
135
WK_EXPORT WKContextRef WKContextCreateWithInjectedBundlePath(WKStringRef path);
137
WK_EXPORT void WKContextSetInjectedBundleClient(WKContextRef context, const WKContextInjectedBundleClient* client);
138
WK_EXPORT void WKContextSetHistoryClient(WKContextRef context, const WKContextHistoryClient* client);
139
WK_EXPORT void WKContextSetDownloadClient(WKContextRef context, const WKContextDownloadClient* client);
140
WK_EXPORT void WKContextSetConnectionClient(WKContextRef context, const WKContextConnectionClient* client);
142
WK_EXPORT WKDownloadRef WKContextDownloadURLRequest(WKContextRef context, const WKURLRequestRef request);
144
WK_EXPORT void WKContextSetInitializationUserDataForInjectedBundle(WKContextRef context, WKTypeRef userData);
145
WK_EXPORT void WKContextPostMessageToInjectedBundle(WKContextRef context, WKStringRef messageName, WKTypeRef messageBody);
147
WK_EXPORT void WKContextAddVisitedLink(WKContextRef context, WKStringRef visitedURL);
149
WK_EXPORT void WKContextSetCacheModel(WKContextRef context, WKCacheModel cacheModel);
150
WK_EXPORT WKCacheModel WKContextGetCacheModel(WKContextRef context);
152
WK_EXPORT void WKContextSetProcessModel(WKContextRef context, WKProcessModel processModel);
153
WK_EXPORT WKProcessModel WKContextGetProcessModel(WKContextRef context);
155
WK_EXPORT void WKContextStartMemorySampler(WKContextRef context, WKDoubleRef interval);
156
WK_EXPORT void WKContextStopMemorySampler(WKContextRef context);
158
WK_EXPORT WKApplicationCacheManagerRef WKContextGetApplicationCacheManager(WKContextRef context);
159
WK_EXPORT WKBatteryManagerRef WKContextGetBatteryManager(WKContextRef context);
160
WK_EXPORT WKCookieManagerRef WKContextGetCookieManager(WKContextRef context);
161
WK_EXPORT WKDatabaseManagerRef WKContextGetDatabaseManager(WKContextRef context);
162
WK_EXPORT WKGeolocationManagerRef WKContextGetGeolocationManager(WKContextRef context);
163
WK_EXPORT WKIconDatabaseRef WKContextGetIconDatabase(WKContextRef context);
164
WK_EXPORT WKKeyValueStorageManagerRef WKContextGetKeyValueStorageManager(WKContextRef context);
165
WK_EXPORT WKMediaCacheManagerRef WKContextGetMediaCacheManager(WKContextRef context);
166
WK_EXPORT WKNetworkInfoManagerRef WKContextGetNetworkInfoManager(WKContextRef context);
167
WK_EXPORT WKNotificationManagerRef WKContextGetNotificationManager(WKContextRef context);
168
WK_EXPORT WKPluginSiteDataManagerRef WKContextGetPluginSiteDataManager(WKContextRef context);
169
WK_EXPORT WKResourceCacheManagerRef WKContextGetResourceCacheManager(WKContextRef context);
171
typedef void (*WKContextGetStatisticsFunction)(WKDictionaryRef statistics, WKErrorRef error, void* functionContext);
172
WK_EXPORT void WKContextGetStatistics(WKContextRef context, void* functionContext, WKContextGetStatisticsFunction function);
174
WK_EXPORT void WKContextGarbageCollectJavaScriptObjects(WKContextRef context);
175
WK_EXPORT void WKContextSetJavaScriptGarbageCollectorTimerEnabled(WKContextRef context, bool enable);
181
#endif /* WKContext_h */