165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch/*
265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * Copyright (C) 2010 Apple Inc. All rights reserved.
365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch *
465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * Redistribution and use in source and binary forms, with or without
565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * modification, are permitted provided that the following conditions
665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * are met:
765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * 1. Redistributions of source code must retain the above copyright
865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch *    notice, this list of conditions and the following disclaimer.
965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * 2. Redistributions in binary form must reproduce the above copyright
1065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch *    notice, this list of conditions and the following disclaimer in the
1165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch *    documentation and/or other materials provided with the distribution.
1265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch *
1365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
1465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
1565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
1665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
1765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
1865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
1965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
2065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
2165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
2265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
2365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * THE POSSIBILITY OF SUCH DAMAGE.
2465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch */
2565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
2665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#ifndef WKSharedAPICast_h
2765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#define WKSharedAPICast_h
2865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
2965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#include "ImageOptions.h"
3065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#include "SameDocumentNavigationType.h"
3165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#include "WKBase.h"
3265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#include "WKContextMenuItemTypes.h"
3365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#include "WKEvent.h"
3465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#include "WKFindOptions.h"
3565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#include "WKGeometry.h"
3665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#include "WKImage.h"
3765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#include "WKPageLoadTypes.h"
3865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#include "WebError.h"
3965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#include "WebEvent.h"
4065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#include "WebFindOptions.h"
4165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#include "WebNumber.h"
4265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#include "WebString.h"
4365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#include "WebURL.h"
442fc2651226baac27029e38c9d6ef883fa32084dbSteve Block#include "WebURLRequest.h"
452fc2651226baac27029e38c9d6ef883fa32084dbSteve Block#include "WebURLResponse.h"
4665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#include <WebCore/ContextMenuItem.h>
4765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#include <WebCore/FloatRect.h>
4865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#include <WebCore/FrameLoaderTypes.h>
4965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#include <WebCore/IntRect.h>
5065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#include <wtf/TypeTraits.h>
5165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
5265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochnamespace WebKit {
5365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
5465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochclass ImmutableArray;
5565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochclass ImmutableDictionary;
5665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochclass MutableArray;
5765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochclass MutableDictionary;
5865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochclass WebCertificateInfo;
5965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochclass WebContextMenuItem;
6065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochclass WebData;
612fc2651226baac27029e38c9d6ef883fa32084dbSteve Blockclass WebGraphicsContext;
6265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochclass WebImage;
6365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochclass WebSecurityOrigin;
6465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochclass WebSerializedScriptValue;
6565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochclass WebURLRequest;
6665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochclass WebURLResponse;
6765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochclass WebUserContentURLPattern;
6865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
6965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochtemplate<typename APIType> struct APITypeInfo { };
7065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochtemplate<typename ImplType> struct ImplTypeInfo { };
7165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
7265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#define WK_ADD_API_MAPPING(TheAPIType, TheImplType) \
7365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    template<> struct APITypeInfo<TheAPIType> { typedef TheImplType* ImplType; }; \
7465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    template<> struct ImplTypeInfo<TheImplType*> { typedef TheAPIType APIType; };
7565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
7665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben MurdochWK_ADD_API_MAPPING(WKArrayRef, ImmutableArray)
7765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben MurdochWK_ADD_API_MAPPING(WKBooleanRef, WebBoolean)
7865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben MurdochWK_ADD_API_MAPPING(WKCertificateInfoRef, WebCertificateInfo)
7965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben MurdochWK_ADD_API_MAPPING(WKContextMenuItemRef, WebContextMenuItem)
8065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben MurdochWK_ADD_API_MAPPING(WKDataRef, WebData)
8165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben MurdochWK_ADD_API_MAPPING(WKDictionaryRef, ImmutableDictionary)
8265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben MurdochWK_ADD_API_MAPPING(WKDoubleRef, WebDouble)
8365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben MurdochWK_ADD_API_MAPPING(WKErrorRef, WebError)
842fc2651226baac27029e38c9d6ef883fa32084dbSteve BlockWK_ADD_API_MAPPING(WKGraphicsContextRef, WebGraphicsContext)
8565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben MurdochWK_ADD_API_MAPPING(WKImageRef, WebImage)
8665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben MurdochWK_ADD_API_MAPPING(WKMutableArrayRef, MutableArray)
8765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben MurdochWK_ADD_API_MAPPING(WKMutableDictionaryRef, MutableDictionary)
8865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben MurdochWK_ADD_API_MAPPING(WKSecurityOriginRef, WebSecurityOrigin)
8965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben MurdochWK_ADD_API_MAPPING(WKSerializedScriptValueRef, WebSerializedScriptValue)
9065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben MurdochWK_ADD_API_MAPPING(WKStringRef, WebString)
9165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben MurdochWK_ADD_API_MAPPING(WKTypeRef, APIObject)
9265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben MurdochWK_ADD_API_MAPPING(WKUInt64Ref, WebUInt64)
9365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben MurdochWK_ADD_API_MAPPING(WKURLRef, WebURL)
9465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben MurdochWK_ADD_API_MAPPING(WKURLRequestRef, WebURLRequest)
9565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben MurdochWK_ADD_API_MAPPING(WKURLResponseRef, WebURLResponse)
9665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben MurdochWK_ADD_API_MAPPING(WKUserContentURLPatternRef, WebUserContentURLPattern)
9765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
9865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochtemplate<typename ImplType, typename APIType = typename ImplTypeInfo<ImplType*>::APIType>
9965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochclass ProxyingRefPtr {
10065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochpublic:
10165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    ProxyingRefPtr(PassRefPtr<ImplType> impl)
10265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        : m_impl(impl)
10365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    {
10465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    }
10565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
10665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    operator APIType() { return toAPI(m_impl.get()); }
10765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
10865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochprivate:
10965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    RefPtr<ImplType> m_impl;
11065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch};
11165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
11265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch/* Opaque typing convenience methods */
11365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
11465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochtemplate<typename T>
11565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochinline typename APITypeInfo<T>::ImplType toImpl(T t)
11665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch{
11765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    // An example of the conversions that take place:
11865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    // const struct OpaqueWKArray* -> const struct OpaqueWKArray -> struct OpaqueWKArray -> struct OpaqueWKArray* -> ImmutableArray*
11965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
12065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    typedef typename WTF::RemovePointer<T>::Type PotentiallyConstValueType;
12165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    typedef typename WTF::RemoveConst<PotentiallyConstValueType>::Type NonConstValueType;
12265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
12365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    return reinterpret_cast<typename APITypeInfo<T>::ImplType>(const_cast<NonConstValueType*>(t));
12465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch}
12565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
12665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochtemplate<typename T>
12765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochinline typename ImplTypeInfo<T>::APIType toAPI(T t)
12865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch{
12965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    return reinterpret_cast<typename ImplTypeInfo<T>::APIType>(t);
13065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch}
13165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
13265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch/* Special cases. */
13365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
13465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochinline ProxyingRefPtr<WebString> toAPI(StringImpl* string)
13565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch{
13665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    return ProxyingRefPtr<WebString>(WebString::create(string));
13765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch}
13865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
13965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochinline WKStringRef toCopiedAPI(const String& string)
14065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch{
14165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    RefPtr<WebString> webString = WebString::create(string);
14265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    return toAPI(webString.release().releaseRef());
14365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch}
14465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
14565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochinline ProxyingRefPtr<WebURL> toURLRef(StringImpl* string)
14665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch{
14765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    if (!string)
14865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        ProxyingRefPtr<WebURL>(0);
14965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    return ProxyingRefPtr<WebURL>(WebURL::create(String(string)));
15065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch}
15165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
15265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochinline WKURLRef toCopiedURLAPI(const String& string)
15365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch{
15465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    if (!string)
15565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return 0;
15665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    RefPtr<WebURL> webURL = WebURL::create(string);
15765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    return toAPI(webURL.release().releaseRef());
15865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch}
15965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
16065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochinline String toWTFString(WKStringRef stringRef)
16165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch{
16265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    if (!stringRef)
16365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return String();
16465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    return toImpl(stringRef)->string();
16565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch}
16665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
16765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochinline String toWTFString(WKURLRef urlRef)
16865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch{
16965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    if (!urlRef)
17065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return String();
17165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    return toImpl(urlRef)->string();
17265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch}
17365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
17465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochinline ProxyingRefPtr<WebError> toAPI(const WebCore::ResourceError& error)
17565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch{
17665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    return ProxyingRefPtr<WebError>(WebError::create(error));
17765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch}
17865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
1792fc2651226baac27029e38c9d6ef883fa32084dbSteve Blockinline ProxyingRefPtr<WebURLRequest> toAPI(const WebCore::ResourceRequest& request)
1802fc2651226baac27029e38c9d6ef883fa32084dbSteve Block{
1812fc2651226baac27029e38c9d6ef883fa32084dbSteve Block    return ProxyingRefPtr<WebURLRequest>(WebURLRequest::create(request));
1822fc2651226baac27029e38c9d6ef883fa32084dbSteve Block}
1832fc2651226baac27029e38c9d6ef883fa32084dbSteve Block
1842fc2651226baac27029e38c9d6ef883fa32084dbSteve Blockinline ProxyingRefPtr<WebURLResponse> toAPI(const WebCore::ResourceResponse& response)
1852fc2651226baac27029e38c9d6ef883fa32084dbSteve Block{
1862fc2651226baac27029e38c9d6ef883fa32084dbSteve Block    return ProxyingRefPtr<WebURLResponse>(WebURLResponse::create(response));
1872fc2651226baac27029e38c9d6ef883fa32084dbSteve Block}
1882fc2651226baac27029e38c9d6ef883fa32084dbSteve Block
18965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch/* Geometry conversions */
19065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
19165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochinline WebCore::FloatRect toFloatRect(const WKRect& wkRect)
19265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch{
19365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    return WebCore::FloatRect(static_cast<float>(wkRect.origin.x), static_cast<float>(wkRect.origin.y),
19465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch                              static_cast<float>(wkRect.size.width), static_cast<float>(wkRect.size.height));
19565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch}
19665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
19765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochinline WebCore::IntSize toIntSize(const WKSize& wkSize)
19865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch{
19965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    return WebCore::IntSize(static_cast<int>(wkSize.width), static_cast<int>(wkSize.height));
20065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch}
20165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
20265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochinline WebCore::IntPoint toIntPoint(const WKPoint& wkPoint)
20365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch{
20465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    return WebCore::IntPoint(static_cast<int>(wkPoint.x), static_cast<int>(wkPoint.y));
20565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch}
20665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
20765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochinline WebCore::IntRect toIntRect(const WKRect& wkRect)
20865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch{
20965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    return WebCore::IntRect(static_cast<int>(wkRect.origin.x), static_cast<int>(wkRect.origin.y),
21065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch                            static_cast<int>(wkRect.size.width), static_cast<int>(wkRect.size.height));
21165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch}
21265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
21365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochinline WKRect toAPI(const WebCore::FloatRect& rect)
21465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch{
21565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    WKRect wkRect;
21665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    wkRect.origin.x = rect.x();
21765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    wkRect.origin.y = rect.y();
21865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    wkRect.size.width = rect.width();
21965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    wkRect.size.height = rect.height();
22065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    return wkRect;
22165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch}
22265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
22365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochinline WKRect toAPI(const WebCore::IntRect& rect)
22465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch{
22565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    WKRect wkRect;
22665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    wkRect.origin.x = rect.x();
22765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    wkRect.origin.y = rect.y();
22865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    wkRect.size.width = rect.width();
22965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    wkRect.size.height = rect.height();
23065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    return wkRect;
23165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch}
23265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
23365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochinline WKSize toAPI(const WebCore::IntSize& size)
23465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch{
23565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    WKSize wkSize;
23665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    wkSize.width = size.width();
23765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    wkSize.height = size.height();
23865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    return wkSize;
23965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch}
24065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
24165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochinline WKPoint toAPI(const WebCore::IntPoint& point)
24265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch{
24365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    WKPoint wkPoint;
24465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    wkPoint.x = point.x();
24565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    wkPoint.y = point.y();
24665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    return wkPoint;
24765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch}
24865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
24965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch/* Enum conversions */
25065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
25165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochinline WKTypeID toAPI(APIObject::Type type)
25265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch{
25365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    return static_cast<WKTypeID>(type);
25465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch}
25565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
25665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochinline WKEventModifiers toAPI(WebEvent::Modifiers modifiers)
25765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch{
25865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    WKEventModifiers wkModifiers = 0;
25965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    if (modifiers & WebEvent::ShiftKey)
26065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        wkModifiers |= kWKEventModifiersShiftKey;
26165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    if (modifiers & WebEvent::ControlKey)
26265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        wkModifiers |= kWKEventModifiersControlKey;
26365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    if (modifiers & WebEvent::AltKey)
26465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        wkModifiers |= kWKEventModifiersAltKey;
26565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    if (modifiers & WebEvent::MetaKey)
26665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        wkModifiers |= kWKEventModifiersMetaKey;
26765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    return wkModifiers;
26865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch}
26965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
27065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochinline WKEventMouseButton toAPI(WebMouseEvent::Button mouseButton)
27165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch{
27265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    WKEventMouseButton wkMouseButton = kWKEventMouseButtonNoButton;
27365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
27465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    switch (mouseButton) {
27565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebMouseEvent::NoButton:
27665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        wkMouseButton = kWKEventMouseButtonNoButton;
27765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        break;
27865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebMouseEvent::LeftButton:
27965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        wkMouseButton = kWKEventMouseButtonLeftButton;
28065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        break;
28165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebMouseEvent::MiddleButton:
28265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        wkMouseButton = kWKEventMouseButtonMiddleButton;
28365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        break;
28465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebMouseEvent::RightButton:
28565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        wkMouseButton = kWKEventMouseButtonRightButton;
28665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        break;
28765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    }
28865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
28965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    return wkMouseButton;
29065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch}
29165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
29265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochinline WKContextMenuItemTag toAPI(WebCore::ContextMenuAction action)
29365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch{
29465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    switch (action) {
29565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebCore::ContextMenuItemTagNoAction:
29665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return kWKContextMenuItemTagNoAction;
29765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebCore::ContextMenuItemTagOpenLinkInNewWindow:
29865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return kWKContextMenuItemTagOpenLinkInNewWindow;
29965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebCore::ContextMenuItemTagDownloadLinkToDisk:
30065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return kWKContextMenuItemTagDownloadLinkToDisk;
30165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebCore::ContextMenuItemTagCopyLinkToClipboard:
30265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return kWKContextMenuItemTagCopyLinkToClipboard;
30365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebCore::ContextMenuItemTagOpenImageInNewWindow:
30465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return kWKContextMenuItemTagOpenImageInNewWindow;
30565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebCore::ContextMenuItemTagDownloadImageToDisk:
30665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return kWKContextMenuItemTagDownloadImageToDisk;
30765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebCore::ContextMenuItemTagCopyImageToClipboard:
30865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return kWKContextMenuItemTagCopyImageToClipboard;
30965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebCore::ContextMenuItemTagOpenFrameInNewWindow:
31065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return kWKContextMenuItemTagOpenFrameInNewWindow;
31165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebCore::ContextMenuItemTagCopy:
31265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return kWKContextMenuItemTagCopy;
31365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebCore::ContextMenuItemTagGoBack:
31465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return kWKContextMenuItemTagGoBack;
31565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebCore::ContextMenuItemTagGoForward:
31665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return kWKContextMenuItemTagGoForward;
31765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebCore::ContextMenuItemTagStop:
31865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return kWKContextMenuItemTagStop;
31965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebCore::ContextMenuItemTagReload:
32065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return kWKContextMenuItemTagReload;
32165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebCore::ContextMenuItemTagCut:
32265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return kWKContextMenuItemTagCut;
32365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebCore::ContextMenuItemTagPaste:
32465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return kWKContextMenuItemTagPaste;
32565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebCore::ContextMenuItemTagSpellingGuess:
32665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return kWKContextMenuItemTagSpellingGuess;
32765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebCore::ContextMenuItemTagNoGuessesFound:
32865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return kWKContextMenuItemTagNoGuessesFound;
32965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebCore::ContextMenuItemTagIgnoreSpelling:
33065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return kWKContextMenuItemTagIgnoreSpelling;
33165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebCore::ContextMenuItemTagLearnSpelling:
33265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return kWKContextMenuItemTagLearnSpelling;
33365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebCore::ContextMenuItemTagOther:
33465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return kWKContextMenuItemTagOther;
33565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebCore::ContextMenuItemTagSearchInSpotlight:
33665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return kWKContextMenuItemTagSearchInSpotlight;
33765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebCore::ContextMenuItemTagSearchWeb:
33865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return kWKContextMenuItemTagSearchWeb;
33965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebCore::ContextMenuItemTagLookUpInDictionary:
34065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return kWKContextMenuItemTagLookUpInDictionary;
34165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebCore::ContextMenuItemTagOpenWithDefaultApplication:
34265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return kWKContextMenuItemTagOpenWithDefaultApplication;
34365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebCore::ContextMenuItemPDFActualSize:
34465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return kWKContextMenuItemTagPDFActualSize;
34565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebCore::ContextMenuItemPDFZoomIn:
34665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return kWKContextMenuItemTagPDFZoomIn;
34765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebCore::ContextMenuItemPDFZoomOut:
34865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return kWKContextMenuItemTagPDFZoomOut;
34965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebCore::ContextMenuItemPDFAutoSize:
35065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return kWKContextMenuItemTagPDFAutoSize;
35165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebCore::ContextMenuItemPDFSinglePage:
35265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return kWKContextMenuItemTagPDFSinglePage;
35365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebCore::ContextMenuItemPDFFacingPages:
35465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return kWKContextMenuItemTagPDFFacingPages;
35565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebCore::ContextMenuItemPDFContinuous:
35665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return kWKContextMenuItemTagPDFContinuous;
35765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebCore::ContextMenuItemPDFNextPage:
35865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return kWKContextMenuItemTagPDFNextPage;
35965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebCore::ContextMenuItemPDFPreviousPage:
36065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return kWKContextMenuItemTagPDFPreviousPage;
36165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebCore::ContextMenuItemTagOpenLink:
36265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return kWKContextMenuItemTagOpenLink;
36365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebCore::ContextMenuItemTagIgnoreGrammar:
36465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return kWKContextMenuItemTagIgnoreGrammar;
36565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebCore::ContextMenuItemTagSpellingMenu:
36665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return kWKContextMenuItemTagSpellingMenu;
36765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebCore::ContextMenuItemTagShowSpellingPanel:
36865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return kWKContextMenuItemTagShowSpellingPanel;
36965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebCore::ContextMenuItemTagCheckSpelling:
37065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return kWKContextMenuItemTagCheckSpelling;
37165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebCore::ContextMenuItemTagCheckSpellingWhileTyping:
37265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return kWKContextMenuItemTagCheckSpellingWhileTyping;
37365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebCore::ContextMenuItemTagCheckGrammarWithSpelling:
37465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return kWKContextMenuItemTagCheckGrammarWithSpelling;
37565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebCore::ContextMenuItemTagFontMenu:
37665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return kWKContextMenuItemTagFontMenu;
37765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebCore::ContextMenuItemTagShowFonts:
37865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return kWKContextMenuItemTagShowFonts;
37965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebCore::ContextMenuItemTagBold:
38065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return kWKContextMenuItemTagBold;
38165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebCore::ContextMenuItemTagItalic:
38265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return kWKContextMenuItemTagItalic;
38365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebCore::ContextMenuItemTagUnderline:
38465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return kWKContextMenuItemTagUnderline;
38565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebCore::ContextMenuItemTagOutline:
38665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return kWKContextMenuItemTagOutline;
38765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebCore::ContextMenuItemTagStyles:
38865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return kWKContextMenuItemTagStyles;
38965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebCore::ContextMenuItemTagShowColors:
39065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return kWKContextMenuItemTagShowColors;
39165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebCore::ContextMenuItemTagSpeechMenu:
39265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return kWKContextMenuItemTagSpeechMenu;
39365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebCore::ContextMenuItemTagStartSpeaking:
39465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return kWKContextMenuItemTagStartSpeaking;
39565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebCore::ContextMenuItemTagStopSpeaking:
39665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return kWKContextMenuItemTagStopSpeaking;
39765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebCore::ContextMenuItemTagWritingDirectionMenu:
39865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return kWKContextMenuItemTagWritingDirectionMenu;
39965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebCore::ContextMenuItemTagDefaultDirection:
40065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return kWKContextMenuItemTagDefaultDirection;
40165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebCore::ContextMenuItemTagLeftToRight:
40265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return kWKContextMenuItemTagLeftToRight;
40365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebCore::ContextMenuItemTagRightToLeft:
40465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return kWKContextMenuItemTagRightToLeft;
40565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebCore::ContextMenuItemTagPDFSinglePageScrolling:
40665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return kWKContextMenuItemTagPDFSinglePageScrolling;
40765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebCore::ContextMenuItemTagPDFFacingPagesScrolling:
40865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return kWKContextMenuItemTagPDFFacingPagesScrolling;
40965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#if ENABLE(INSPECTOR)
41065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebCore::ContextMenuItemTagInspectElement:
41165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return kWKContextMenuItemTagInspectElement;
41265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#endif
41365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebCore::ContextMenuItemTagTextDirectionMenu:
41465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return kWKContextMenuItemTagTextDirectionMenu;
41565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebCore::ContextMenuItemTagTextDirectionDefault:
41665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return kWKContextMenuItemTagTextDirectionDefault;
41765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebCore::ContextMenuItemTagTextDirectionLeftToRight:
41865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return kWKContextMenuItemTagTextDirectionLeftToRight;
41965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebCore::ContextMenuItemTagTextDirectionRightToLeft:
42065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return kWKContextMenuItemTagTextDirectionRightToLeft;
42165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebCore::ContextMenuItemTagOpenMediaInNewWindow:
42265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return kWKContextMenuItemTagOpenMediaInNewWindow;
42365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebCore::ContextMenuItemTagCopyMediaLinkToClipboard:
42465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return kWKContextMenuItemTagCopyMediaLinkToClipboard;
42565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebCore::ContextMenuItemTagToggleMediaControls:
42665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return kWKContextMenuItemTagToggleMediaControls;
42765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebCore::ContextMenuItemTagToggleMediaLoop:
42865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return kWKContextMenuItemTagToggleMediaLoop;
42965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebCore::ContextMenuItemTagEnterVideoFullscreen:
43065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return kWKContextMenuItemTagEnterVideoFullscreen;
43165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebCore::ContextMenuItemTagMediaPlayPause:
43265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return kWKContextMenuItemTagMediaPlayPause;
43365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebCore::ContextMenuItemTagMediaMute:
43465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return kWKContextMenuItemTagMediaMute;
43565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#if PLATFORM(MAC)
43665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebCore::ContextMenuItemTagCorrectSpellingAutomatically:
43765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return kWKContextMenuItemTagCorrectSpellingAutomatically;
43865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebCore::ContextMenuItemTagSubstitutionsMenu:
43965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return kWKContextMenuItemTagSubstitutionsMenu;
44065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebCore::ContextMenuItemTagShowSubstitutions:
44165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return kWKContextMenuItemTagShowSubstitutions;
44265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebCore::ContextMenuItemTagSmartCopyPaste:
44365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return kWKContextMenuItemTagSmartCopyPaste;
44465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebCore::ContextMenuItemTagSmartQuotes:
44565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return kWKContextMenuItemTagSmartQuotes;
44665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebCore::ContextMenuItemTagSmartDashes:
44765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return kWKContextMenuItemTagSmartDashes;
44865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebCore::ContextMenuItemTagSmartLinks:
44965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return kWKContextMenuItemTagSmartLinks;
45065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebCore::ContextMenuItemTagTextReplacement:
45165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return kWKContextMenuItemTagTextReplacement;
45265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebCore::ContextMenuItemTagTransformationsMenu:
45365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return kWKContextMenuItemTagTransformationsMenu;
45465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebCore::ContextMenuItemTagMakeUpperCase:
45565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return kWKContextMenuItemTagMakeUpperCase;
45665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebCore::ContextMenuItemTagMakeLowerCase:
45765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return kWKContextMenuItemTagMakeLowerCase;
45865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebCore::ContextMenuItemTagCapitalize:
45965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return kWKContextMenuItemTagCapitalize;
46065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebCore::ContextMenuItemTagChangeBack:
46165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return kWKContextMenuItemTagChangeBack;
46265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#endif
46365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    default:
46465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        if (action < WebCore::ContextMenuItemBaseApplicationTag)
46565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch            LOG_ERROR("ContextMenuAction %i is an unknown tag but is below the allowable custom tag value of %i", action, WebCore::  ContextMenuItemBaseApplicationTag);
46665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return static_cast<WKContextMenuItemTag>(action);
46765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    }
46865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch}
46965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
47065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochinline WebCore::ContextMenuAction toImpl(WKContextMenuItemTag tag)
47165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch{
47265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    switch (tag) {
47365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case kWKContextMenuItemTagNoAction:
47465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return WebCore::ContextMenuItemTagNoAction;
47565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case kWKContextMenuItemTagOpenLinkInNewWindow:
47665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return WebCore::ContextMenuItemTagOpenLinkInNewWindow;
47765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case kWKContextMenuItemTagDownloadLinkToDisk:
47865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return WebCore::ContextMenuItemTagDownloadLinkToDisk;
47965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case kWKContextMenuItemTagCopyLinkToClipboard:
48065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return WebCore::ContextMenuItemTagCopyLinkToClipboard;
48165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case kWKContextMenuItemTagOpenImageInNewWindow:
48265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return WebCore::ContextMenuItemTagOpenImageInNewWindow;
48365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case kWKContextMenuItemTagDownloadImageToDisk:
48465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return WebCore::ContextMenuItemTagDownloadImageToDisk;
48565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case kWKContextMenuItemTagCopyImageToClipboard:
48665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return WebCore::ContextMenuItemTagCopyImageToClipboard;
48765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case kWKContextMenuItemTagOpenFrameInNewWindow:
48865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return WebCore::ContextMenuItemTagOpenFrameInNewWindow;
48965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case kWKContextMenuItemTagCopy:
49065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return WebCore::ContextMenuItemTagCopy;
49165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case kWKContextMenuItemTagGoBack:
49265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return WebCore::ContextMenuItemTagGoBack;
49365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case kWKContextMenuItemTagGoForward:
49465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return WebCore::ContextMenuItemTagGoForward;
49565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case kWKContextMenuItemTagStop:
49665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return WebCore::ContextMenuItemTagStop;
49765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case kWKContextMenuItemTagReload:
49865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return WebCore::ContextMenuItemTagReload;
49965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case kWKContextMenuItemTagCut:
50065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return WebCore::ContextMenuItemTagCut;
50165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case kWKContextMenuItemTagPaste:
50265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return WebCore::ContextMenuItemTagPaste;
50365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case kWKContextMenuItemTagSpellingGuess:
50465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return WebCore::ContextMenuItemTagSpellingGuess;
50565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case kWKContextMenuItemTagNoGuessesFound:
50665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return WebCore::ContextMenuItemTagNoGuessesFound;
50765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case kWKContextMenuItemTagIgnoreSpelling:
50865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return WebCore::ContextMenuItemTagIgnoreSpelling;
50965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case kWKContextMenuItemTagLearnSpelling:
51065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return WebCore::ContextMenuItemTagLearnSpelling;
51165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case kWKContextMenuItemTagOther:
51265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return WebCore::ContextMenuItemTagOther;
51365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case kWKContextMenuItemTagSearchInSpotlight:
51465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return WebCore::ContextMenuItemTagSearchInSpotlight;
51565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case kWKContextMenuItemTagSearchWeb:
51665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return WebCore::ContextMenuItemTagSearchWeb;
51765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case kWKContextMenuItemTagLookUpInDictionary:
51865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return WebCore::ContextMenuItemTagLookUpInDictionary;
51965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case kWKContextMenuItemTagOpenWithDefaultApplication:
52065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return WebCore::ContextMenuItemTagOpenWithDefaultApplication;
52165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case kWKContextMenuItemTagPDFActualSize:
52265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return WebCore::ContextMenuItemPDFActualSize;
52365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case kWKContextMenuItemTagPDFZoomIn:
52465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return WebCore::ContextMenuItemPDFZoomIn;
52565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case kWKContextMenuItemTagPDFZoomOut:
52665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return WebCore::ContextMenuItemPDFZoomOut;
52765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case kWKContextMenuItemTagPDFAutoSize:
52865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return WebCore::ContextMenuItemPDFAutoSize;
52965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case kWKContextMenuItemTagPDFSinglePage:
53065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return WebCore::ContextMenuItemPDFSinglePage;
53165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case kWKContextMenuItemTagPDFFacingPages:
53265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return WebCore::ContextMenuItemPDFFacingPages;
53365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case kWKContextMenuItemTagPDFContinuous:
53465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return WebCore::ContextMenuItemPDFContinuous;
53565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case kWKContextMenuItemTagPDFNextPage:
53665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return WebCore::ContextMenuItemPDFNextPage;
53765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case kWKContextMenuItemTagPDFPreviousPage:
53865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return WebCore::ContextMenuItemPDFPreviousPage;
53965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case kWKContextMenuItemTagOpenLink:
54065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return WebCore::ContextMenuItemTagOpenLink;
54165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case kWKContextMenuItemTagIgnoreGrammar:
54265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return WebCore::ContextMenuItemTagIgnoreGrammar;
54365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case kWKContextMenuItemTagSpellingMenu:
54465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return WebCore::ContextMenuItemTagSpellingMenu;
54565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case kWKContextMenuItemTagShowSpellingPanel:
54665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return WebCore::ContextMenuItemTagShowSpellingPanel;
54765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case kWKContextMenuItemTagCheckSpelling:
54865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return WebCore::ContextMenuItemTagCheckSpelling;
54965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case kWKContextMenuItemTagCheckSpellingWhileTyping:
55065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return WebCore::ContextMenuItemTagCheckSpellingWhileTyping;
55165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case kWKContextMenuItemTagCheckGrammarWithSpelling:
55265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return WebCore::ContextMenuItemTagCheckGrammarWithSpelling;
55365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case kWKContextMenuItemTagFontMenu:
55465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return WebCore::ContextMenuItemTagFontMenu;
55565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case kWKContextMenuItemTagShowFonts:
55665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return WebCore::ContextMenuItemTagShowFonts;
55765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case kWKContextMenuItemTagBold:
55865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return WebCore::ContextMenuItemTagBold;
55965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case kWKContextMenuItemTagItalic:
56065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return WebCore::ContextMenuItemTagItalic;
56165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case kWKContextMenuItemTagUnderline:
56265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return WebCore::ContextMenuItemTagUnderline;
56365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case kWKContextMenuItemTagOutline:
56465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return WebCore::ContextMenuItemTagOutline;
56565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case kWKContextMenuItemTagStyles:
56665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return WebCore::ContextMenuItemTagStyles;
56765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case kWKContextMenuItemTagShowColors:
56865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return WebCore::ContextMenuItemTagShowColors;
56965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case kWKContextMenuItemTagSpeechMenu:
57065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return WebCore::ContextMenuItemTagSpeechMenu;
57165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case kWKContextMenuItemTagStartSpeaking:
57265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return WebCore::ContextMenuItemTagStartSpeaking;
57365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case kWKContextMenuItemTagStopSpeaking:
57465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return WebCore::ContextMenuItemTagStopSpeaking;
57565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case kWKContextMenuItemTagWritingDirectionMenu:
57665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return WebCore::ContextMenuItemTagWritingDirectionMenu;
57765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case kWKContextMenuItemTagDefaultDirection:
57865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return WebCore::ContextMenuItemTagDefaultDirection;
57965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case kWKContextMenuItemTagLeftToRight:
58065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return WebCore::ContextMenuItemTagLeftToRight;
58165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case kWKContextMenuItemTagRightToLeft:
58265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return WebCore::ContextMenuItemTagRightToLeft;
58365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case kWKContextMenuItemTagPDFSinglePageScrolling:
58465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return WebCore::ContextMenuItemTagPDFSinglePageScrolling;
58565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case kWKContextMenuItemTagPDFFacingPagesScrolling:
58665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return WebCore::ContextMenuItemTagPDFFacingPagesScrolling;
58765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#if ENABLE(INSPECTOR)
58865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case kWKContextMenuItemTagInspectElement:
58965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return WebCore::ContextMenuItemTagInspectElement;
59065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#endif
59165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case kWKContextMenuItemTagTextDirectionMenu:
59265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return WebCore::ContextMenuItemTagTextDirectionMenu;
59365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case kWKContextMenuItemTagTextDirectionDefault:
59465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return WebCore::ContextMenuItemTagTextDirectionDefault;
59565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case kWKContextMenuItemTagTextDirectionLeftToRight:
59665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return WebCore::ContextMenuItemTagTextDirectionLeftToRight;
59765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case kWKContextMenuItemTagTextDirectionRightToLeft:
59865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return WebCore::ContextMenuItemTagTextDirectionRightToLeft;
59965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case kWKContextMenuItemTagOpenMediaInNewWindow:
60065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return WebCore::ContextMenuItemTagOpenMediaInNewWindow;
60165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case kWKContextMenuItemTagCopyMediaLinkToClipboard:
60265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return WebCore::ContextMenuItemTagCopyMediaLinkToClipboard;
60365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case kWKContextMenuItemTagToggleMediaControls:
60465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return WebCore::ContextMenuItemTagToggleMediaControls;
60565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case kWKContextMenuItemTagToggleMediaLoop:
60665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return WebCore::ContextMenuItemTagToggleMediaLoop;
60765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case kWKContextMenuItemTagEnterVideoFullscreen:
60865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return WebCore::ContextMenuItemTagEnterVideoFullscreen;
60965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case kWKContextMenuItemTagMediaPlayPause:
61065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return WebCore::ContextMenuItemTagMediaPlayPause;
61165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case kWKContextMenuItemTagMediaMute:
61265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return WebCore::ContextMenuItemTagMediaMute;
61365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#if PLATFORM(MAC)
61465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case kWKContextMenuItemTagCorrectSpellingAutomatically:
61565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return WebCore::ContextMenuItemTagCorrectSpellingAutomatically;
61665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case kWKContextMenuItemTagSubstitutionsMenu:
61765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return WebCore::ContextMenuItemTagSubstitutionsMenu;
61865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case kWKContextMenuItemTagShowSubstitutions:
61965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return WebCore::ContextMenuItemTagShowSubstitutions;
62065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case kWKContextMenuItemTagSmartCopyPaste:
62165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return WebCore::ContextMenuItemTagSmartCopyPaste;
62265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case kWKContextMenuItemTagSmartQuotes:
62365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return WebCore::ContextMenuItemTagSmartQuotes;
62465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case kWKContextMenuItemTagSmartDashes:
62565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return WebCore::ContextMenuItemTagSmartDashes;
62665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case kWKContextMenuItemTagSmartLinks:
62765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return WebCore::ContextMenuItemTagSmartLinks;
62865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case kWKContextMenuItemTagTextReplacement:
62965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return WebCore::ContextMenuItemTagTextReplacement;
63065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case kWKContextMenuItemTagTransformationsMenu:
63165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return WebCore::ContextMenuItemTagTransformationsMenu;
63265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case kWKContextMenuItemTagMakeUpperCase:
63365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return WebCore::ContextMenuItemTagMakeUpperCase;
63465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case kWKContextMenuItemTagMakeLowerCase:
63565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return WebCore::ContextMenuItemTagMakeLowerCase;
63665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case kWKContextMenuItemTagCapitalize:
63765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return WebCore::ContextMenuItemTagCapitalize;
63865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case kWKContextMenuItemTagChangeBack:
63965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return WebCore::ContextMenuItemTagChangeBack;
64065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#endif
64165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    default:
64265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        if (tag < kWKContextMenuItemBaseApplicationTag)
64365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch            LOG_ERROR("WKContextMenuItemTag %i is an unknown tag but is below the allowable custom tag value of %i", tag, kWKContextMenuItemBaseApplicationTag);
64465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return static_cast<WebCore::ContextMenuAction>(tag);
64565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    }
64665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch}
64765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
64865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochinline WKContextMenuItemType toAPI(WebCore::ContextMenuItemType type)
64965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch{
65065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    switch(type) {
65165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebCore::ActionType:
65265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return kWKContextMenuItemTypeAction;
65365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebCore::CheckableActionType:
65465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return kWKContextMenuItemTypeCheckableAction;
65565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebCore::SeparatorType:
65665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return kWKContextMenuItemTypeSeparator;
65765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebCore::SubmenuType:
65865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return kWKContextMenuItemTypeSubmenu;
65965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    default:
66065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        ASSERT_NOT_REACHED();
66165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return kWKContextMenuItemTypeAction;
66265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    }
66365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch}
66465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
66565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochinline FindOptions toFindOptions(WKFindOptions wkFindOptions)
66665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch{
66765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    unsigned findOptions = 0;
66865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
66965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    if (wkFindOptions & kWKFindOptionsCaseInsensitive)
67065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        findOptions |= FindOptionsCaseInsensitive;
67165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    if (wkFindOptions & kWKFindOptionsAtWordStarts)
67265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        findOptions |= FindOptionsAtWordStarts;
67365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    if (wkFindOptions & kWKFindOptionsTreatMedialCapitalAsWordStart)
67465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        findOptions |= FindOptionsTreatMedialCapitalAsWordStart;
67565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    if (wkFindOptions & kWKFindOptionsBackwards)
67665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        findOptions |= FindOptionsBackwards;
67765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    if (wkFindOptions & kWKFindOptionsWrapAround)
67865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        findOptions |= FindOptionsWrapAround;
67965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    if (wkFindOptions & kWKFindOptionsShowOverlay)
68065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        findOptions |= FindOptionsShowOverlay;
68165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    if (wkFindOptions & kWKFindOptionsShowFindIndicator)
68265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        findOptions |= FindOptionsShowFindIndicator;
68365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
68465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    return static_cast<FindOptions>(findOptions);
68565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch}
68665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
68765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochinline WKFrameNavigationType toAPI(WebCore::NavigationType type)
68865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch{
68965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    WKFrameNavigationType wkType = kWKFrameNavigationTypeOther;
69065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
69165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    switch (type) {
69265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebCore::NavigationTypeLinkClicked:
69365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        wkType = kWKFrameNavigationTypeLinkClicked;
69465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        break;
69565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebCore::NavigationTypeFormSubmitted:
69665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        wkType = kWKFrameNavigationTypeFormSubmitted;
69765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        break;
69865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebCore::NavigationTypeBackForward:
69965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        wkType = kWKFrameNavigationTypeBackForward;
70065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        break;
70165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebCore::NavigationTypeReload:
70265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        wkType = kWKFrameNavigationTypeReload;
70365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        break;
70465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebCore::NavigationTypeFormResubmitted:
70565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        wkType = kWKFrameNavigationTypeFormResubmitted;
70665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        break;
70765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case WebCore::NavigationTypeOther:
70865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        wkType = kWKFrameNavigationTypeOther;
70965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        break;
71065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    }
71165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
71265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    return wkType;
71365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch}
71465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
71565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochinline WKSameDocumentNavigationType toAPI(SameDocumentNavigationType type)
71665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch{
71765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    WKFrameNavigationType wkType = kWKSameDocumentNavigationAnchorNavigation;
71865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
71965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    switch (type) {
72065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case SameDocumentNavigationAnchorNavigation:
72165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        wkType = kWKSameDocumentNavigationAnchorNavigation;
72265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        break;
72365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case SameDocumentNavigationSessionStatePush:
72465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        wkType = kWKSameDocumentNavigationSessionStatePush;
72565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        break;
72665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case SameDocumentNavigationSessionStateReplace:
72765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        wkType = kWKSameDocumentNavigationSessionStateReplace;
72865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        break;
72965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    case SameDocumentNavigationSessionStatePop:
73065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        wkType = kWKSameDocumentNavigationSessionStatePop;
73165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        break;
73265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    }
73365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
73465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    return wkType;
73565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch}
73665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
73765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochinline ImageOptions toImageOptions(WKImageOptions wkImageOptions)
73865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch{
73965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    unsigned imageOptions = 0;
74065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
74165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    if (wkImageOptions & kWKImageOptionsShareable)
74265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        imageOptions |= ImageOptionsShareable;
74365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
74465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    return static_cast<ImageOptions>(imageOptions);
74565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch}
74665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
74765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch} // namespace WebKit
74865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
74965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#endif // WKSharedAPICast_h
750