2029ecf64af07e22a87f4d26b04e506fd78d0328
[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 @class WebView;
35
36 struct WebResourceDelegateImplementationCache {
37     IMP didCancelAuthenticationChallengeFunc;
38     IMP didReceiveAuthenticationChallengeFunc;
39 #if USE(PROTECTION_SPACE_AUTH_CALLBACK)
40     IMP canAuthenticateAgainstProtectionSpaceFunc;
41 #endif
42     IMP identifierForRequestFunc;
43     IMP willSendRequestFunc;
44     IMP didReceiveResponseFunc;
45     IMP didReceiveContentLengthFunc;
46     IMP didFinishLoadingFromDataSourceFunc;
47     IMP didFailLoadingWithErrorFromDataSourceFunc;
48     IMP didLoadResourceFromMemoryCacheFunc;
49     IMP willCacheResponseFunc;
50     IMP plugInFailedWithErrorFunc;
51     IMP shouldUseCredentialStorageFunc;
52     IMP shouldPaintBrokenImageForURLFunc;
53 };
54
55 struct WebFrameLoadDelegateImplementationCache {
56 #if JSC_OBJC_API_ENABLED
57     IMP didCreateJavaScriptContextForFrameFunc;
58 #endif
59     IMP didClearWindowObjectForFrameFunc;
60     IMP didClearWindowObjectForFrameInScriptWorldFunc;
61     IMP didClearInspectorWindowObjectForFrameFunc;
62     IMP windowScriptObjectAvailableFunc;
63     IMP didHandleOnloadEventsForFrameFunc;
64     IMP didReceiveServerRedirectForProvisionalLoadForFrameFunc;
65     IMP didCancelClientRedirectForFrameFunc;
66     IMP willPerformClientRedirectToURLDelayFireDateForFrameFunc;
67     IMP didChangeLocationWithinPageForFrameFunc;
68     IMP didPushStateWithinPageForFrameFunc;
69     IMP didReplaceStateWithinPageForFrameFunc;
70     IMP didPopStateWithinPageForFrameFunc;
71     IMP willCloseFrameFunc;
72     IMP didStartProvisionalLoadForFrameFunc;
73     IMP didReceiveTitleForFrameFunc;
74     IMP didCommitLoadForFrameFunc;
75     IMP didFailProvisionalLoadWithErrorForFrameFunc;
76     IMP didFailLoadWithErrorForFrameFunc;
77     IMP didFinishLoadForFrameFunc;
78     IMP didFirstLayoutInFrameFunc;
79     IMP didFirstVisuallyNonEmptyLayoutInFrameFunc;
80     IMP didLayoutFunc;
81     IMP didReceiveIconForFrameFunc;
82     IMP didFinishDocumentLoadForFrameFunc;
83     IMP didDisplayInsecureContentFunc;
84     IMP didRunInsecureContentFunc;
85     IMP didDetectXSSFunc;
86     IMP didRemoveFrameFromHierarchyFunc;
87 };
88
89 struct WebScriptDebugDelegateImplementationCache {
90     BOOL didParseSourceExpectsBaseLineNumber;
91     BOOL exceptionWasRaisedExpectsHasHandlerFlag;
92     IMP didParseSourceFunc;
93     IMP failedToParseSourceFunc;
94     IMP exceptionWasRaisedFunc;
95 };
96
97 struct WebHistoryDelegateImplementationCache {
98     IMP navigatedFunc;
99     IMP clientRedirectFunc;
100     IMP serverRedirectFunc;
101     IMP deprecatedSetTitleFunc;
102     IMP setTitleFunc;
103     IMP populateVisitedLinksFunc;
104 };
105
106 WebResourceDelegateImplementationCache* WebViewGetResourceLoadDelegateImplementations(WebView *);
107 WebFrameLoadDelegateImplementationCache* WebViewGetFrameLoadDelegateImplementations(WebView *);
108 WebScriptDebugDelegateImplementationCache* WebViewGetScriptDebugDelegateImplementations(WebView *);
109 WebHistoryDelegateImplementationCache* WebViewGetHistoryDelegateImplementations(WebView *webView);
110
111 id CallFormDelegate(WebView *, SEL, id, id);
112 id CallFormDelegate(WebView *, SEL, id, id, id);
113 id CallFormDelegate(WebView *self, SEL selector, id object1, id object2, id object3, id object4, id object5);
114 BOOL CallFormDelegateReturningBoolean(BOOL, WebView *, SEL, id, SEL, id);
115
116 id CallUIDelegate(WebView *, SEL);
117 id CallUIDelegate(WebView *, SEL, id);
118 id CallUIDelegate(WebView *, SEL, NSRect);
119 id CallUIDelegate(WebView *, SEL, id, id);
120 id CallUIDelegate(WebView *, SEL, id, BOOL);
121 id CallUIDelegate(WebView *, SEL, id, id, id);
122 id CallUIDelegate(WebView *, SEL, id, NSUInteger);
123 float CallUIDelegateReturningFloat(WebView *, SEL);
124 BOOL CallUIDelegateReturningBoolean(BOOL, WebView *, SEL);
125 BOOL CallUIDelegateReturningBoolean(BOOL, WebView *, SEL, id);
126 BOOL CallUIDelegateReturningBoolean(BOOL, WebView *, SEL, id, id);
127 BOOL CallUIDelegateReturningBoolean(BOOL, WebView *, SEL, id, BOOL);
128 BOOL CallUIDelegateReturningBoolean(BOOL, WebView *, SEL, id, BOOL, id);
129
130 id CallFrameLoadDelegate(IMP, WebView *, SEL);
131 id CallFrameLoadDelegate(IMP, WebView *, SEL, NSUInteger);
132 id CallFrameLoadDelegate(IMP, WebView *, SEL, id);
133 id CallFrameLoadDelegate(IMP, WebView *, SEL, id, id);
134 id CallFrameLoadDelegate(IMP, WebView *, SEL, id, id, id);
135 id CallFrameLoadDelegate(IMP, WebView *, SEL, id, id, id, id);
136 id CallFrameLoadDelegate(IMP, WebView *, SEL, id, NSTimeInterval, id, id);
137
138 BOOL CallFrameLoadDelegateReturningBoolean(BOOL, IMP, WebView *, SEL);
139
140 id CallResourceLoadDelegate(IMP, WebView *, SEL, id, id);
141 id CallResourceLoadDelegate(IMP, WebView *, SEL, id, id, id);
142 id CallResourceLoadDelegate(IMP, WebView *, SEL, id, id, id, id);
143 id CallResourceLoadDelegate(IMP, WebView *, SEL, id, NSInteger, id);
144 id CallResourceLoadDelegate(IMP, WebView *, SEL, id, id, NSInteger, id);
145
146 BOOL CallResourceLoadDelegateReturningBoolean(BOOL, IMP, WebView *, SEL, id);
147 BOOL CallResourceLoadDelegateReturningBoolean(BOOL, IMP, WebView *, SEL, id, id);
148 BOOL CallResourceLoadDelegateReturningBoolean(BOOL, IMP, WebView *, SEL, id, id, id);
149
150 id CallScriptDebugDelegate(IMP, WebView *, SEL, id, id, NSInteger, id);
151 id CallScriptDebugDelegate(IMP, WebView *, SEL, id, NSInteger, id, NSInteger, id);
152 id CallScriptDebugDelegate(IMP, WebView *, SEL, id, NSInteger, id, id, id);
153 id CallScriptDebugDelegate(IMP, WebView *, SEL, id, NSInteger, int, id);
154 id CallScriptDebugDelegate(IMP, WebView *, SEL, id, BOOL, NSInteger, int, id);
155
156 id CallHistoryDelegate(IMP, WebView *, SEL);
157 id CallHistoryDelegate(IMP, WebView *, SEL, id, id);
158 id CallHistoryDelegate(IMP, WebView *, SEL, id, id, id);