10bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch/* 20bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch * Copyright (C) 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserved. 30bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch * 40bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch * Redistribution and use in source and binary forms, with or without 50bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch * modification, are permitted provided that the following conditions 60bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch * are met: 70bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch * 80bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch * 1. Redistributions of source code must retain the above copyright 90bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch * notice, this list of conditions and the following disclaimer. 100bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch * 2. Redistributions in binary form must reproduce the above copyright 110bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch * notice, this list of conditions and the following disclaimer in the 120bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch * documentation and/or other materials provided with the distribution. 130bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of 140bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch * its contributors may be used to endorse or promote products derived 150bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch * from this software without specific prior written permission. 160bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch * 170bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY 180bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 190bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 200bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY 210bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 220bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 230bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 240bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 250bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 260bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 270bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch */ 280bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch 290bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch// This header contains WebView declarations that can be used anywhere in WebKit, but are neither SPI nor API. 300bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch 310bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch#import "WebTypesInternal.h" 320bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch 330bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch@class WebView; 340bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch 350bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdochstruct WebResourceDelegateImplementationCache { 360bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch IMP didCancelAuthenticationChallengeFunc; 370bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch IMP didReceiveAuthenticationChallengeFunc; 3821939df44de1705786c545cd1bf519d47250322dBen Murdoch#if USE(PROTECTION_SPACE_AUTH_CALLBACK) 3921939df44de1705786c545cd1bf519d47250322dBen Murdoch IMP canAuthenticateAgainstProtectionSpaceFunc; 4021939df44de1705786c545cd1bf519d47250322dBen Murdoch#endif 410bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch IMP identifierForRequestFunc; 420bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch IMP willSendRequestFunc; 430bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch IMP didReceiveResponseFunc; 440bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch IMP didReceiveContentLengthFunc; 450bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch IMP didFinishLoadingFromDataSourceFunc; 460bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch IMP didFailLoadingWithErrorFromDataSourceFunc; 470bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch IMP didLoadResourceFromMemoryCacheFunc; 480bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch IMP willCacheResponseFunc; 490bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch IMP plugInFailedWithErrorFunc; 500bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch IMP shouldUseCredentialStorageFunc; 5181bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch IMP shouldPaintBrokenImageForURLFunc; 520bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch}; 530bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch 540bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdochstruct WebFrameLoadDelegateImplementationCache { 550bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch IMP didClearWindowObjectForFrameFunc; 56643ca7872b450ea4efacab6188849e5aac2ba161Steve Block IMP didClearWindowObjectForFrameInScriptWorldFunc; 570bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch IMP didClearInspectorWindowObjectForFrameFunc; 580bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch IMP windowScriptObjectAvailableFunc; 590bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch IMP didHandleOnloadEventsForFrameFunc; 600bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch IMP didReceiveServerRedirectForProvisionalLoadForFrameFunc; 610bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch IMP didCancelClientRedirectForFrameFunc; 620bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch IMP willPerformClientRedirectToURLDelayFireDateForFrameFunc; 630bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch IMP didChangeLocationWithinPageForFrameFunc; 64643ca7872b450ea4efacab6188849e5aac2ba161Steve Block IMP didPushStateWithinPageForFrameFunc; 65643ca7872b450ea4efacab6188849e5aac2ba161Steve Block IMP didReplaceStateWithinPageForFrameFunc; 66643ca7872b450ea4efacab6188849e5aac2ba161Steve Block IMP didPopStateWithinPageForFrameFunc; 670bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch IMP willCloseFrameFunc; 680bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch IMP didStartProvisionalLoadForFrameFunc; 690bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch IMP didReceiveTitleForFrameFunc; 700bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch IMP didCommitLoadForFrameFunc; 710bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch IMP didFailProvisionalLoadWithErrorForFrameFunc; 720bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch IMP didFailLoadWithErrorForFrameFunc; 730bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch IMP didFinishLoadForFrameFunc; 740bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch IMP didFirstLayoutInFrameFunc; 750bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch IMP didFirstVisuallyNonEmptyLayoutInFrameFunc; 760bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch IMP didReceiveIconForFrameFunc; 770bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch IMP didFinishDocumentLoadForFrameFunc; 78231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block IMP didDisplayInsecureContentFunc; 79231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block IMP didRunInsecureContentFunc; 800bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch}; 810bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch 820bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdochstruct WebScriptDebugDelegateImplementationCache { 830bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch BOOL didParseSourceExpectsBaseLineNumber; 84ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch BOOL exceptionWasRaisedExpectsHasHandlerFlag; 850bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch IMP didParseSourceFunc; 860bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch IMP failedToParseSourceFunc; 870bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch IMP didEnterCallFrameFunc; 880bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch IMP willExecuteStatementFunc; 890bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch IMP willLeaveCallFrameFunc; 900bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch IMP exceptionWasRaisedFunc; 910bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch}; 920bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch 93231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Blockstruct WebHistoryDelegateImplementationCache { 94231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block IMP navigatedFunc; 95231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block IMP clientRedirectFunc; 96231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block IMP serverRedirectFunc; 97231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block IMP setTitleFunc; 98cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Block IMP populateVisitedLinksFunc; 99231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block}; 100231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block 1010bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben MurdochWebResourceDelegateImplementationCache* WebViewGetResourceLoadDelegateImplementations(WebView *); 1020bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben MurdochWebFrameLoadDelegateImplementationCache* WebViewGetFrameLoadDelegateImplementations(WebView *); 1030bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben MurdochWebScriptDebugDelegateImplementationCache* WebViewGetScriptDebugDelegateImplementations(WebView *); 104231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve BlockWebHistoryDelegateImplementationCache* WebViewGetHistoryDelegateImplementations(WebView *webView); 1050bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch 1060bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdochid CallFormDelegate(WebView *, SEL, id, id); 1070bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdochid CallFormDelegate(WebView *self, SEL selector, id object1, id object2, id object3, id object4, id object5); 1080bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben MurdochBOOL CallFormDelegateReturningBoolean(BOOL, WebView *, SEL, id, SEL, id); 1090bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch 1100bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdochid CallUIDelegate(WebView *, SEL); 1110bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdochid CallUIDelegate(WebView *, SEL, id); 1120bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdochid CallUIDelegate(WebView *, SEL, NSRect); 1130bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdochid CallUIDelegate(WebView *, SEL, id, id); 1140bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdochid CallUIDelegate(WebView *, SEL, id, BOOL); 1150bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdochid CallUIDelegate(WebView *, SEL, id, id, id); 1160bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdochid CallUIDelegate(WebView *, SEL, id, NSUInteger); 1170bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdochfloat CallUIDelegateReturningFloat(WebView *, SEL); 1180bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben MurdochBOOL CallUIDelegateReturningBoolean(BOOL, WebView *, SEL); 1190bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben MurdochBOOL CallUIDelegateReturningBoolean(BOOL, WebView *, SEL, id); 1200bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben MurdochBOOL CallUIDelegateReturningBoolean(BOOL, WebView *, SEL, id, id); 1210bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben MurdochBOOL CallUIDelegateReturningBoolean(BOOL, WebView *, SEL, id, BOOL); 122643ca7872b450ea4efacab6188849e5aac2ba161Steve BlockBOOL CallUIDelegateReturningBoolean(BOOL, WebView *, SEL, id, BOOL, id); 1230bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch 1240bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdochid CallFrameLoadDelegate(IMP, WebView *, SEL); 1250bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdochid CallFrameLoadDelegate(IMP, WebView *, SEL, id); 1260bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdochid CallFrameLoadDelegate(IMP, WebView *, SEL, id, id); 1270bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdochid CallFrameLoadDelegate(IMP, WebView *, SEL, id, id, id); 1280bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdochid CallFrameLoadDelegate(IMP, WebView *, SEL, id, id, id, id); 1290bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdochid CallFrameLoadDelegate(IMP, WebView *, SEL, id, NSTimeInterval, id, id); 1300bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch 1310bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdochid CallResourceLoadDelegate(IMP, WebView *, SEL, id, id); 1320bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdochid CallResourceLoadDelegate(IMP, WebView *, SEL, id, id, id); 1330bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdochid CallResourceLoadDelegate(IMP, WebView *, SEL, id, id, id, id); 1340bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdochid CallResourceLoadDelegate(IMP, WebView *, SEL, id, NSInteger, id); 1350bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdochid CallResourceLoadDelegate(IMP, WebView *, SEL, id, id, NSInteger, id); 1360bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch 13781bc750723a18f21cd17d1b173cd2a4dda9cea6eBen MurdochBOOL CallResourceLoadDelegateReturningBoolean(BOOL, IMP, WebView *, SEL, id); 1380bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben MurdochBOOL CallResourceLoadDelegateReturningBoolean(BOOL, IMP, WebView *, SEL, id, id); 13921939df44de1705786c545cd1bf519d47250322dBen MurdochBOOL CallResourceLoadDelegateReturningBoolean(BOOL, IMP, WebView *, SEL, id, id, id); 1400bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch 1410bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdochid CallScriptDebugDelegate(IMP, WebView *, SEL, id, id, NSInteger, id); 1420bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdochid CallScriptDebugDelegate(IMP, WebView *, SEL, id, NSInteger, id, NSInteger, id); 1430bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdochid CallScriptDebugDelegate(IMP, WebView *, SEL, id, NSInteger, id, id, id); 144ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdochid CallScriptDebugDelegate(IMP, WebView *, SEL, id, NSInteger, int, id); 145ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdochid CallScriptDebugDelegate(IMP, WebView *, SEL, id, BOOL, NSInteger, int, id); 146231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block 147cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Blockid CallHistoryDelegate(IMP, WebView *, SEL); 148231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Blockid CallHistoryDelegate(IMP, WebView *, SEL, id, id); 149231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Blockid CallHistoryDelegate(IMP, WebView *, SEL, id, id, id); 150