Rename Source/WebKit to Source/WebKitLegacy.
[WebKit-https.git] / Source / WebKitLegacy / mac / WebView / WebDelegateImplementationCaching.h
1  /*
2  * Copyright (C) 2005-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  *
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 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 #import <JavaScriptCore/JSBase.h>
33
34 #if PLATFORM(IOS)
35 #import <WebKitLegacy/WAKAppKitStubs.h>
36 #endif
37
38 @class WebView;
39
40 struct WebResourceDelegateImplementationCache {
41     IMP didReceiveAuthenticationChallengeFunc;
42 #if USE(PROTECTION_SPACE_AUTH_CALLBACK)
43     IMP canAuthenticateAgainstProtectionSpaceFunc;
44 #endif
45
46 #if PLATFORM(IOS)
47     IMP connectionPropertiesFunc;
48     IMP webThreadDidFinishLoadingFromDataSourceFunc;
49     IMP webThreadDidFailLoadingWithErrorFromDataSourceFunc;
50     IMP webThreadIdentifierForRequestFunc;
51     IMP webThreadDidLoadResourceFromMemoryCacheFunc;
52     IMP webThreadWillSendRequestFunc;
53     IMP webThreadDidReceiveResponseFunc;
54     IMP webThreadDidReceiveContentLengthFunc;
55     IMP webThreadWillCacheResponseFunc;
56 #endif
57
58     IMP identifierForRequestFunc;
59     IMP willSendRequestFunc;
60     IMP didReceiveResponseFunc;
61     IMP didReceiveContentLengthFunc;
62     IMP didFinishLoadingFromDataSourceFunc;
63     IMP didFailLoadingWithErrorFromDataSourceFunc;
64     IMP didLoadResourceFromMemoryCacheFunc;
65     IMP willCacheResponseFunc;
66     IMP plugInFailedWithErrorFunc;
67     IMP shouldUseCredentialStorageFunc;
68     IMP shouldPaintBrokenImageForURLFunc;
69 };
70
71 struct WebFrameLoadDelegateImplementationCache {
72 #if JSC_OBJC_API_ENABLED
73     IMP didCreateJavaScriptContextForFrameFunc;
74 #endif
75     IMP didClearWindowObjectForFrameFunc;
76     IMP didClearWindowObjectForFrameInScriptWorldFunc;
77     IMP didClearInspectorWindowObjectForFrameFunc;
78     IMP windowScriptObjectAvailableFunc;
79     IMP didHandleOnloadEventsForFrameFunc;
80     IMP didReceiveServerRedirectForProvisionalLoadForFrameFunc;
81     IMP didCancelClientRedirectForFrameFunc;
82     IMP willPerformClientRedirectToURLDelayFireDateForFrameFunc;
83     IMP didChangeLocationWithinPageForFrameFunc;
84     IMP didPushStateWithinPageForFrameFunc;
85     IMP didReplaceStateWithinPageForFrameFunc;
86     IMP didPopStateWithinPageForFrameFunc;
87     IMP willCloseFrameFunc;
88     IMP didStartProvisionalLoadForFrameFunc;
89     IMP didReceiveTitleForFrameFunc;
90     IMP didCommitLoadForFrameFunc;
91     IMP didFailProvisionalLoadWithErrorForFrameFunc;
92     IMP didFailLoadWithErrorForFrameFunc;
93     IMP didFinishLoadForFrameFunc;
94     IMP didFirstLayoutInFrameFunc;
95     IMP didFirstVisuallyNonEmptyLayoutInFrameFunc;
96     IMP didLayoutFunc;
97     IMP didReceiveIconForFrameFunc;
98     IMP didFinishDocumentLoadForFrameFunc;
99     IMP didDisplayInsecureContentFunc;
100     IMP didRunInsecureContentFunc;
101     IMP didDetectXSSFunc;
102     IMP didRemoveFrameFromHierarchyFunc;
103 #if PLATFORM(IOS)
104     IMP webThreadDidLayoutFunc;
105 #endif
106 };
107
108 struct WebScriptDebugDelegateImplementationCache {
109     BOOL didParseSourceExpectsBaseLineNumber;
110     BOOL exceptionWasRaisedExpectsHasHandlerFlag;
111     IMP didParseSourceFunc;
112     IMP failedToParseSourceFunc;
113     IMP exceptionWasRaisedFunc;
114 };
115
116 struct WebHistoryDelegateImplementationCache {
117     IMP navigatedFunc;
118     IMP clientRedirectFunc;
119     IMP serverRedirectFunc;
120     IMP deprecatedSetTitleFunc;
121     IMP setTitleFunc;
122     IMP populateVisitedLinksFunc;
123 };
124
125 WebResourceDelegateImplementationCache* WebViewGetResourceLoadDelegateImplementations(WebView *);
126 WebFrameLoadDelegateImplementationCache* WebViewGetFrameLoadDelegateImplementations(WebView *);
127 WebScriptDebugDelegateImplementationCache* WebViewGetScriptDebugDelegateImplementations(WebView *);
128 WebHistoryDelegateImplementationCache* WebViewGetHistoryDelegateImplementations(WebView *webView);
129
130 id CallFormDelegate(WebView *, SEL, id, id);
131 id CallFormDelegate(WebView *, SEL, id, id, id);
132 id CallFormDelegate(WebView *self, SEL selector, id object1, id object2, id object3, id object4, id object5);
133 BOOL CallFormDelegateReturningBoolean(BOOL, WebView *, SEL, id, SEL, id);
134
135 id CallUIDelegate(WebView *, SEL);
136 id CallUIDelegate(WebView *, SEL, id);
137 id CallUIDelegate(WebView *, SEL, NSRect);
138 id CallUIDelegate(WebView *, SEL, id, id);
139 id CallUIDelegate(WebView *, SEL, id, BOOL);
140 id CallUIDelegate(WebView *, SEL, id, id, id);
141 id CallUIDelegate(WebView *, SEL, id, NSUInteger);
142 float CallUIDelegateReturningFloat(WebView *, SEL);
143 BOOL CallUIDelegateReturningBoolean(BOOL, WebView *, SEL);
144 BOOL CallUIDelegateReturningBoolean(BOOL, WebView *, SEL, id);
145 BOOL CallUIDelegateReturningBoolean(BOOL, WebView *, SEL, id, id);
146 BOOL CallUIDelegateReturningBoolean(BOOL, WebView *, SEL, id, BOOL);
147 BOOL CallUIDelegateReturningBoolean(BOOL, WebView *, SEL, id, BOOL, id);
148 #if PLATFORM(IOS)
149 BOOL CallUIDelegateReturningBoolean(BOOL, WebView *, SEL, id, id, BOOL);
150 #endif
151
152 id CallFrameLoadDelegate(IMP, WebView *, SEL);
153 id CallFrameLoadDelegate(IMP, WebView *, SEL, NSUInteger);
154 id CallFrameLoadDelegate(IMP, WebView *, SEL, id);
155 id CallFrameLoadDelegate(IMP, WebView *, SEL, id, id);
156 id CallFrameLoadDelegate(IMP, WebView *, SEL, id, id, id);
157 id CallFrameLoadDelegate(IMP, WebView *, SEL, id, id, id, id);
158 id CallFrameLoadDelegate(IMP, WebView *, SEL, id, NSTimeInterval, id, id);
159 #if PLATFORM(IOS)
160 id CallFrameLoadDelegate(IMP, WebView *, SEL, id, double);
161 id CallFrameLoadDelegateInWebThread(IMP, WebView *, SEL, NSUInteger);
162 #endif
163
164 BOOL CallFrameLoadDelegateReturningBoolean(BOOL, IMP, WebView *, SEL);
165
166 id CallResourceLoadDelegate(IMP, WebView *, SEL, id, id);
167 id CallResourceLoadDelegate(IMP, WebView *, SEL, id, id, id);
168 id CallResourceLoadDelegate(IMP, WebView *, SEL, id, id, id, id);
169 id CallResourceLoadDelegate(IMP, WebView *, SEL, id, NSInteger, id);
170 id CallResourceLoadDelegate(IMP, WebView *, SEL, id, id, NSInteger, id);
171 #if PLATFORM(IOS)
172 id CallResourceLoadDelegateInWebThread(IMP, WebView *, SEL, id, id);
173 id CallResourceLoadDelegateInWebThread(IMP, WebView *, SEL, id, id, id);
174 id CallResourceLoadDelegateInWebThread(IMP, WebView *, SEL, id, id, id, id);
175 id CallResourceLoadDelegateInWebThread(IMP, WebView *, SEL, id, NSInteger, id);
176 id CallResourceLoadDelegateInWebThread(IMP, WebView *, SEL, id, id, NSInteger, id);
177 #endif
178
179 BOOL CallResourceLoadDelegateReturningBoolean(BOOL, IMP, WebView *, SEL, id);
180 BOOL CallResourceLoadDelegateReturningBoolean(BOOL, IMP, WebView *, SEL, id, id);
181 BOOL CallResourceLoadDelegateReturningBoolean(BOOL, IMP, WebView *, SEL, id, id, id);
182
183 id CallScriptDebugDelegate(IMP, WebView *, SEL, id, id, NSInteger, id);
184 id CallScriptDebugDelegate(IMP, WebView *, SEL, id, NSInteger, id, NSInteger, id);
185 id CallScriptDebugDelegate(IMP, WebView *, SEL, id, NSInteger, id, id, id);
186 id CallScriptDebugDelegate(IMP, WebView *, SEL, id, NSInteger, int, id);
187 id CallScriptDebugDelegate(IMP, WebView *, SEL, id, BOOL, NSInteger, int, id);
188
189 id CallHistoryDelegate(IMP, WebView *, SEL);
190 id CallHistoryDelegate(IMP, WebView *, SEL, id, id);
191 id CallHistoryDelegate(IMP, WebView *, SEL, id, id, id);