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