blob: a440c6f574886cbae5289d946f9d70dc5d95f32e [file] [log] [blame]
/*
* Copyright (C) 2010, 2011 Apple Inc. All rights reserved.
* Portions Copyright (c) 2010 Motorola Mobility, Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
* THE POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef WKAPICast_h
#define WKAPICast_h
#include "CacheModel.h"
#include "FontSmoothingLevel.h"
#include "HTTPCookieAcceptPolicy.h"
#include "ResourceCachesToClear.h"
#include "WKContext.h"
#include "WKCookieManager.h"
#include "WKCredentialTypes.h"
#include "WKPage.h"
#include "WKPreferencesPrivate.h"
#include "WKProtectionSpaceTypes.h"
#include "WKSharedAPICast.h"
#include <WebCore/CookieJar.h>
#include <WebCore/Credential.h>
#include <WebCore/FrameLoaderTypes.h>
#include <WebCore/ProtectionSpace.h>
namespace WebKit {
class AuthenticationChallengeProxy;
class AuthenticationDecisionListener;
class DownloadProxy;
class GeolocationPermissionRequestProxy;
class WebApplicationCacheManagerProxy;
class WebBackForwardList;
class WebBackForwardListItem;
class WebResourceCacheManagerProxy;
class WebContext;
class WebCookieManagerProxy;
class WebCredential;
class WebDatabaseManagerProxy;
class WebFormSubmissionListenerProxy;
class WebFramePolicyListenerProxy;
class WebFrameProxy;
class WebGeolocationManagerProxy;
class WebGeolocationPosition;
class WebIconDatabase;
class WebInspectorProxy;
class WebKeyValueStorageManagerProxy;
class WebMediaCacheManagerProxy;
class WebNavigationData;
class WebOpenPanelParameters;
class WebOpenPanelResultListenerProxy;
class WebPageGroup;
class WebPageProxy;
class WebPluginSiteDataManager;
class WebPreferences;
class WebProtectionSpace;
WK_ADD_API_MAPPING(WKApplicationCacheManagerRef, WebApplicationCacheManagerProxy)
WK_ADD_API_MAPPING(WKAuthenticationChallengeRef, AuthenticationChallengeProxy)
WK_ADD_API_MAPPING(WKAuthenticationDecisionListenerRef, AuthenticationDecisionListener)
WK_ADD_API_MAPPING(WKBackForwardListItemRef, WebBackForwardListItem)
WK_ADD_API_MAPPING(WKBackForwardListRef, WebBackForwardList)
WK_ADD_API_MAPPING(WKResourceCacheManagerRef, WebResourceCacheManagerProxy)
WK_ADD_API_MAPPING(WKContextRef, WebContext)
WK_ADD_API_MAPPING(WKCookieManagerRef, WebCookieManagerProxy)
WK_ADD_API_MAPPING(WKCredentialRef, WebCredential)
WK_ADD_API_MAPPING(WKDatabaseManagerRef, WebDatabaseManagerProxy)
WK_ADD_API_MAPPING(WKDownloadRef, DownloadProxy)
WK_ADD_API_MAPPING(WKFormSubmissionListenerRef, WebFormSubmissionListenerProxy)
WK_ADD_API_MAPPING(WKFramePolicyListenerRef, WebFramePolicyListenerProxy)
WK_ADD_API_MAPPING(WKFrameRef, WebFrameProxy)
WK_ADD_API_MAPPING(WKGeolocationManagerRef, WebGeolocationManagerProxy)
WK_ADD_API_MAPPING(WKGeolocationPermissionRequestRef, GeolocationPermissionRequestProxy)
WK_ADD_API_MAPPING(WKGeolocationPositionRef, WebGeolocationPosition)
WK_ADD_API_MAPPING(WKIconDatabaseRef, WebIconDatabase)
WK_ADD_API_MAPPING(WKKeyValueStorageManagerRef, WebKeyValueStorageManagerProxy)
WK_ADD_API_MAPPING(WKMediaCacheManagerRef, WebMediaCacheManagerProxy)
WK_ADD_API_MAPPING(WKNavigationDataRef, WebNavigationData)
WK_ADD_API_MAPPING(WKOpenPanelParametersRef, WebOpenPanelParameters)
WK_ADD_API_MAPPING(WKOpenPanelResultListenerRef, WebOpenPanelResultListenerProxy)
WK_ADD_API_MAPPING(WKPageGroupRef, WebPageGroup)
WK_ADD_API_MAPPING(WKPageRef, WebPageProxy)
WK_ADD_API_MAPPING(WKPluginSiteDataManagerRef, WebPluginSiteDataManager)
WK_ADD_API_MAPPING(WKPreferencesRef, WebPreferences)
WK_ADD_API_MAPPING(WKProtectionSpaceRef, WebProtectionSpace)
#if ENABLE(INSPECTOR)
WK_ADD_API_MAPPING(WKInspectorRef, WebInspectorProxy)
#endif
/* Enum conversions */
inline CacheModel toCacheModel(WKCacheModel wkCacheModel)
{
switch (wkCacheModel) {
case kWKCacheModelDocumentViewer:
return CacheModelDocumentViewer;
case kWKCacheModelDocumentBrowser:
return CacheModelDocumentBrowser;
case kWKCacheModelPrimaryWebBrowser:
return CacheModelPrimaryWebBrowser;
}
ASSERT_NOT_REACHED();
return CacheModelDocumentViewer;
}
inline WKCacheModel toAPI(CacheModel cacheModel)
{
switch (cacheModel) {
case CacheModelDocumentViewer:
return kWKCacheModelDocumentViewer;
case CacheModelDocumentBrowser:
return kWKCacheModelDocumentBrowser;
case CacheModelPrimaryWebBrowser:
return kWKCacheModelPrimaryWebBrowser;
}
return kWKCacheModelDocumentViewer;
}
inline FontSmoothingLevel toFontSmoothingLevel(WKFontSmoothingLevel wkLevel)
{
switch (wkLevel) {
case kWKFontSmoothingLevelNoSubpixelAntiAliasing:
return FontSmoothingLevelNoSubpixelAntiAliasing;
case kWKFontSmoothingLevelLight:
return FontSmoothingLevelLight;
case kWKFontSmoothingLevelMedium:
return FontSmoothingLevelMedium;
case kWKFontSmoothingLevelStrong:
return FontSmoothingLevelStrong;
#if PLATFORM(WIN)
case kWKFontSmoothingLevelWindows:
return FontSmoothingLevelWindows;
#endif
}
ASSERT_NOT_REACHED();
return FontSmoothingLevelMedium;
}
inline WKFontSmoothingLevel toAPI(FontSmoothingLevel level)
{
switch (level) {
case FontSmoothingLevelNoSubpixelAntiAliasing:
return kWKFontSmoothingLevelNoSubpixelAntiAliasing;
case FontSmoothingLevelLight:
return kWKFontSmoothingLevelLight;
case FontSmoothingLevelMedium:
return kWKFontSmoothingLevelMedium;
case FontSmoothingLevelStrong:
return kWKFontSmoothingLevelStrong;
#if PLATFORM(WIN)
case FontSmoothingLevelWindows:
return kWKFontSmoothingLevelWindows;
#endif
}
ASSERT_NOT_REACHED();
return kWKFontSmoothingLevelMedium;
}
inline WKProtectionSpaceServerType toAPI(WebCore::ProtectionSpaceServerType type)
{
switch (type) {
case WebCore::ProtectionSpaceServerHTTP:
return kWKProtectionSpaceServerTypeHTTP;
case WebCore::ProtectionSpaceServerHTTPS:
return kWKProtectionSpaceServerTypeHTTPS;
case WebCore::ProtectionSpaceServerFTP:
return kWKProtectionSpaceServerTypeFTP;
case WebCore::ProtectionSpaceServerFTPS:
return kWKProtectionSpaceServerTypeFTPS;
case WebCore::ProtectionSpaceProxyHTTP:
return kWKProtectionSpaceProxyTypeHTTP;
case WebCore::ProtectionSpaceProxyHTTPS:
return kWKProtectionSpaceProxyTypeHTTPS;
case WebCore::ProtectionSpaceProxyFTP:
return kWKProtectionSpaceProxyTypeFTP;
case WebCore::ProtectionSpaceProxySOCKS:
return kWKProtectionSpaceProxyTypeSOCKS;
}
return kWKProtectionSpaceServerTypeHTTP;
}
inline WKProtectionSpaceAuthenticationScheme toAPI(WebCore::ProtectionSpaceAuthenticationScheme type)
{
switch (type) {
case WebCore::ProtectionSpaceAuthenticationSchemeDefault:
return kWKProtectionSpaceAuthenticationSchemeDefault;
case WebCore::ProtectionSpaceAuthenticationSchemeHTTPBasic:
return kWKProtectionSpaceAuthenticationSchemeHTTPBasic;
case WebCore::ProtectionSpaceAuthenticationSchemeHTTPDigest:
return kWKProtectionSpaceAuthenticationSchemeHTTPDigest;
case WebCore::ProtectionSpaceAuthenticationSchemeHTMLForm:
return kWKProtectionSpaceAuthenticationSchemeHTMLForm;
case WebCore::ProtectionSpaceAuthenticationSchemeNTLM:
return kWKProtectionSpaceAuthenticationSchemeNTLM;
case WebCore::ProtectionSpaceAuthenticationSchemeNegotiate:
return kWKProtectionSpaceAuthenticationSchemeNegotiate;
case WebCore::ProtectionSpaceAuthenticationSchemeClientCertificateRequested:
return kWKProtectionSpaceAuthenticationSchemeClientCertificateRequested;
case WebCore::ProtectionSpaceAuthenticationSchemeServerTrustEvaluationRequested:
return kWKProtectionSpaceAuthenticationSchemeServerTrustEvaluationRequested;
default:
return kWKProtectionSpaceAuthenticationSchemeUnknown;
}
}
inline WebCore::CredentialPersistence toCredentialPersistence(WKCredentialPersistence type)
{
switch (type) {
case kWKCredentialPersistenceNone:
return WebCore::CredentialPersistenceNone;
case kWKCredentialPersistenceForSession:
return WebCore::CredentialPersistenceForSession;
case kWKCredentialPersistencePermanent:
return WebCore::CredentialPersistencePermanent;
default:
return WebCore::CredentialPersistenceNone;
}
}
inline ResourceCachesToClear toResourceCachesToClear(WKResourceCachesToClear wkResourceCachesToClear)
{
switch (wkResourceCachesToClear) {
case kWKAllResourceCaches:
return AllResourceCaches;
case kWKInMemoryResourceCachesOnly:
return InMemoryResourceCachesOnly;
}
ASSERT_NOT_REACHED();
return AllResourceCaches;
}
inline HTTPCookieAcceptPolicy toHTTPCookieAcceptPolicy(WKHTTPCookieAcceptPolicy policy)
{
switch (policy) {
case kWKHTTPCookieAcceptPolicyAlways:
return HTTPCookieAcceptPolicyAlways;
case kWKHTTPCookieAcceptPolicyNever:
return HTTPCookieAcceptPolicyNever;
case kWKHTTPCookieAcceptPolicyOnlyFromMainDocumentDomain:
return HTTPCookieAcceptPolicyOnlyFromMainDocumentDomain;
}
ASSERT_NOT_REACHED();
return HTTPCookieAcceptPolicyAlways;
}
inline WKHTTPCookieAcceptPolicy toAPI(HTTPCookieAcceptPolicy policy)
{
switch (policy) {
case HTTPCookieAcceptPolicyAlways:
return kWKHTTPCookieAcceptPolicyAlways;
case HTTPCookieAcceptPolicyNever:
return kWKHTTPCookieAcceptPolicyNever;
case HTTPCookieAcceptPolicyOnlyFromMainDocumentDomain:
return kWKHTTPCookieAcceptPolicyOnlyFromMainDocumentDomain;
}
ASSERT_NOT_REACHED();
return kWKHTTPCookieAcceptPolicyAlways;
}
} // namespace WebKit
#if defined(WIN32) || defined(_WIN32)
#include "WKAPICastWin.h"
#endif
#if defined(BUILDING_GTK__)
#include "WKAPICastGtk.h"
#endif
#endif // WKAPICast_h