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