1/* 2 * Copyright (C) 2013 Apple Inc. All rights reserved. 3 * 4 * Redistribution and use in source and binary forms, with or without 5 * modification, are permitted provided that the following conditions 6 * are met: 7 * 1. Redistributions of source code must retain the above copyright 8 * notice, this list of conditions and the following disclaimer. 9 * 2. Redistributions in binary form must reproduce the above copyright 10 * notice, this list of conditions and the following disclaimer in the 11 * documentation and/or other materials provided with the distribution. 12 * 13 * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' 14 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 15 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 16 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS 17 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 18 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 19 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 20 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 21 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 22 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF 23 * THE POSSIBILITY OF SUCH DAMAGE. 24 */ 25 26#ifndef WKBundlePageLoaderClient_h 27#define WKBundlePageLoaderClient_h 28 29#include <WebKit/WKBase.h> 30#include <WebKit/WKPageLoadTypes.h> 31 32typedef void (*WKBundlePageDidStartProvisionalLoadForFrameCallback)(WKBundlePageRef page, WKBundleFrameRef frame, WKTypeRef* userData, const void *clientInfo); 33typedef void (*WKBundlePageDidReceiveServerRedirectForProvisionalLoadForFrameCallback)(WKBundlePageRef page, WKBundleFrameRef frame, WKTypeRef* userData, const void *clientInfo); 34typedef void (*WKBundlePageDidFailProvisionalLoadWithErrorForFrameCallback)(WKBundlePageRef page, WKBundleFrameRef frame, WKErrorRef error, WKTypeRef* userData, const void *clientInfo); 35typedef void (*WKBundlePageDidCommitLoadForFrameCallback)(WKBundlePageRef page, WKBundleFrameRef frame, WKTypeRef* userData, const void *clientInfo); 36typedef void (*WKBundlePageDidDocumentFinishLoadForFrameCallback)(WKBundlePageRef page, WKBundleFrameRef frame, WKTypeRef* userData, const void *clientInfo); 37typedef void (*WKBundlePageDidFinishLoadForFrameCallback)(WKBundlePageRef page, WKBundleFrameRef frame, WKTypeRef* userData, const void *clientInfo); 38typedef void (*WKBundlePageDidFinishDocumentLoadForFrameCallback)(WKBundlePageRef page, WKBundleFrameRef frame, WKTypeRef* userData, const void *clientInfo); 39typedef void (*WKBundlePageDidFinishProgressCallback)(WKBundlePageRef page, const void *clientInfo); 40typedef void (*WKBundlePageDidFailLoadWithErrorForFrameCallback)(WKBundlePageRef page, WKBundleFrameRef frame, WKErrorRef error, WKTypeRef* userData, const void *clientInfo); 41typedef void (*WKBundlePageDidSameDocumentNavigationForFrameCallback)(WKBundlePageRef page, WKBundleFrameRef frame, WKSameDocumentNavigationType type, WKTypeRef* userData, const void *clientInfo); 42typedef void (*WKBundlePageDidReceiveTitleForFrameCallback)(WKBundlePageRef page, WKStringRef title, WKBundleFrameRef frame, WKTypeRef* userData, const void *clientInfo); 43typedef void (*WKBundlePageDidRemoveFrameFromHierarchyCallback)(WKBundlePageRef page, WKBundleFrameRef frame, WKTypeRef* userData, const void *clientInfo); 44typedef void (*WKBundlePageDidDisplayInsecureContentForFrameCallback)(WKBundlePageRef page, WKBundleFrameRef frame, WKTypeRef* userData, const void *clientInfo); 45typedef void (*WKBundlePageDidRunInsecureContentForFrameCallback)(WKBundlePageRef page, WKBundleFrameRef frame, WKTypeRef* userData, const void *clientInfo); 46typedef void (*WKBundlePageDidDetectXSSForFrameCallback)(WKBundlePageRef page, WKBundleFrameRef frame, WKTypeRef* userData, const void *clientInfo); 47typedef void (*WKBundlePageDidFirstLayoutForFrameCallback)(WKBundlePageRef page, WKBundleFrameRef frame, WKTypeRef* userData, const void *clientInfo); 48typedef void (*WKBundlePageDidFirstVisuallyNonEmptyLayoutForFrameCallback)(WKBundlePageRef page, WKBundleFrameRef frame, WKTypeRef* userData, const void *clientInfo); 49typedef void (*WKBundlePageDidLayoutForFrameCallback)(WKBundlePageRef page, WKBundleFrameRef frame, const void* clientInfo); 50typedef void (*WKBundlePageDidClearWindowObjectForFrameCallback)(WKBundlePageRef page, WKBundleFrameRef frame, WKBundleScriptWorldRef world, const void *clientInfo); 51typedef void (*WKBundlePageDidCancelClientRedirectForFrameCallback)(WKBundlePageRef page, WKBundleFrameRef frame, const void *clientInfo); 52typedef void (*WKBundlePageWillPerformClientRedirectForFrameCallback)(WKBundlePageRef page, WKBundleFrameRef frame, WKURLRef url, double delay, double date, const void *clientInfo); 53typedef void (*WKBundlePageDidHandleOnloadEventsForFrameCallback)(WKBundlePageRef page, WKBundleFrameRef frame, const void *clientInfo); 54typedef bool (*WKBundlePageShouldGoToBackForwardListItemCallback)(WKBundlePageRef page, WKBundleBackForwardListItemRef item, WKTypeRef* userData, const void *clientInfo); 55typedef void (*WKBundlePageGlobalObjectIsAvailableForFrameCallback)(WKBundlePageRef page, WKBundleFrameRef, WKBundleScriptWorldRef, const void* clientInfo); 56typedef void (*WKBundlePageWillDisconnectDOMWindowExtensionFromGlobalObjectCallback)(WKBundlePageRef page, WKBundleDOMWindowExtensionRef, const void* clientInfo); 57typedef void (*WKBundlePageDidReconnectDOMWindowExtensionToGlobalObjectCallback)(WKBundlePageRef page, WKBundleDOMWindowExtensionRef, const void* clientInfo); 58typedef void (*WKBundlePageWillDestroyGlobalObjectForDOMWindowExtensionCallback)(WKBundlePageRef page, WKBundleDOMWindowExtensionRef, const void* clientInfo); 59typedef bool (*WKBundlePageShouldForceUniversalAccessFromLocalURLCallback)(WKBundlePageRef, WKStringRef url, const void* clientInfo); 60typedef void (*WKBundlePageDidLayoutCallback)(WKBundlePageRef page, WKLayoutMilestones milestones, WKTypeRef* userData, const void *clientInfo); 61typedef void (*WKBundlePageFeaturesUsedInPageCallback)(WKBundlePageRef page, WKArrayRef featureStrings, const void *clientInfo); 62typedef void (*WKBundlePageWillLoadURLRequestCallback)(WKBundlePageRef page, WKURLRequestRef request, WKTypeRef userData, const void *clientInfo); 63typedef void (*WKBundlePageWillLoadDataRequestCallback)(WKBundlePageRef page, WKURLRequestRef request, WKDataRef data, WKStringRef MIMEType, WKStringRef encodingName, WKURLRef unreachableURL, WKTypeRef userData, const void *clientInfo); 64typedef void (*WKBundlePageWillDestroyFrame)(WKBundlePageRef page, WKBundleFrameRef frame, const void *clientInfo); 65typedef WKStringRef (*WKBundlePageUserAgentForURLCallback)(WKBundleFrameRef frame, WKURLRef url, const void *clientInfo); 66 67typedef struct WKBundlePageLoaderClientBase { 68 int version; 69 const void * clientInfo; 70} WKBundlePageLoaderClientBase; 71 72typedef struct WKBundlePageLoaderClientV0 { 73 WKBundlePageLoaderClientBase base; 74 75 // Version 0. 76 WKBundlePageDidStartProvisionalLoadForFrameCallback didStartProvisionalLoadForFrame; 77 WKBundlePageDidReceiveServerRedirectForProvisionalLoadForFrameCallback didReceiveServerRedirectForProvisionalLoadForFrame; 78 WKBundlePageDidFailProvisionalLoadWithErrorForFrameCallback didFailProvisionalLoadWithErrorForFrame; 79 WKBundlePageDidCommitLoadForFrameCallback didCommitLoadForFrame; 80 WKBundlePageDidFinishDocumentLoadForFrameCallback didFinishDocumentLoadForFrame; 81 WKBundlePageDidFinishLoadForFrameCallback didFinishLoadForFrame; 82 WKBundlePageDidFailLoadWithErrorForFrameCallback didFailLoadWithErrorForFrame; 83 WKBundlePageDidSameDocumentNavigationForFrameCallback didSameDocumentNavigationForFrame; 84 WKBundlePageDidReceiveTitleForFrameCallback didReceiveTitleForFrame; 85 WKBundlePageDidFirstLayoutForFrameCallback didFirstLayoutForFrame; 86 WKBundlePageDidFirstVisuallyNonEmptyLayoutForFrameCallback didFirstVisuallyNonEmptyLayoutForFrame; 87 WKBundlePageDidRemoveFrameFromHierarchyCallback didRemoveFrameFromHierarchy; 88 WKBundlePageDidDisplayInsecureContentForFrameCallback didDisplayInsecureContentForFrame; 89 WKBundlePageDidRunInsecureContentForFrameCallback didRunInsecureContentForFrame; 90 WKBundlePageDidClearWindowObjectForFrameCallback didClearWindowObjectForFrame; 91 WKBundlePageDidCancelClientRedirectForFrameCallback didCancelClientRedirectForFrame; 92 WKBundlePageWillPerformClientRedirectForFrameCallback willPerformClientRedirectForFrame; 93 WKBundlePageDidHandleOnloadEventsForFrameCallback didHandleOnloadEventsForFrame; 94} WKBundlePageLoaderClientV0; 95 96typedef struct WKBundlePageLoaderClientV1 { 97 WKBundlePageLoaderClientBase base; 98 99 // Version 0. 100 WKBundlePageDidStartProvisionalLoadForFrameCallback didStartProvisionalLoadForFrame; 101 WKBundlePageDidReceiveServerRedirectForProvisionalLoadForFrameCallback didReceiveServerRedirectForProvisionalLoadForFrame; 102 WKBundlePageDidFailProvisionalLoadWithErrorForFrameCallback didFailProvisionalLoadWithErrorForFrame; 103 WKBundlePageDidCommitLoadForFrameCallback didCommitLoadForFrame; 104 WKBundlePageDidFinishDocumentLoadForFrameCallback didFinishDocumentLoadForFrame; 105 WKBundlePageDidFinishLoadForFrameCallback didFinishLoadForFrame; 106 WKBundlePageDidFailLoadWithErrorForFrameCallback didFailLoadWithErrorForFrame; 107 WKBundlePageDidSameDocumentNavigationForFrameCallback didSameDocumentNavigationForFrame; 108 WKBundlePageDidReceiveTitleForFrameCallback didReceiveTitleForFrame; 109 WKBundlePageDidFirstLayoutForFrameCallback didFirstLayoutForFrame; 110 WKBundlePageDidFirstVisuallyNonEmptyLayoutForFrameCallback didFirstVisuallyNonEmptyLayoutForFrame; 111 WKBundlePageDidRemoveFrameFromHierarchyCallback didRemoveFrameFromHierarchy; 112 WKBundlePageDidDisplayInsecureContentForFrameCallback didDisplayInsecureContentForFrame; 113 WKBundlePageDidRunInsecureContentForFrameCallback didRunInsecureContentForFrame; 114 WKBundlePageDidClearWindowObjectForFrameCallback didClearWindowObjectForFrame; 115 WKBundlePageDidCancelClientRedirectForFrameCallback didCancelClientRedirectForFrame; 116 WKBundlePageWillPerformClientRedirectForFrameCallback willPerformClientRedirectForFrame; 117 WKBundlePageDidHandleOnloadEventsForFrameCallback didHandleOnloadEventsForFrame; 118 119 // Version 1. 120 WKBundlePageDidLayoutForFrameCallback didLayoutForFrame; 121 void * didNewFirstVisuallyNonEmptyLayout_unavailable; 122 WKBundlePageDidDetectXSSForFrameCallback didDetectXSSForFrame; 123 WKBundlePageShouldGoToBackForwardListItemCallback shouldGoToBackForwardListItem; 124 WKBundlePageGlobalObjectIsAvailableForFrameCallback globalObjectIsAvailableForFrame; 125 WKBundlePageWillDisconnectDOMWindowExtensionFromGlobalObjectCallback willDisconnectDOMWindowExtensionFromGlobalObject; 126 WKBundlePageDidReconnectDOMWindowExtensionToGlobalObjectCallback didReconnectDOMWindowExtensionToGlobalObject; 127 WKBundlePageWillDestroyGlobalObjectForDOMWindowExtensionCallback willDestroyGlobalObjectForDOMWindowExtension; 128} WKBundlePageLoaderClientV1; 129 130typedef struct WKBundlePageLoaderClientV2 { 131 WKBundlePageLoaderClientBase base; 132 133 // Version 0. 134 WKBundlePageDidStartProvisionalLoadForFrameCallback didStartProvisionalLoadForFrame; 135 WKBundlePageDidReceiveServerRedirectForProvisionalLoadForFrameCallback didReceiveServerRedirectForProvisionalLoadForFrame; 136 WKBundlePageDidFailProvisionalLoadWithErrorForFrameCallback didFailProvisionalLoadWithErrorForFrame; 137 WKBundlePageDidCommitLoadForFrameCallback didCommitLoadForFrame; 138 WKBundlePageDidFinishDocumentLoadForFrameCallback didFinishDocumentLoadForFrame; 139 WKBundlePageDidFinishLoadForFrameCallback didFinishLoadForFrame; 140 WKBundlePageDidFailLoadWithErrorForFrameCallback didFailLoadWithErrorForFrame; 141 WKBundlePageDidSameDocumentNavigationForFrameCallback didSameDocumentNavigationForFrame; 142 WKBundlePageDidReceiveTitleForFrameCallback didReceiveTitleForFrame; 143 WKBundlePageDidFirstLayoutForFrameCallback didFirstLayoutForFrame; 144 WKBundlePageDidFirstVisuallyNonEmptyLayoutForFrameCallback didFirstVisuallyNonEmptyLayoutForFrame; 145 WKBundlePageDidRemoveFrameFromHierarchyCallback didRemoveFrameFromHierarchy; 146 WKBundlePageDidDisplayInsecureContentForFrameCallback didDisplayInsecureContentForFrame; 147 WKBundlePageDidRunInsecureContentForFrameCallback didRunInsecureContentForFrame; 148 WKBundlePageDidClearWindowObjectForFrameCallback didClearWindowObjectForFrame; 149 WKBundlePageDidCancelClientRedirectForFrameCallback didCancelClientRedirectForFrame; 150 WKBundlePageWillPerformClientRedirectForFrameCallback willPerformClientRedirectForFrame; 151 WKBundlePageDidHandleOnloadEventsForFrameCallback didHandleOnloadEventsForFrame; 152 153 // Version 1. 154 WKBundlePageDidLayoutForFrameCallback didLayoutForFrame; 155 void * didNewFirstVisuallyNonEmptyLayout_unavailable; 156 WKBundlePageDidDetectXSSForFrameCallback didDetectXSSForFrame; 157 WKBundlePageShouldGoToBackForwardListItemCallback shouldGoToBackForwardListItem; 158 WKBundlePageGlobalObjectIsAvailableForFrameCallback globalObjectIsAvailableForFrame; 159 WKBundlePageWillDisconnectDOMWindowExtensionFromGlobalObjectCallback willDisconnectDOMWindowExtensionFromGlobalObject; 160 WKBundlePageDidReconnectDOMWindowExtensionToGlobalObjectCallback didReconnectDOMWindowExtensionToGlobalObject; 161 WKBundlePageWillDestroyGlobalObjectForDOMWindowExtensionCallback willDestroyGlobalObjectForDOMWindowExtension; 162 163 // Version 2 164 WKBundlePageDidFinishProgressCallback didFinishProgress; 165 WKBundlePageShouldForceUniversalAccessFromLocalURLCallback shouldForceUniversalAccessFromLocalURL; 166} WKBundlePageLoaderClientV2; 167 168typedef struct WKBundlePageLoaderClientV3 { 169 WKBundlePageLoaderClientBase base; 170 171 // Version 0. 172 WKBundlePageDidStartProvisionalLoadForFrameCallback didStartProvisionalLoadForFrame; 173 WKBundlePageDidReceiveServerRedirectForProvisionalLoadForFrameCallback didReceiveServerRedirectForProvisionalLoadForFrame; 174 WKBundlePageDidFailProvisionalLoadWithErrorForFrameCallback didFailProvisionalLoadWithErrorForFrame; 175 WKBundlePageDidCommitLoadForFrameCallback didCommitLoadForFrame; 176 WKBundlePageDidFinishDocumentLoadForFrameCallback didFinishDocumentLoadForFrame; 177 WKBundlePageDidFinishLoadForFrameCallback didFinishLoadForFrame; 178 WKBundlePageDidFailLoadWithErrorForFrameCallback didFailLoadWithErrorForFrame; 179 WKBundlePageDidSameDocumentNavigationForFrameCallback didSameDocumentNavigationForFrame; 180 WKBundlePageDidReceiveTitleForFrameCallback didReceiveTitleForFrame; 181 WKBundlePageDidFirstLayoutForFrameCallback didFirstLayoutForFrame; 182 WKBundlePageDidFirstVisuallyNonEmptyLayoutForFrameCallback didFirstVisuallyNonEmptyLayoutForFrame; 183 WKBundlePageDidRemoveFrameFromHierarchyCallback didRemoveFrameFromHierarchy; 184 WKBundlePageDidDisplayInsecureContentForFrameCallback didDisplayInsecureContentForFrame; 185 WKBundlePageDidRunInsecureContentForFrameCallback didRunInsecureContentForFrame; 186 WKBundlePageDidClearWindowObjectForFrameCallback didClearWindowObjectForFrame; 187 WKBundlePageDidCancelClientRedirectForFrameCallback didCancelClientRedirectForFrame; 188 WKBundlePageWillPerformClientRedirectForFrameCallback willPerformClientRedirectForFrame; 189 WKBundlePageDidHandleOnloadEventsForFrameCallback didHandleOnloadEventsForFrame; 190 191 // Version 1. 192 WKBundlePageDidLayoutForFrameCallback didLayoutForFrame; 193 void * didNewFirstVisuallyNonEmptyLayout_unavailable; 194 WKBundlePageDidDetectXSSForFrameCallback didDetectXSSForFrame; 195 WKBundlePageShouldGoToBackForwardListItemCallback shouldGoToBackForwardListItem; 196 WKBundlePageGlobalObjectIsAvailableForFrameCallback globalObjectIsAvailableForFrame; 197 WKBundlePageWillDisconnectDOMWindowExtensionFromGlobalObjectCallback willDisconnectDOMWindowExtensionFromGlobalObject; 198 WKBundlePageDidReconnectDOMWindowExtensionToGlobalObjectCallback didReconnectDOMWindowExtensionToGlobalObject; 199 WKBundlePageWillDestroyGlobalObjectForDOMWindowExtensionCallback willDestroyGlobalObjectForDOMWindowExtension; 200 201 // Version 2 202 WKBundlePageDidFinishProgressCallback didFinishProgress; 203 WKBundlePageShouldForceUniversalAccessFromLocalURLCallback shouldForceUniversalAccessFromLocalURL; 204 205 // Version 3 206 void * didReceiveIntentForFrame_unavailable; 207 void * registerIntentServiceForFrame_unavailable; 208} WKBundlePageLoaderClientV3; 209 210typedef struct WKBundlePageLoaderClientV4 { 211 WKBundlePageLoaderClientBase base; 212 213 // Version 0. 214 WKBundlePageDidStartProvisionalLoadForFrameCallback didStartProvisionalLoadForFrame; 215 WKBundlePageDidReceiveServerRedirectForProvisionalLoadForFrameCallback didReceiveServerRedirectForProvisionalLoadForFrame; 216 WKBundlePageDidFailProvisionalLoadWithErrorForFrameCallback didFailProvisionalLoadWithErrorForFrame; 217 WKBundlePageDidCommitLoadForFrameCallback didCommitLoadForFrame; 218 WKBundlePageDidFinishDocumentLoadForFrameCallback didFinishDocumentLoadForFrame; 219 WKBundlePageDidFinishLoadForFrameCallback didFinishLoadForFrame; 220 WKBundlePageDidFailLoadWithErrorForFrameCallback didFailLoadWithErrorForFrame; 221 WKBundlePageDidSameDocumentNavigationForFrameCallback didSameDocumentNavigationForFrame; 222 WKBundlePageDidReceiveTitleForFrameCallback didReceiveTitleForFrame; 223 WKBundlePageDidFirstLayoutForFrameCallback didFirstLayoutForFrame; 224 WKBundlePageDidFirstVisuallyNonEmptyLayoutForFrameCallback didFirstVisuallyNonEmptyLayoutForFrame; 225 WKBundlePageDidRemoveFrameFromHierarchyCallback didRemoveFrameFromHierarchy; 226 WKBundlePageDidDisplayInsecureContentForFrameCallback didDisplayInsecureContentForFrame; 227 WKBundlePageDidRunInsecureContentForFrameCallback didRunInsecureContentForFrame; 228 WKBundlePageDidClearWindowObjectForFrameCallback didClearWindowObjectForFrame; 229 WKBundlePageDidCancelClientRedirectForFrameCallback didCancelClientRedirectForFrame; 230 WKBundlePageWillPerformClientRedirectForFrameCallback willPerformClientRedirectForFrame; 231 WKBundlePageDidHandleOnloadEventsForFrameCallback didHandleOnloadEventsForFrame; 232 233 // Version 1. 234 WKBundlePageDidLayoutForFrameCallback didLayoutForFrame; 235 void * didNewFirstVisuallyNonEmptyLayout_unavailable; 236 WKBundlePageDidDetectXSSForFrameCallback didDetectXSSForFrame; 237 WKBundlePageShouldGoToBackForwardListItemCallback shouldGoToBackForwardListItem; 238 WKBundlePageGlobalObjectIsAvailableForFrameCallback globalObjectIsAvailableForFrame; 239 WKBundlePageWillDisconnectDOMWindowExtensionFromGlobalObjectCallback willDisconnectDOMWindowExtensionFromGlobalObject; 240 WKBundlePageDidReconnectDOMWindowExtensionToGlobalObjectCallback didReconnectDOMWindowExtensionToGlobalObject; 241 WKBundlePageWillDestroyGlobalObjectForDOMWindowExtensionCallback willDestroyGlobalObjectForDOMWindowExtension; 242 243 // Version 2 244 WKBundlePageDidFinishProgressCallback didFinishProgress; 245 WKBundlePageShouldForceUniversalAccessFromLocalURLCallback shouldForceUniversalAccessFromLocalURL; 246 247 // Version 3 248 void * didReceiveIntentForFrame_unavailable; 249 void * registerIntentServiceForFrame_unavailable; 250 251 // Version 4 252 WKBundlePageDidLayoutCallback didLayout; 253} WKBundlePageLoaderClientV4; 254 255typedef struct WKBundlePageLoaderClientV5 { 256 WKBundlePageLoaderClientBase base; 257 258 // Version 0. 259 WKBundlePageDidStartProvisionalLoadForFrameCallback didStartProvisionalLoadForFrame; 260 WKBundlePageDidReceiveServerRedirectForProvisionalLoadForFrameCallback didReceiveServerRedirectForProvisionalLoadForFrame; 261 WKBundlePageDidFailProvisionalLoadWithErrorForFrameCallback didFailProvisionalLoadWithErrorForFrame; 262 WKBundlePageDidCommitLoadForFrameCallback didCommitLoadForFrame; 263 WKBundlePageDidFinishDocumentLoadForFrameCallback didFinishDocumentLoadForFrame; 264 WKBundlePageDidFinishLoadForFrameCallback didFinishLoadForFrame; 265 WKBundlePageDidFailLoadWithErrorForFrameCallback didFailLoadWithErrorForFrame; 266 WKBundlePageDidSameDocumentNavigationForFrameCallback didSameDocumentNavigationForFrame; 267 WKBundlePageDidReceiveTitleForFrameCallback didReceiveTitleForFrame; 268 WKBundlePageDidFirstLayoutForFrameCallback didFirstLayoutForFrame; 269 WKBundlePageDidFirstVisuallyNonEmptyLayoutForFrameCallback didFirstVisuallyNonEmptyLayoutForFrame; 270 WKBundlePageDidRemoveFrameFromHierarchyCallback didRemoveFrameFromHierarchy; 271 WKBundlePageDidDisplayInsecureContentForFrameCallback didDisplayInsecureContentForFrame; 272 WKBundlePageDidRunInsecureContentForFrameCallback didRunInsecureContentForFrame; 273 WKBundlePageDidClearWindowObjectForFrameCallback didClearWindowObjectForFrame; 274 WKBundlePageDidCancelClientRedirectForFrameCallback didCancelClientRedirectForFrame; 275 WKBundlePageWillPerformClientRedirectForFrameCallback willPerformClientRedirectForFrame; 276 WKBundlePageDidHandleOnloadEventsForFrameCallback didHandleOnloadEventsForFrame; 277 278 // Version 1. 279 WKBundlePageDidLayoutForFrameCallback didLayoutForFrame; 280 void * didNewFirstVisuallyNonEmptyLayout_unavailable; 281 WKBundlePageDidDetectXSSForFrameCallback didDetectXSSForFrame; 282 WKBundlePageShouldGoToBackForwardListItemCallback shouldGoToBackForwardListItem; 283 WKBundlePageGlobalObjectIsAvailableForFrameCallback globalObjectIsAvailableForFrame; 284 WKBundlePageWillDisconnectDOMWindowExtensionFromGlobalObjectCallback willDisconnectDOMWindowExtensionFromGlobalObject; 285 WKBundlePageDidReconnectDOMWindowExtensionToGlobalObjectCallback didReconnectDOMWindowExtensionToGlobalObject; 286 WKBundlePageWillDestroyGlobalObjectForDOMWindowExtensionCallback willDestroyGlobalObjectForDOMWindowExtension; 287 288 // Version 2 289 WKBundlePageDidFinishProgressCallback didFinishProgress; 290 WKBundlePageShouldForceUniversalAccessFromLocalURLCallback shouldForceUniversalAccessFromLocalURL; 291 292 // Version 3 293 void * didReceiveIntentForFrame_unavailable; 294 void * registerIntentServiceForFrame_unavailable; 295 296 // Version 4 297 WKBundlePageDidLayoutCallback didLayout; 298 299 // Version 5 300 WKBundlePageFeaturesUsedInPageCallback featuresUsedInPage; 301} WKBundlePageLoaderClientV5; 302 303typedef struct WKBundlePageLoaderClientV6 { 304 WKBundlePageLoaderClientBase base; 305 306 // Version 0. 307 WKBundlePageDidStartProvisionalLoadForFrameCallback didStartProvisionalLoadForFrame; 308 WKBundlePageDidReceiveServerRedirectForProvisionalLoadForFrameCallback didReceiveServerRedirectForProvisionalLoadForFrame; 309 WKBundlePageDidFailProvisionalLoadWithErrorForFrameCallback didFailProvisionalLoadWithErrorForFrame; 310 WKBundlePageDidCommitLoadForFrameCallback didCommitLoadForFrame; 311 WKBundlePageDidFinishDocumentLoadForFrameCallback didFinishDocumentLoadForFrame; 312 WKBundlePageDidFinishLoadForFrameCallback didFinishLoadForFrame; 313 WKBundlePageDidFailLoadWithErrorForFrameCallback didFailLoadWithErrorForFrame; 314 WKBundlePageDidSameDocumentNavigationForFrameCallback didSameDocumentNavigationForFrame; 315 WKBundlePageDidReceiveTitleForFrameCallback didReceiveTitleForFrame; 316 WKBundlePageDidFirstLayoutForFrameCallback didFirstLayoutForFrame; 317 WKBundlePageDidFirstVisuallyNonEmptyLayoutForFrameCallback didFirstVisuallyNonEmptyLayoutForFrame; 318 WKBundlePageDidRemoveFrameFromHierarchyCallback didRemoveFrameFromHierarchy; 319 WKBundlePageDidDisplayInsecureContentForFrameCallback didDisplayInsecureContentForFrame; 320 WKBundlePageDidRunInsecureContentForFrameCallback didRunInsecureContentForFrame; 321 WKBundlePageDidClearWindowObjectForFrameCallback didClearWindowObjectForFrame; 322 WKBundlePageDidCancelClientRedirectForFrameCallback didCancelClientRedirectForFrame; 323 WKBundlePageWillPerformClientRedirectForFrameCallback willPerformClientRedirectForFrame; 324 WKBundlePageDidHandleOnloadEventsForFrameCallback didHandleOnloadEventsForFrame; 325 326 // Version 1. 327 WKBundlePageDidLayoutForFrameCallback didLayoutForFrame; 328 void * didNewFirstVisuallyNonEmptyLayout_unavailable; 329 WKBundlePageDidDetectXSSForFrameCallback didDetectXSSForFrame; 330 WKBundlePageShouldGoToBackForwardListItemCallback shouldGoToBackForwardListItem; 331 WKBundlePageGlobalObjectIsAvailableForFrameCallback globalObjectIsAvailableForFrame; 332 WKBundlePageWillDisconnectDOMWindowExtensionFromGlobalObjectCallback willDisconnectDOMWindowExtensionFromGlobalObject; 333 WKBundlePageDidReconnectDOMWindowExtensionToGlobalObjectCallback didReconnectDOMWindowExtensionToGlobalObject; 334 WKBundlePageWillDestroyGlobalObjectForDOMWindowExtensionCallback willDestroyGlobalObjectForDOMWindowExtension; 335 336 // Version 2 337 WKBundlePageDidFinishProgressCallback didFinishProgress; 338 WKBundlePageShouldForceUniversalAccessFromLocalURLCallback shouldForceUniversalAccessFromLocalURL; 339 340 // Version 3 341 void * didReceiveIntentForFrame_unavailable; 342 void * registerIntentServiceForFrame_unavailable; 343 344 // Version 4 345 WKBundlePageDidLayoutCallback didLayout; 346 347 // Version 5 348 WKBundlePageFeaturesUsedInPageCallback featuresUsedInPage; 349 350 // Version 6 351 WKBundlePageWillLoadURLRequestCallback willLoadURLRequest; 352 WKBundlePageWillLoadDataRequestCallback willLoadDataRequest; 353} WKBundlePageLoaderClientV6; 354 355typedef struct WKBundlePageLoaderClientV7 { 356 WKBundlePageLoaderClientBase base; 357 358 // Version 0. 359 WKBundlePageDidStartProvisionalLoadForFrameCallback didStartProvisionalLoadForFrame; 360 WKBundlePageDidReceiveServerRedirectForProvisionalLoadForFrameCallback didReceiveServerRedirectForProvisionalLoadForFrame; 361 WKBundlePageDidFailProvisionalLoadWithErrorForFrameCallback didFailProvisionalLoadWithErrorForFrame; 362 WKBundlePageDidCommitLoadForFrameCallback didCommitLoadForFrame; 363 WKBundlePageDidFinishDocumentLoadForFrameCallback didFinishDocumentLoadForFrame; 364 WKBundlePageDidFinishLoadForFrameCallback didFinishLoadForFrame; 365 WKBundlePageDidFailLoadWithErrorForFrameCallback didFailLoadWithErrorForFrame; 366 WKBundlePageDidSameDocumentNavigationForFrameCallback didSameDocumentNavigationForFrame; 367 WKBundlePageDidReceiveTitleForFrameCallback didReceiveTitleForFrame; 368 WKBundlePageDidFirstLayoutForFrameCallback didFirstLayoutForFrame; 369 WKBundlePageDidFirstVisuallyNonEmptyLayoutForFrameCallback didFirstVisuallyNonEmptyLayoutForFrame; 370 WKBundlePageDidRemoveFrameFromHierarchyCallback didRemoveFrameFromHierarchy; 371 WKBundlePageDidDisplayInsecureContentForFrameCallback didDisplayInsecureContentForFrame; 372 WKBundlePageDidRunInsecureContentForFrameCallback didRunInsecureContentForFrame; 373 WKBundlePageDidClearWindowObjectForFrameCallback didClearWindowObjectForFrame; 374 WKBundlePageDidCancelClientRedirectForFrameCallback didCancelClientRedirectForFrame; 375 WKBundlePageWillPerformClientRedirectForFrameCallback willPerformClientRedirectForFrame; 376 WKBundlePageDidHandleOnloadEventsForFrameCallback didHandleOnloadEventsForFrame; 377 378 // Version 1. 379 WKBundlePageDidLayoutForFrameCallback didLayoutForFrame; 380 void * didNewFirstVisuallyNonEmptyLayout_unavailable; 381 WKBundlePageDidDetectXSSForFrameCallback didDetectXSSForFrame; 382 WKBundlePageShouldGoToBackForwardListItemCallback shouldGoToBackForwardListItem; 383 WKBundlePageGlobalObjectIsAvailableForFrameCallback globalObjectIsAvailableForFrame; 384 WKBundlePageWillDisconnectDOMWindowExtensionFromGlobalObjectCallback willDisconnectDOMWindowExtensionFromGlobalObject; 385 WKBundlePageDidReconnectDOMWindowExtensionToGlobalObjectCallback didReconnectDOMWindowExtensionToGlobalObject; 386 WKBundlePageWillDestroyGlobalObjectForDOMWindowExtensionCallback willDestroyGlobalObjectForDOMWindowExtension; 387 388 // Version 2 389 WKBundlePageDidFinishProgressCallback didFinishProgress; 390 WKBundlePageShouldForceUniversalAccessFromLocalURLCallback shouldForceUniversalAccessFromLocalURL; 391 392 // Version 3 393 void * didReceiveIntentForFrame_unavailable; 394 void * registerIntentServiceForFrame_unavailable; 395 396 // Version 4 397 WKBundlePageDidLayoutCallback didLayout; 398 399 // Version 5 400 WKBundlePageFeaturesUsedInPageCallback featuresUsedInPage; 401 402 // Version 6 403 WKBundlePageWillLoadURLRequestCallback willLoadURLRequest; 404 WKBundlePageWillLoadDataRequestCallback willLoadDataRequest; 405 406 // Version 7 407 WKBundlePageWillDestroyFrame willDestroyFrame; 408} WKBundlePageLoaderClientV7; 409 410typedef struct WKBundlePageLoaderClientV8 { 411 WKBundlePageLoaderClientBase base; 412 413 // Version 0. 414 WKBundlePageDidStartProvisionalLoadForFrameCallback didStartProvisionalLoadForFrame; 415 WKBundlePageDidReceiveServerRedirectForProvisionalLoadForFrameCallback didReceiveServerRedirectForProvisionalLoadForFrame; 416 WKBundlePageDidFailProvisionalLoadWithErrorForFrameCallback didFailProvisionalLoadWithErrorForFrame; 417 WKBundlePageDidCommitLoadForFrameCallback didCommitLoadForFrame; 418 WKBundlePageDidFinishDocumentLoadForFrameCallback didFinishDocumentLoadForFrame; 419 WKBundlePageDidFinishLoadForFrameCallback didFinishLoadForFrame; 420 WKBundlePageDidFailLoadWithErrorForFrameCallback didFailLoadWithErrorForFrame; 421 WKBundlePageDidSameDocumentNavigationForFrameCallback didSameDocumentNavigationForFrame; 422 WKBundlePageDidReceiveTitleForFrameCallback didReceiveTitleForFrame; 423 WKBundlePageDidFirstLayoutForFrameCallback didFirstLayoutForFrame; 424 WKBundlePageDidFirstVisuallyNonEmptyLayoutForFrameCallback didFirstVisuallyNonEmptyLayoutForFrame; 425 WKBundlePageDidRemoveFrameFromHierarchyCallback didRemoveFrameFromHierarchy; 426 WKBundlePageDidDisplayInsecureContentForFrameCallback didDisplayInsecureContentForFrame; 427 WKBundlePageDidRunInsecureContentForFrameCallback didRunInsecureContentForFrame; 428 WKBundlePageDidClearWindowObjectForFrameCallback didClearWindowObjectForFrame; 429 WKBundlePageDidCancelClientRedirectForFrameCallback didCancelClientRedirectForFrame; 430 WKBundlePageWillPerformClientRedirectForFrameCallback willPerformClientRedirectForFrame; 431 WKBundlePageDidHandleOnloadEventsForFrameCallback didHandleOnloadEventsForFrame; 432 433 // Version 1. 434 WKBundlePageDidLayoutForFrameCallback didLayoutForFrame; 435 void * didNewFirstVisuallyNonEmptyLayout_unavailable; 436 WKBundlePageDidDetectXSSForFrameCallback didDetectXSSForFrame; 437 WKBundlePageShouldGoToBackForwardListItemCallback shouldGoToBackForwardListItem; 438 WKBundlePageGlobalObjectIsAvailableForFrameCallback globalObjectIsAvailableForFrame; 439 WKBundlePageWillDisconnectDOMWindowExtensionFromGlobalObjectCallback willDisconnectDOMWindowExtensionFromGlobalObject; 440 WKBundlePageDidReconnectDOMWindowExtensionToGlobalObjectCallback didReconnectDOMWindowExtensionToGlobalObject; 441 WKBundlePageWillDestroyGlobalObjectForDOMWindowExtensionCallback willDestroyGlobalObjectForDOMWindowExtension; 442 443 // Version 2 444 WKBundlePageDidFinishProgressCallback didFinishProgress; 445 WKBundlePageShouldForceUniversalAccessFromLocalURLCallback shouldForceUniversalAccessFromLocalURL; 446 447 // Version 3 448 void * didReceiveIntentForFrame_unavailable; 449 void * registerIntentServiceForFrame_unavailable; 450 451 // Version 4 452 WKBundlePageDidLayoutCallback didLayout; 453 454 // Version 5 455 WKBundlePageFeaturesUsedInPageCallback featuresUsedInPage; 456 457 // Version 6 458 WKBundlePageWillLoadURLRequestCallback willLoadURLRequest; 459 WKBundlePageWillLoadDataRequestCallback willLoadDataRequest; 460 461 // Version 7 462 WKBundlePageWillDestroyFrame willDestroyFrame; 463 464 // Version 8 465 WKBundlePageUserAgentForURLCallback userAgentForURL; 466} WKBundlePageLoaderClientV8; 467 468enum { kWKBundlePageLoaderClientCurrentVersion WK_ENUM_DEPRECATED("Use an explicit version number instead") = 8 }; 469typedef struct WKBundlePageLoaderClient { 470 int version; 471 const void * clientInfo; 472 473 // Version 0. 474 WKBundlePageDidStartProvisionalLoadForFrameCallback didStartProvisionalLoadForFrame; 475 WKBundlePageDidReceiveServerRedirectForProvisionalLoadForFrameCallback didReceiveServerRedirectForProvisionalLoadForFrame; 476 WKBundlePageDidFailProvisionalLoadWithErrorForFrameCallback didFailProvisionalLoadWithErrorForFrame; 477 WKBundlePageDidCommitLoadForFrameCallback didCommitLoadForFrame; 478 WKBundlePageDidFinishDocumentLoadForFrameCallback didFinishDocumentLoadForFrame; 479 WKBundlePageDidFinishLoadForFrameCallback didFinishLoadForFrame; 480 WKBundlePageDidFailLoadWithErrorForFrameCallback didFailLoadWithErrorForFrame; 481 WKBundlePageDidSameDocumentNavigationForFrameCallback didSameDocumentNavigationForFrame; 482 WKBundlePageDidReceiveTitleForFrameCallback didReceiveTitleForFrame; 483 WKBundlePageDidFirstLayoutForFrameCallback didFirstLayoutForFrame; 484 WKBundlePageDidFirstVisuallyNonEmptyLayoutForFrameCallback didFirstVisuallyNonEmptyLayoutForFrame; 485 WKBundlePageDidRemoveFrameFromHierarchyCallback didRemoveFrameFromHierarchy; 486 WKBundlePageDidDisplayInsecureContentForFrameCallback didDisplayInsecureContentForFrame; 487 WKBundlePageDidRunInsecureContentForFrameCallback didRunInsecureContentForFrame; 488 WKBundlePageDidClearWindowObjectForFrameCallback didClearWindowObjectForFrame; 489 WKBundlePageDidCancelClientRedirectForFrameCallback didCancelClientRedirectForFrame; 490 WKBundlePageWillPerformClientRedirectForFrameCallback willPerformClientRedirectForFrame; 491 WKBundlePageDidHandleOnloadEventsForFrameCallback didHandleOnloadEventsForFrame; 492 493 // Version 1. 494 WKBundlePageDidLayoutForFrameCallback didLayoutForFrame; 495 void * didNewFirstVisuallyNonEmptyLayout_unavailable; 496 WKBundlePageDidDetectXSSForFrameCallback didDetectXSSForFrame; 497 WKBundlePageShouldGoToBackForwardListItemCallback shouldGoToBackForwardListItem; 498 WKBundlePageGlobalObjectIsAvailableForFrameCallback globalObjectIsAvailableForFrame; 499 WKBundlePageWillDisconnectDOMWindowExtensionFromGlobalObjectCallback willDisconnectDOMWindowExtensionFromGlobalObject; 500 WKBundlePageDidReconnectDOMWindowExtensionToGlobalObjectCallback didReconnectDOMWindowExtensionToGlobalObject; 501 WKBundlePageWillDestroyGlobalObjectForDOMWindowExtensionCallback willDestroyGlobalObjectForDOMWindowExtension; 502 503 // Version 2 504 WKBundlePageDidFinishProgressCallback didFinishProgress; 505 WKBundlePageShouldForceUniversalAccessFromLocalURLCallback shouldForceUniversalAccessFromLocalURL; 506 507 // Version 3 508 void * didReceiveIntentForFrame_unavailable; 509 void * registerIntentServiceForFrame_unavailable; 510 511 // Version 4 512 WKBundlePageDidLayoutCallback didLayout; 513 514 // Version 5 515 WKBundlePageFeaturesUsedInPageCallback featuresUsedInPage; 516 517 // Version 6 518 WKBundlePageWillLoadURLRequestCallback willLoadURLRequest; 519 WKBundlePageWillLoadDataRequestCallback willLoadDataRequest; 520 521 // Version 7 522 WKBundlePageWillDestroyFrame willDestroyFrame; 523} WKBundlePageLoaderClient WK_DEPRECATED("Use an explicit versioned struct instead"); 524 525#endif // WKBundlePageLoaderClient_h 526