1/*
2 * Copyright (C) 2005, 2006, 2007, 2008, 2009 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 *
8 * 1.  Redistributions of source code must retain the above copyright
9 *     notice, this list of conditions and the following disclaimer.
10 * 2.  Redistributions in binary form must reproduce the above copyright
11 *     notice, this list of conditions and the following disclaimer in the
12 *     documentation and/or other materials provided with the distribution.
13 * 3.  Neither the name of Apple Computer, Inc. ("Apple") nor the names of
14 *     its contributors may be used to endorse or promote products derived
15 *     from this software without specific prior written permission.
16 *
17 * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
18 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
19 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
20 * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
21 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
22 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
23 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
24 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 */
28
29// This header contains WebView declarations that can be used anywhere in WebKit, but are neither SPI nor API.
30
31#import "WebTypesInternal.h"
32
33@class WebView;
34
35struct WebResourceDelegateImplementationCache {
36    IMP didCancelAuthenticationChallengeFunc;
37    IMP didReceiveAuthenticationChallengeFunc;
38#if USE(PROTECTION_SPACE_AUTH_CALLBACK)
39    IMP canAuthenticateAgainstProtectionSpaceFunc;
40#endif
41    IMP identifierForRequestFunc;
42    IMP willSendRequestFunc;
43    IMP didReceiveResponseFunc;
44    IMP didReceiveContentLengthFunc;
45    IMP didFinishLoadingFromDataSourceFunc;
46    IMP didFailLoadingWithErrorFromDataSourceFunc;
47    IMP didLoadResourceFromMemoryCacheFunc;
48    IMP willCacheResponseFunc;
49    IMP plugInFailedWithErrorFunc;
50    IMP shouldUseCredentialStorageFunc;
51    IMP shouldPaintBrokenImageForURLFunc;
52};
53
54struct WebFrameLoadDelegateImplementationCache {
55    IMP didClearWindowObjectForFrameFunc;
56    IMP didClearWindowObjectForFrameInScriptWorldFunc;
57    IMP didClearInspectorWindowObjectForFrameFunc;
58    IMP windowScriptObjectAvailableFunc;
59    IMP didHandleOnloadEventsForFrameFunc;
60    IMP didReceiveServerRedirectForProvisionalLoadForFrameFunc;
61    IMP didCancelClientRedirectForFrameFunc;
62    IMP willPerformClientRedirectToURLDelayFireDateForFrameFunc;
63    IMP didChangeLocationWithinPageForFrameFunc;
64    IMP didPushStateWithinPageForFrameFunc;
65    IMP didReplaceStateWithinPageForFrameFunc;
66    IMP didPopStateWithinPageForFrameFunc;
67    IMP willCloseFrameFunc;
68    IMP didStartProvisionalLoadForFrameFunc;
69    IMP didReceiveTitleForFrameFunc;
70    IMP didCommitLoadForFrameFunc;
71    IMP didFailProvisionalLoadWithErrorForFrameFunc;
72    IMP didFailLoadWithErrorForFrameFunc;
73    IMP didFinishLoadForFrameFunc;
74    IMP didFirstLayoutInFrameFunc;
75    IMP didFirstVisuallyNonEmptyLayoutInFrameFunc;
76    IMP didReceiveIconForFrameFunc;
77    IMP didFinishDocumentLoadForFrameFunc;
78    IMP didDisplayInsecureContentFunc;
79    IMP didRunInsecureContentFunc;
80};
81
82struct WebScriptDebugDelegateImplementationCache {
83    BOOL didParseSourceExpectsBaseLineNumber;
84    BOOL exceptionWasRaisedExpectsHasHandlerFlag;
85    IMP didParseSourceFunc;
86    IMP failedToParseSourceFunc;
87    IMP didEnterCallFrameFunc;
88    IMP willExecuteStatementFunc;
89    IMP willLeaveCallFrameFunc;
90    IMP exceptionWasRaisedFunc;
91};
92
93struct WebHistoryDelegateImplementationCache {
94    IMP navigatedFunc;
95    IMP clientRedirectFunc;
96    IMP serverRedirectFunc;
97    IMP setTitleFunc;
98    IMP populateVisitedLinksFunc;
99};
100
101WebResourceDelegateImplementationCache* WebViewGetResourceLoadDelegateImplementations(WebView *);
102WebFrameLoadDelegateImplementationCache* WebViewGetFrameLoadDelegateImplementations(WebView *);
103WebScriptDebugDelegateImplementationCache* WebViewGetScriptDebugDelegateImplementations(WebView *);
104WebHistoryDelegateImplementationCache* WebViewGetHistoryDelegateImplementations(WebView *webView);
105
106id CallFormDelegate(WebView *, SEL, id, id);
107id CallFormDelegate(WebView *self, SEL selector, id object1, id object2, id object3, id object4, id object5);
108BOOL CallFormDelegateReturningBoolean(BOOL, WebView *, SEL, id, SEL, id);
109
110id CallUIDelegate(WebView *, SEL);
111id CallUIDelegate(WebView *, SEL, id);
112id CallUIDelegate(WebView *, SEL, NSRect);
113id CallUIDelegate(WebView *, SEL, id, id);
114id CallUIDelegate(WebView *, SEL, id, BOOL);
115id CallUIDelegate(WebView *, SEL, id, id, id);
116id CallUIDelegate(WebView *, SEL, id, NSUInteger);
117float CallUIDelegateReturningFloat(WebView *, SEL);
118BOOL CallUIDelegateReturningBoolean(BOOL, WebView *, SEL);
119BOOL CallUIDelegateReturningBoolean(BOOL, WebView *, SEL, id);
120BOOL CallUIDelegateReturningBoolean(BOOL, WebView *, SEL, id, id);
121BOOL CallUIDelegateReturningBoolean(BOOL, WebView *, SEL, id, BOOL);
122BOOL CallUIDelegateReturningBoolean(BOOL, WebView *, SEL, id, BOOL, id);
123
124id CallFrameLoadDelegate(IMP, WebView *, SEL);
125id CallFrameLoadDelegate(IMP, WebView *, SEL, id);
126id CallFrameLoadDelegate(IMP, WebView *, SEL, id, id);
127id CallFrameLoadDelegate(IMP, WebView *, SEL, id, id, id);
128id CallFrameLoadDelegate(IMP, WebView *, SEL, id, id, id, id);
129id CallFrameLoadDelegate(IMP, WebView *, SEL, id, NSTimeInterval, id, id);
130
131id CallResourceLoadDelegate(IMP, WebView *, SEL, id, id);
132id CallResourceLoadDelegate(IMP, WebView *, SEL, id, id, id);
133id CallResourceLoadDelegate(IMP, WebView *, SEL, id, id, id, id);
134id CallResourceLoadDelegate(IMP, WebView *, SEL, id, NSInteger, id);
135id CallResourceLoadDelegate(IMP, WebView *, SEL, id, id, NSInteger, id);
136
137BOOL CallResourceLoadDelegateReturningBoolean(BOOL, IMP, WebView *, SEL, id);
138BOOL CallResourceLoadDelegateReturningBoolean(BOOL, IMP, WebView *, SEL, id, id);
139BOOL CallResourceLoadDelegateReturningBoolean(BOOL, IMP, WebView *, SEL, id, id, id);
140
141id CallScriptDebugDelegate(IMP, WebView *, SEL, id, id, NSInteger, id);
142id CallScriptDebugDelegate(IMP, WebView *, SEL, id, NSInteger, id, NSInteger, id);
143id CallScriptDebugDelegate(IMP, WebView *, SEL, id, NSInteger, id, id, id);
144id CallScriptDebugDelegate(IMP, WebView *, SEL, id, NSInteger, int, id);
145id CallScriptDebugDelegate(IMP, WebView *, SEL, id, BOOL, NSInteger, int, id);
146
147id CallHistoryDelegate(IMP, WebView *, SEL);
148id CallHistoryDelegate(IMP, WebView *, SEL, id, id);
149id CallHistoryDelegate(IMP, WebView *, SEL, id, id, id);
150