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 WKBundlePage_h
2765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#define WKBundlePage_h
2865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
2965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#include <WebKit2/WKBase.h>
3065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#include <WebKit2/WKEvent.h>
3165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#include <WebKit2/WKFindOptions.h>
3265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#include <WebKit2/WKImage.h>
3365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#include <WebKit2/WKPageLoadTypes.h>
3465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
3565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#ifndef __cplusplus
3665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#include <stdbool.h>
3765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#endif
3865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
3965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#include <stdint.h>
4065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
4165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#ifdef __cplusplus
4265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochextern "C" {
4365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#endif
4465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
4565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochenum {
4665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    kWKInsertActionTyped = 0,
4765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    kWKInsertActionPasted = 1,
4865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    kWKInsertActionDropped = 2
4965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch};
5065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochtypedef uint32_t WKInsertActionType;
5165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
5265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochenum {
5365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    kWKAffinityUpstream,
5465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    kWKAffinityDownstream
5565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch};
5665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochtypedef uint32_t WKAffinityType;
5765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
5865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochenum {
5965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    WKInputFieldActionTypeMoveUp,
6065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    WKInputFieldActionTypeMoveDown,
6165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    WKInputFieldActionTypeCancel,
6265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    WKInputFieldActionTypeInsertTab,
6365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    WKInputFieldActionTypeInsertBacktab,
6465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    WKInputFieldActionTypeInsertNewline,
6565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    WKInputFieldActionTypeInsertDelete
6665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch};
6765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochtypedef uint32_t WKInputFieldActionType;
6865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
692daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdochenum {
702daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch    WKFullScreenNoKeyboard,
712daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch    WKFullScreenKeyboard,
722daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch};
732daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdochtypedef uint32_t WKFullScreenKeyboardRequestType;
742daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch
7565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch// Loader Client
7665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochtypedef void (*WKBundlePageDidStartProvisionalLoadForFrameCallback)(WKBundlePageRef page, WKBundleFrameRef frame, WKTypeRef* userData, const void *clientInfo);
7765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochtypedef void (*WKBundlePageDidReceiveServerRedirectForProvisionalLoadForFrameCallback)(WKBundlePageRef page, WKBundleFrameRef frame, WKTypeRef* userData, const void *clientInfo);
7865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochtypedef void (*WKBundlePageDidFailProvisionalLoadWithErrorForFrameCallback)(WKBundlePageRef page, WKBundleFrameRef frame, WKErrorRef error, WKTypeRef* userData, const void *clientInfo);
7965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochtypedef void (*WKBundlePageDidCommitLoadForFrameCallback)(WKBundlePageRef page, WKBundleFrameRef frame, WKTypeRef* userData, const void *clientInfo);
8065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochtypedef void (*WKBundlePageDidDocumentFinishLoadForFrameCallback)(WKBundlePageRef page, WKBundleFrameRef frame, WKTypeRef* userData, const void *clientInfo);
8165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochtypedef void (*WKBundlePageDidFinishLoadForFrameCallback)(WKBundlePageRef page, WKBundleFrameRef frame, WKTypeRef* userData, const void *clientInfo);
8265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochtypedef void (*WKBundlePageDidFinishDocumentLoadForFrameCallback)(WKBundlePageRef page, WKBundleFrameRef frame, WKTypeRef* userData, const void *clientInfo);
8365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochtypedef void (*WKBundlePageDidFailLoadWithErrorForFrameCallback)(WKBundlePageRef page, WKBundleFrameRef frame, WKErrorRef error, WKTypeRef* userData, const void *clientInfo);
8465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochtypedef void (*WKBundlePageDidSameDocumentNavigationForFrameCallback)(WKBundlePageRef page, WKBundleFrameRef frame, WKSameDocumentNavigationType type, WKTypeRef* userData, const void *clientInfo);
8565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochtypedef void (*WKBundlePageDidReceiveTitleForFrameCallback)(WKBundlePageRef page, WKStringRef title, WKBundleFrameRef frame, WKTypeRef* userData, const void *clientInfo);
8665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochtypedef void (*WKBundlePageDidFirstLayoutForFrame)(WKBundlePageRef page, WKBundleFrameRef frame, WKTypeRef* userData, const void *clientInfo);
8765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochtypedef void (*WKBundlePageDidFirstVisuallyNonEmptyLayoutForFrame)(WKBundlePageRef page, WKBundleFrameRef frame, WKTypeRef* userData, const void *clientInfo);
8865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochtypedef void (*WKBundlePageDidRemoveFrameFromHierarchyCallback)(WKBundlePageRef page, WKBundleFrameRef frame, WKTypeRef* userData, const void *clientInfo);
8965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochtypedef void (*WKBundlePageDidDisplayInsecureContentForFrameCallback)(WKBundlePageRef page, WKBundleFrameRef frame, WKTypeRef* userData, const void *clientInfo);
9065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochtypedef void (*WKBundlePageDidRunInsecureContentForFrameCallback)(WKBundlePageRef page, WKBundleFrameRef frame, WKTypeRef* userData, const void *clientInfo);
9165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch// FIXME: There are no WKPage equivilent of these functions yet.
9265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochtypedef void (*WKBundlePageDidClearWindowObjectForFrameCallback)(WKBundlePageRef page, WKBundleFrameRef frame, WKBundleScriptWorldRef world, const void *clientInfo);
9365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochtypedef void (*WKBundlePageDidCancelClientRedirectForFrameCallback)(WKBundlePageRef page, WKBundleFrameRef frame, const void *clientInfo);
9465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochtypedef void (*WKBundlePageWillPerformClientRedirectForFrameCallback)(WKBundlePageRef page, WKBundleFrameRef frame, WKURLRef url, double delay, double date, const void *clientInfo);
9565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochtypedef void (*WKBundlePageDidHandleOnloadEventsForFrameCallback)(WKBundlePageRef page, WKBundleFrameRef frame, const void *clientInfo);
9665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
9765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochstruct WKBundlePageLoaderClient {
9865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    int                                                                 version;
9965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    const void *                                                        clientInfo;
10065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    WKBundlePageDidStartProvisionalLoadForFrameCallback                 didStartProvisionalLoadForFrame;
10165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    WKBundlePageDidReceiveServerRedirectForProvisionalLoadForFrameCallback    didReceiveServerRedirectForProvisionalLoadForFrame;
10265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    WKBundlePageDidFailProvisionalLoadWithErrorForFrameCallback         didFailProvisionalLoadWithErrorForFrame;
10365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    WKBundlePageDidCommitLoadForFrameCallback                           didCommitLoadForFrame;
10465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    WKBundlePageDidFinishDocumentLoadForFrameCallback                   didFinishDocumentLoadForFrame;
10565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    WKBundlePageDidFinishLoadForFrameCallback                           didFinishLoadForFrame;
10665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    WKBundlePageDidFailLoadWithErrorForFrameCallback                    didFailLoadWithErrorForFrame;
10765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    WKBundlePageDidSameDocumentNavigationForFrameCallback               didSameDocumentNavigationForFrame;
10865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    WKBundlePageDidReceiveTitleForFrameCallback                         didReceiveTitleForFrame;
10965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    WKBundlePageDidFirstLayoutForFrame                                  didFirstLayoutForFrame;
11065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    WKBundlePageDidFirstVisuallyNonEmptyLayoutForFrame                  didFirstVisuallyNonEmptyLayoutForFrame;
11165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    WKBundlePageDidRemoveFrameFromHierarchyCallback                     didRemoveFrameFromHierarchy;
11265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    WKBundlePageDidDisplayInsecureContentForFrameCallback               didDisplayInsecureContentForFrame;
11365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    WKBundlePageDidRunInsecureContentForFrameCallback                   didRunInsecureContentForFrame;
11465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
11565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    // FIXME: There are no WKPage equivilent of these functions yet.
11665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    WKBundlePageDidClearWindowObjectForFrameCallback                    didClearWindowObjectForFrame;
11765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    WKBundlePageDidCancelClientRedirectForFrameCallback                 didCancelClientRedirectForFrame;
11865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    WKBundlePageWillPerformClientRedirectForFrameCallback               willPerformClientRedirectForFrame;
11965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    WKBundlePageDidHandleOnloadEventsForFrameCallback                   didHandleOnloadEventsForFrame;
12065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch};
12165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochtypedef struct WKBundlePageLoaderClient WKBundlePageLoaderClient;
12265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
12381bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdochenum {
12481bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch    WKBundlePagePolicyActionPassThrough,
12581bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch    WKBundlePagePolicyActionUse
12681bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch};
12781bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdochtypedef uint32_t WKBundlePagePolicyAction;
12881bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch
1292fc2651226baac27029e38c9d6ef883fa32084dbSteve Block// Policy Client
13081bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdochtypedef WKBundlePagePolicyAction (*WKBundlePageDecidePolicyForNavigationActionCallback)(WKBundlePageRef page, WKBundleFrameRef frame, WKBundleNavigationActionRef navigationAction, WKURLRequestRef request, WKTypeRef* userData, const void* clientInfo);
13181bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdochtypedef WKBundlePagePolicyAction (*WKBundlePageDecidePolicyForNewWindowActionCallback)(WKBundlePageRef page, WKBundleFrameRef frame, WKBundleNavigationActionRef navigationAction, WKURLRequestRef request, WKStringRef frameName, WKTypeRef* userData, const void* clientInfo);
13281bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdochtypedef WKBundlePagePolicyAction (*WKBundlePageDecidePolicyForResponseCallback)(WKBundlePageRef page, WKBundleFrameRef frame, WKURLResponseRef response, WKURLRequestRef request, WKTypeRef* userData, const void* clientInfo);
13381bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdochtypedef void (*WKBundlePageUnableToImplementPolicyCallback)(WKBundlePageRef page, WKBundleFrameRef frame, WKErrorRef error, WKTypeRef* userData, const void* clientInfo);
1342fc2651226baac27029e38c9d6ef883fa32084dbSteve Block
1352fc2651226baac27029e38c9d6ef883fa32084dbSteve Blockstruct WKBundlePagePolicyClient {
1362fc2651226baac27029e38c9d6ef883fa32084dbSteve Block    int                                                                 version;
1372fc2651226baac27029e38c9d6ef883fa32084dbSteve Block    const void *                                                        clientInfo;
1382fc2651226baac27029e38c9d6ef883fa32084dbSteve Block    WKBundlePageDecidePolicyForNavigationActionCallback                 decidePolicyForNavigationAction;
1392fc2651226baac27029e38c9d6ef883fa32084dbSteve Block    WKBundlePageDecidePolicyForNewWindowActionCallback                  decidePolicyForNewWindowAction;
14081bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch    WKBundlePageDecidePolicyForResponseCallback                         decidePolicyForResponse;
14181bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch    WKBundlePageUnableToImplementPolicyCallback                         unableToImplementPolicy;
1422fc2651226baac27029e38c9d6ef883fa32084dbSteve Block};
1432fc2651226baac27029e38c9d6ef883fa32084dbSteve Blocktypedef struct WKBundlePagePolicyClient WKBundlePagePolicyClient;
1442fc2651226baac27029e38c9d6ef883fa32084dbSteve Block
1452fc2651226baac27029e38c9d6ef883fa32084dbSteve Block// Resource Load Client
1462fc2651226baac27029e38c9d6ef883fa32084dbSteve Blocktypedef void (*WKBundlePageDidInitiateLoadForResourceCallback)(WKBundlePageRef, WKBundleFrameRef, uint64_t resourceIdentifier, WKURLRequestRef, bool pageIsProvisionallyLoading, const void* clientInfo);
1472fc2651226baac27029e38c9d6ef883fa32084dbSteve Blocktypedef WKURLRequestRef (*WKBundlePageWillSendRequestForFrameCallback)(WKBundlePageRef, WKBundleFrameRef, uint64_t resourceIdentifier, WKURLRequestRef, WKURLResponseRef redirectResponse, const void *clientInfo);
1482fc2651226baac27029e38c9d6ef883fa32084dbSteve Blocktypedef void (*WKBundlePageDidReceiveResponseForResourceCallback)(WKBundlePageRef, WKBundleFrameRef, uint64_t resourceIdentifier, WKURLResponseRef, const void* clientInfo);
1492fc2651226baac27029e38c9d6ef883fa32084dbSteve Blocktypedef void (*WKBundlePageDidReceiveContentLengthForResourceCallback)(WKBundlePageRef, WKBundleFrameRef, uint64_t resourceIdentifier, uint64_t contentLength, const void* clientInfo);
1502fc2651226baac27029e38c9d6ef883fa32084dbSteve Blocktypedef void (*WKBundlePageDidFinishLoadForResourceCallback)(WKBundlePageRef, WKBundleFrameRef, uint64_t resourceIdentifier, const void* clientInfo);
1512fc2651226baac27029e38c9d6ef883fa32084dbSteve Blocktypedef void (*WKBundlePageDidFailLoadForResourceCallback)(WKBundlePageRef, WKBundleFrameRef, uint64_t resourceIdentifier, WKErrorRef, const void* clientInfo);
1522fc2651226baac27029e38c9d6ef883fa32084dbSteve Block
1532fc2651226baac27029e38c9d6ef883fa32084dbSteve Blockstruct WKBundlePageResourceLoadClient {
1542fc2651226baac27029e38c9d6ef883fa32084dbSteve Block    int                                                                 version;
1552fc2651226baac27029e38c9d6ef883fa32084dbSteve Block    const void *                                                        clientInfo;
1562fc2651226baac27029e38c9d6ef883fa32084dbSteve Block    WKBundlePageDidInitiateLoadForResourceCallback                      didInitiateLoadForResource;
15781bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch
15881bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch    // willSendRequestForFrame is supposed to return a retained reference to the URL request.
1592fc2651226baac27029e38c9d6ef883fa32084dbSteve Block    WKBundlePageWillSendRequestForFrameCallback                         willSendRequestForFrame;
16081bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch
1612fc2651226baac27029e38c9d6ef883fa32084dbSteve Block    WKBundlePageDidReceiveResponseForResourceCallback                   didReceiveResponseForResource;
1622fc2651226baac27029e38c9d6ef883fa32084dbSteve Block    WKBundlePageDidReceiveContentLengthForResourceCallback              didReceiveContentLengthForResource;
1632fc2651226baac27029e38c9d6ef883fa32084dbSteve Block    WKBundlePageDidFinishLoadForResourceCallback                        didFinishLoadForResource;
1642fc2651226baac27029e38c9d6ef883fa32084dbSteve Block    WKBundlePageDidFailLoadForResourceCallback                          didFailLoadForResource;
1652fc2651226baac27029e38c9d6ef883fa32084dbSteve Block};
1662fc2651226baac27029e38c9d6ef883fa32084dbSteve Blocktypedef struct WKBundlePageResourceLoadClient WKBundlePageResourceLoadClient;
1672fc2651226baac27029e38c9d6ef883fa32084dbSteve Block
16865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch// UI Client
16965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochtypedef void (*WKBundlePageWillAddMessageToConsoleCallback)(WKBundlePageRef page, WKStringRef message, uint32_t lineNumber, const void *clientInfo);
17065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochtypedef void (*WKBundlePageWillSetStatusbarTextCallback)(WKBundlePageRef page, WKStringRef statusbarText, const void *clientInfo);
17165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochtypedef void (*WKBundlePageWillRunJavaScriptAlertCallback)(WKBundlePageRef page, WKStringRef alertText, WKBundleFrameRef frame, const void *clientInfo);
17265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochtypedef void (*WKBundlePageWillRunJavaScriptConfirmCallback)(WKBundlePageRef page, WKStringRef message, WKBundleFrameRef frame, const void *clientInfo);
17365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochtypedef void (*WKBundlePageWillRunJavaScriptPromptCallback)(WKBundlePageRef page, WKStringRef message, WKStringRef defaultValue, WKBundleFrameRef frame, const void *clientInfo);
17465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochtypedef void (*WKBundlePageMouseDidMoveOverElementCallback)(WKBundlePageRef page, WKBundleHitTestResultRef hitTestResult, WKEventModifiers modifiers, WKTypeRef* userData, const void *clientInfo);
17565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochtypedef void (*WKBundlePageDidScrollCallback)(WKBundlePageRef page, const void *clientInfo);
1762fc2651226baac27029e38c9d6ef883fa32084dbSteve Blocktypedef void (*WKBundlePagePaintCustomOverhangAreaCallback)(WKBundlePageRef page, WKGraphicsContextRef graphicsContext, WKRect horizontalOverhang, WKRect verticalOverhang, WKRect dirtyRect, const void* clientInfo);
1772bde8e466a4451c7319e3a072d118917957d6554Steve Blocktypedef WKStringRef (*WKBundlePageGenerateFileForUploadCallback)(WKBundlePageRef page, WKStringRef originalFilePath, const void* clientInfo);
17865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
17965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochstruct WKBundlePageUIClient {
18065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    int                                                                 version;
18165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    const void *                                                        clientInfo;
18265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    WKBundlePageWillAddMessageToConsoleCallback                         willAddMessageToConsole;
18365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    WKBundlePageWillSetStatusbarTextCallback                            willSetStatusbarText;
18465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    WKBundlePageWillRunJavaScriptAlertCallback                          willRunJavaScriptAlert;
18565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    WKBundlePageWillRunJavaScriptConfirmCallback                        willRunJavaScriptConfirm;
18665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    WKBundlePageWillRunJavaScriptPromptCallback                         willRunJavaScriptPrompt;
18765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    WKBundlePageMouseDidMoveOverElementCallback                         mouseDidMoveOverElement;
18865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    WKBundlePageDidScrollCallback                                       pageDidScroll;
1892fc2651226baac27029e38c9d6ef883fa32084dbSteve Block    WKBundlePagePaintCustomOverhangAreaCallback                         paintCustomOverhangArea;
1902bde8e466a4451c7319e3a072d118917957d6554Steve Block    WKBundlePageGenerateFileForUploadCallback                           shouldGenerateFileForUpload;
1912bde8e466a4451c7319e3a072d118917957d6554Steve Block    WKBundlePageGenerateFileForUploadCallback                           generateFileForUpload;
19265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch};
19365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochtypedef struct WKBundlePageUIClient WKBundlePageUIClient;
19465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
19565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch// Editor client
19665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochtypedef bool (*WKBundlePageShouldBeginEditingCallback)(WKBundlePageRef page, WKBundleRangeHandleRef range, const void* clientInfo);
19765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochtypedef bool (*WKBundlePageShouldEndEditingCallback)(WKBundlePageRef page, WKBundleRangeHandleRef range, const void* clientInfo);
19865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochtypedef bool (*WKBundlePageShouldInsertNodeCallback)(WKBundlePageRef page, WKBundleNodeHandleRef node, WKBundleRangeHandleRef rangeToReplace, WKInsertActionType action, const void* clientInfo);
19965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochtypedef bool (*WKBundlePageShouldInsertTextCallback)(WKBundlePageRef page, WKStringRef string, WKBundleRangeHandleRef rangeToReplace, WKInsertActionType action, const void* clientInfo);
20065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochtypedef bool (*WKBundlePageShouldDeleteRangeCallback)(WKBundlePageRef page, WKBundleRangeHandleRef range, const void* clientInfo);
20165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochtypedef bool (*WKBundlePageShouldChangeSelectedRange)(WKBundlePageRef page, WKBundleRangeHandleRef fromRange, WKBundleRangeHandleRef toRange, WKAffinityType affinity, bool stillSelecting, const void* clientInfo);
20265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochtypedef bool (*WKBundlePageShouldApplyStyle)(WKBundlePageRef page, WKBundleCSSStyleDeclarationRef style, WKBundleRangeHandleRef range, const void* clientInfo);
20365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochtypedef void (*WKBundlePageEditingNotification)(WKBundlePageRef page, WKStringRef notificationName, const void* clientInfo);
20465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
20565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochstruct WKBundlePageEditorClient {
20665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    int                                                                 version;
20765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    const void *                                                        clientInfo;
20865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    WKBundlePageShouldBeginEditingCallback                              shouldBeginEditing;
20965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    WKBundlePageShouldEndEditingCallback                                shouldEndEditing;
21065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    WKBundlePageShouldInsertNodeCallback                                shouldInsertNode;
21165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    WKBundlePageShouldInsertTextCallback                                shouldInsertText;
21265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    WKBundlePageShouldDeleteRangeCallback                               shouldDeleteRange;
21365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    WKBundlePageShouldChangeSelectedRange                               shouldChangeSelectedRange;
21465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    WKBundlePageShouldApplyStyle                                        shouldApplyStyle;
21565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    WKBundlePageEditingNotification                                     didBeginEditing;
21665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    WKBundlePageEditingNotification                                     didEndEditing;
21765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    WKBundlePageEditingNotification                                     didChange;
21865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    WKBundlePageEditingNotification                                     didChangeSelection;
21965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch};
22065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochtypedef struct WKBundlePageEditorClient WKBundlePageEditorClient;
22165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
22265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch// Form client
22365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochtypedef void (*WKBundlePageTextFieldDidBeginEditingCallback)(WKBundlePageRef page, WKBundleNodeHandleRef htmlInputElementHandle, WKBundleFrameRef frame, const void* clientInfo);
22465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochtypedef void (*WKBundlePageTextFieldDidEndEditingCallback)(WKBundlePageRef page, WKBundleNodeHandleRef htmlInputElementHandle, WKBundleFrameRef frame, const void* clientInfo);
22565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochtypedef void (*WKBundlePageTextDidChangeInTextFieldCallback)(WKBundlePageRef page, WKBundleNodeHandleRef htmlInputElementHandle, WKBundleFrameRef frame, const void* clientInfo);
22665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochtypedef void (*WKBundlePageTextDidChangeInTextAreaCallback)(WKBundlePageRef page, WKBundleNodeHandleRef htmlTextAreaElementHandle, WKBundleFrameRef frame, const void* clientInfo);
22765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochtypedef bool (*WKBundlePageShouldPerformActionInTextFieldCallback)(WKBundlePageRef page, WKBundleNodeHandleRef htmlInputElementHandle, WKInputFieldActionType actionType, WKBundleFrameRef frame, const void* clientInfo);
22865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochtypedef void (*WKBundlePageWillSubmitFormCallback)(WKBundlePageRef page, WKBundleNodeHandleRef htmlFormElementHandle, WKBundleFrameRef frame, WKBundleFrameRef sourceFrame, WKDictionaryRef values, WKTypeRef* userData, const void* clientInfo);
22965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
23065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochstruct WKBundlePageFormClient {
23165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    int                                                                 version;
23265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    const void *                                                        clientInfo;
23365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    WKBundlePageTextFieldDidBeginEditingCallback                        textFieldDidBeginEditing;
23465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    WKBundlePageTextFieldDidEndEditingCallback                          textFieldDidEndEditing;
23565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    WKBundlePageTextDidChangeInTextFieldCallback                        textDidChangeInTextField;
23665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    WKBundlePageTextDidChangeInTextAreaCallback                         textDidChangeInTextArea;
23765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    WKBundlePageShouldPerformActionInTextFieldCallback                  shouldPerformActionInTextField;
23865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    WKBundlePageWillSubmitFormCallback                                  willSubmitForm;
23965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch};
24065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochtypedef struct WKBundlePageFormClient WKBundlePageFormClient;
24165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
24265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch// ContextMenu client
24365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochtypedef void (*WKBundlePageGetContextMenuFromDefaultContextMenuCallback)(WKBundlePageRef page, WKBundleHitTestResultRef hitTestResult, WKArrayRef defaultMenu, WKArrayRef* newMenu, WKTypeRef* userData, const void* clientInfo);
24465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
24565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochstruct WKBundlePageContextMenuClient {
24665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    int                                                                 version;
24765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    const void *                                                        clientInfo;
24865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    WKBundlePageGetContextMenuFromDefaultContextMenuCallback            getContextMenuFromDefaultMenu;
24965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch};
25065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochtypedef struct WKBundlePageContextMenuClient WKBundlePageContextMenuClient;
25165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
2522daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch// Full Screen client
2532daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdochtypedef bool (*WKBundlePageSupportsFullScreen)(WKBundlePageRef page, WKFullScreenKeyboardRequestType requestType);
2542daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdochtypedef void (*WKBundlePageEnterFullScreenForElement)(WKBundlePageRef page, WKBundleNodeHandleRef element);
2552daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdochtypedef void (*WKBundlePageExitFullScreenForElement)(WKBundlePageRef page, WKBundleNodeHandleRef element);
2562daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch
2572daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdochstruct WKBundlePageFullScreenClient {
2582daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch    int                                                                 version;
2592daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch    const void *                                                        clientInfo;
2602daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch    WKBundlePageSupportsFullScreen                                      supportsFullScreen;
2612daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch    WKBundlePageEnterFullScreenForElement                               enterFullScreenForElement;
2622daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch    WKBundlePageExitFullScreenForElement                                exitFullScreenForElement;
2632daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch};
2642daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdochtypedef struct WKBundlePageFullScreenClient WKBundlePageFullScreenClient;
2652daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch
2662daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben MurdochWK_EXPORT void WKBundlePageWillEnterFullScreen(WKBundlePageRef page);
2672daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben MurdochWK_EXPORT void WKBundlePageDidEnterFullScreen(WKBundlePageRef page);
2682daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben MurdochWK_EXPORT void WKBundlePageWillExitFullScreen(WKBundlePageRef page);
2692daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben MurdochWK_EXPORT void WKBundlePageDidExitFullScreen(WKBundlePageRef page);
2702daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch
27165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben MurdochWK_EXPORT WKTypeID WKBundlePageGetTypeID();
2722daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch
27365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben MurdochWK_EXPORT void WKBundlePageSetContextMenuClient(WKBundlePageRef page, WKBundlePageContextMenuClient* client);
27465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben MurdochWK_EXPORT void WKBundlePageSetEditorClient(WKBundlePageRef page, WKBundlePageEditorClient* client);
27565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben MurdochWK_EXPORT void WKBundlePageSetFormClient(WKBundlePageRef page, WKBundlePageFormClient* client);
2762fc2651226baac27029e38c9d6ef883fa32084dbSteve BlockWK_EXPORT void WKBundlePageSetPageLoaderClient(WKBundlePageRef page, WKBundlePageLoaderClient* client);
2772fc2651226baac27029e38c9d6ef883fa32084dbSteve BlockWK_EXPORT void WKBundlePageSetResourceLoadClient(WKBundlePageRef page, WKBundlePageResourceLoadClient* client);
2782fc2651226baac27029e38c9d6ef883fa32084dbSteve BlockWK_EXPORT void WKBundlePageSetPolicyClient(WKBundlePageRef page, WKBundlePagePolicyClient* client);
27965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben MurdochWK_EXPORT void WKBundlePageSetUIClient(WKBundlePageRef page, WKBundlePageUIClient* client);
2802daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch
2812daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben MurdochWK_EXPORT void WKBundlePageSetFullScreenClient(WKBundlePageRef page, WKBundlePageFullScreenClient* client);
28265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
28365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben MurdochWK_EXPORT WKBundlePageGroupRef WKBundlePageGetPageGroup(WKBundlePageRef page);
28465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben MurdochWK_EXPORT WKBundleFrameRef WKBundlePageGetMainFrame(WKBundlePageRef page);
28565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
28665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben MurdochWK_EXPORT WKBundleBackForwardListRef WKBundlePageGetBackForwardList(WKBundlePageRef page);
28765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
28865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben MurdochWK_EXPORT void WKBundlePageInstallPageOverlay(WKBundlePageRef page, WKBundlePageOverlayRef pageOverlay);
28965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben MurdochWK_EXPORT void WKBundlePageUninstallPageOverlay(WKBundlePageRef page, WKBundlePageOverlayRef pageOverlay);
29065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
29165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben MurdochWK_EXPORT bool WKBundlePageHasLocalDataForURL(WKBundlePageRef page, WKURLRef url);
29265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben MurdochWK_EXPORT bool WKBundlePageCanHandleRequest(WKURLRequestRef request);
29365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
29465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben MurdochWK_EXPORT bool WKBundlePageFindString(WKBundlePageRef page, WKStringRef target, WKFindOptions findOptions);
29565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
29665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben MurdochWK_EXPORT WKImageRef WKBundlePageCreateSnapshotInViewCoordinates(WKBundlePageRef page, WKRect rect, WKImageOptions options);
29765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben MurdochWK_EXPORT WKImageRef WKBundlePageCreateSnapshotInDocumentCoordinates(WKBundlePageRef page, WKRect rect, WKImageOptions options);
2982fc2651226baac27029e38c9d6ef883fa32084dbSteve BlockWK_EXPORT WKImageRef WKBundlePageCreateScaledSnapshotInDocumentCoordinates(WKBundlePageRef page, WKRect rect, double scaleFactor, WKImageOptions options);
2992fc2651226baac27029e38c9d6ef883fa32084dbSteve Block
3002fc2651226baac27029e38c9d6ef883fa32084dbSteve Block#if defined(ENABLE_INSPECTOR) && ENABLE_INSPECTOR
3012fc2651226baac27029e38c9d6ef883fa32084dbSteve BlockWK_EXPORT WKBundleInspectorRef WKBundlePageGetInspector(WKBundlePageRef page);
3022fc2651226baac27029e38c9d6ef883fa32084dbSteve Block#endif
30365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
30465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#ifdef __cplusplus
30565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch}
30665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#endif
30765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
30865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#endif /* WKBundlePage_h */
309