WKContext.h revision 2daae5fd11344eaa88a0d92b0f6d65f8d2255c00
1/* 2 * Copyright (C) 2010, 2011 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 WKContext_h 27#define WKContext_h 28 29#include <WebKit2/WKBase.h> 30 31#ifdef __cplusplus 32extern "C" { 33#endif 34 35enum { 36 kWKCacheModelDocumentViewer = 0, 37 kWKCacheModelDocumentBrowser = 1, 38 kWKCacheModelPrimaryWebBrowser = 2 39}; 40typedef uint32_t WKCacheModel; 41 42// Injected Bundle Client 43typedef void (*WKContextDidReceiveMessageFromInjectedBundleCallback)(WKContextRef page, WKStringRef messageName, WKTypeRef messageBody, const void *clientInfo); 44typedef void (*WKContextDidReceiveSynchronousMessageFromInjectedBundleCallback)(WKContextRef page, WKStringRef messageName, WKTypeRef messageBody, WKTypeRef* returnData, const void *clientInfo); 45 46struct WKContextInjectedBundleClient { 47 int version; 48 const void * clientInfo; 49 WKContextDidReceiveMessageFromInjectedBundleCallback didReceiveMessageFromInjectedBundle; 50 WKContextDidReceiveSynchronousMessageFromInjectedBundleCallback didReceiveSynchronousMessageFromInjectedBundle; 51}; 52typedef struct WKContextInjectedBundleClient WKContextInjectedBundleClient; 53 54// History Client 55typedef void (*WKContextDidNavigateWithNavigationDataCallback)(WKContextRef context, WKPageRef page, WKNavigationDataRef navigationData, WKFrameRef frame, const void *clientInfo); 56typedef void (*WKContextDidPerformClientRedirectCallback)(WKContextRef context, WKPageRef page, WKURLRef sourceURL, WKURLRef destinationURL, WKFrameRef frame, const void *clientInfo); 57typedef void (*WKContextDidPerformServerRedirectCallback)(WKContextRef context, WKPageRef page, WKURLRef sourceURL, WKURLRef destinationURL, WKFrameRef frame, const void *clientInfo); 58typedef void (*WKContextDidUpdateHistoryTitleCallback)(WKContextRef context, WKPageRef page, WKStringRef title, WKURLRef URL, WKFrameRef frame, const void *clientInfo); 59typedef void (*WKContextPopulateVisitedLinksCallback)(WKContextRef context, const void *clientInfo); 60 61struct WKContextHistoryClient { 62 int version; 63 const void * clientInfo; 64 WKContextDidNavigateWithNavigationDataCallback didNavigateWithNavigationData; 65 WKContextDidPerformClientRedirectCallback didPerformClientRedirect; 66 WKContextDidPerformServerRedirectCallback didPerformServerRedirect; 67 WKContextDidUpdateHistoryTitleCallback didUpdateHistoryTitle; 68 WKContextPopulateVisitedLinksCallback populateVisitedLinks; 69}; 70typedef struct WKContextHistoryClient WKContextHistoryClient; 71 72// Download Client 73typedef void (*WKContextDownloadDidStartCallback)(WKContextRef context, WKDownloadRef download, const void *clientInfo); 74typedef void (*WKContextDownloadDidReceiveAuthenticationChallengeCallback)(WKContextRef context, WKDownloadRef download, WKAuthenticationChallengeRef authenticationChallenge, const void *clientInfo); 75typedef void (*WKContextDownloadDidReceiveResponseCallback)(WKContextRef context, WKDownloadRef download, WKURLResponseRef response, const void *clientInfo); 76typedef void (*WKContextDownloadDidReceiveDataCallback)(WKContextRef context, WKDownloadRef download, uint64_t length, const void *clientInfo); 77typedef bool (*WKContextDownloadShouldDecodeSourceDataOfMIMETypeCallback)(WKContextRef context, WKDownloadRef download, WKStringRef mimeType, const void *clientInfo); 78typedef WKStringRef (*WKContextDownloadDecideDestinationWithSuggestedFilenameCallback)(WKContextRef context, WKDownloadRef download, WKStringRef filename, bool* allowOverwrite, const void *clientInfo); 79typedef void (*WKContextDownloadDidCreateDestinationCallback)(WKContextRef context, WKDownloadRef download, WKStringRef path, const void *clientInfo); 80typedef void (*WKContextDownloadDidFinishCallback)(WKContextRef context, WKDownloadRef download, const void *clientInfo); 81typedef void (*WKContextDownloadDidFailCallback)(WKContextRef context, WKDownloadRef download, WKErrorRef error, const void *clientInfo); 82typedef void (*WKContextDownloadDidCancel)(WKContextRef context, WKDownloadRef download, const void *clientInfo); 83typedef void (*WKContextDownloadProcessDidCrashCallback)(WKContextRef context, WKDownloadRef download, const void *clientInfo); 84 85struct WKContextDownloadClient { 86 int version; 87 const void * clientInfo; 88 WKContextDownloadDidStartCallback didStart; 89 WKContextDownloadDidReceiveAuthenticationChallengeCallback didReceiveAuthenticationChallenge; 90 WKContextDownloadDidReceiveResponseCallback didReceiveResponse; 91 WKContextDownloadDidReceiveDataCallback didReceiveData; 92 WKContextDownloadShouldDecodeSourceDataOfMIMETypeCallback shouldDecodeSourceDataOfMIMEType; 93 WKContextDownloadDecideDestinationWithSuggestedFilenameCallback decideDestinationWithSuggestedFilename; 94 WKContextDownloadDidCreateDestinationCallback didCreateDestination; 95 WKContextDownloadDidFinishCallback didFinish; 96 WKContextDownloadDidFailCallback didFail; 97 WKContextDownloadDidCancel didCancel; 98 WKContextDownloadProcessDidCrashCallback processDidCrash; 99}; 100typedef struct WKContextDownloadClient WKContextDownloadClient; 101 102WK_EXPORT WKTypeID WKContextGetTypeID(); 103 104WK_EXPORT WKContextRef WKContextCreate(); 105WK_EXPORT WKContextRef WKContextCreateWithInjectedBundlePath(WKStringRef path); 106WK_EXPORT WKContextRef WKContextGetSharedProcessContext(); 107 108WK_EXPORT void WKContextSetInjectedBundleClient(WKContextRef context, const WKContextInjectedBundleClient* client); 109WK_EXPORT void WKContextSetHistoryClient(WKContextRef context, const WKContextHistoryClient* client); 110WK_EXPORT void WKContextSetDownloadClient(WKContextRef context, const WKContextDownloadClient* client); 111 112WK_EXPORT WKDownloadRef WKContextDownloadURLRequest(WKContextRef context, const WKURLRequestRef request); 113 114WK_EXPORT void WKContextSetInitializationUserDataForInjectedBundle(WKContextRef context, WKTypeRef userData); 115WK_EXPORT void WKContextPostMessageToInjectedBundle(WKContextRef context, WKStringRef messageName, WKTypeRef messageBody); 116 117WK_EXPORT void WKContextAddVisitedLink(WKContextRef context, WKStringRef visitedURL); 118 119WK_EXPORT void WKContextSetCacheModel(WKContextRef context, WKCacheModel cacheModel); 120WK_EXPORT WKCacheModel WKContextGetCacheModel(WKContextRef context); 121 122WK_EXPORT void WKContextStartMemorySampler(WKContextRef context, WKDoubleRef interval); 123WK_EXPORT void WKContextStopMemorySampler(WKContextRef context); 124 125WK_EXPORT WKApplicationCacheManagerRef WKContextGetApplicationCacheManager(WKContextRef context); 126WK_EXPORT WKCookieManagerRef WKContextGetCookieManager(WKContextRef context); 127WK_EXPORT WKDatabaseManagerRef WKContextGetDatabaseManager(WKContextRef context); 128WK_EXPORT WKGeolocationManagerRef WKContextGetGeolocationManager(WKContextRef context); 129WK_EXPORT WKIconDatabaseRef WKContextGetIconDatabase(WKContextRef context); 130WK_EXPORT WKKeyValueStorageManagerRef WKContextGetKeyValueStorageManager(WKContextRef context); 131WK_EXPORT WKMediaCacheManagerRef WKContextGetMediaCacheManager(WKContextRef context); 132WK_EXPORT WKPluginSiteDataManagerRef WKContextGetPluginSiteDataManager(WKContextRef context); 133WK_EXPORT WKResourceCacheManagerRef WKContextGetResourceCacheManager(WKContextRef context); 134 135#ifdef __cplusplus 136} 137#endif 138 139#endif /* WKContext_h */ 140