Remove an unneeded argument from FrameLoaderClient::download
[WebKit-https.git] / Source / WebKit / wx / WebKitSupport / FrameLoaderClientWx.h
1 /*
2  * Copyright (C) 2007 Kevin Ollivier <kevino@theolliviers.com>
3  * Copyright (C) 2011 Apple Inc. All rights reserved.
4  *
5  * All rights reserved.
6  *
7  * Redistribution and use in source and binary forms, with or without
8  * modification, are permitted provided that the following conditions
9  * are met:
10  * 1. Redistributions of source code must retain the above copyright
11  *    notice, this list of conditions and the following disclaimer.
12  * 2. Redistributions in binary form must reproduce the above copyright
13  *    notice, this list of conditions and the following disclaimer in the
14  *    documentation and/or other materials provided with the distribution.
15  *
16  * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
17  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
19  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
20  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
21  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
22  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
23  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
24  * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
26  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27  */
28  
29 #ifndef FrameLoaderClientWx_H
30 #define FrameLoaderClientWx_H
31
32 #include "FrameLoaderClient.h"
33 #include "FrameLoader.h"
34 #include "KURL.h"
35 #include "PluginView.h"
36 #include "ResourceResponse.h"
37 #include "HTMLPlugInElement.h"
38 #include <wtf/Forward.h>
39
40 class wxWebFrame;
41 class wxWebView;
42
43 namespace WebCore {
44
45     class AuthenticationChallenge;
46     class DocumentLoader;
47     class Element;
48     class FormState;
49     class NavigationAction;
50     class ResourceLoader;
51
52     struct LoadErrorResetToken;
53
54     class FrameLoaderClientWx : public FrameLoaderClient {
55     public:
56         FrameLoaderClientWx();
57         ~FrameLoaderClientWx();
58         
59         wxWebFrame* webFrame() { return m_webFrame; }
60         void setFrame(wxWebFrame *frame);
61         wxWebView* webView() { return m_webView; }
62         void setWebView(wxWebView *webview);
63
64         virtual bool hasWebView() const; // mainly for assertions
65
66         virtual bool hasBackForwardList() const;
67         virtual void resetBackForwardList();
68
69         virtual bool provisionalItemIsTarget() const;
70
71         virtual void makeRepresentation(DocumentLoader*);
72         virtual void forceLayout();
73         virtual void forceLayoutForNonHTML();
74
75         virtual void updateHistoryForCommit();
76
77         virtual void updateHistoryForBackForwardNavigation();
78         virtual void updateHistoryForReload();
79         virtual void updateHistoryForStandardLoad();
80         virtual void updateHistoryForInternalLoad();
81
82         virtual void updateHistoryAfterClientRedirect();
83
84         virtual void setCopiesOnScroll();
85
86         virtual LoadErrorResetToken* tokenForLoadErrorReset();
87         virtual void resetAfterLoadError(LoadErrorResetToken*);
88         virtual void doNotResetAfterLoadError(LoadErrorResetToken*);
89
90         virtual void willCloseDocument();
91
92         virtual void detachedFromParent2();
93         virtual void detachedFromParent3();
94
95         virtual void frameLoaderDestroyed();
96         virtual bool canHandleRequest(const ResourceRequest&) const;
97
98         virtual void dispatchDidHandleOnloadEvents();
99         virtual void dispatchDidReceiveServerRedirectForProvisionalLoad();
100         virtual void dispatchDidCancelClientRedirect();
101         virtual void dispatchWillPerformClientRedirect(const KURL&, double interval, double fireDate);
102         virtual void dispatchDidChangeLocationWithinPage();
103         virtual void dispatchDidPushStateWithinPage();
104         virtual void dispatchDidReplaceStateWithinPage();
105         virtual void dispatchDidPopStateWithinPage();
106         virtual void dispatchWillClose();
107         virtual void dispatchDidReceiveIcon();
108         virtual void dispatchDidStartProvisionalLoad();
109         virtual void dispatchDidReceiveTitle(const StringWithDirection& title);
110         virtual void dispatchDidCommitLoad();
111         virtual void dispatchDidFinishDocumentLoad();
112         virtual void dispatchDidFinishLoad();
113         virtual void dispatchDidFirstLayout();
114         virtual void dispatchDidFirstVisuallyNonEmptyLayout();
115         virtual void dispatchDidChangeIcons(WebCore::IconType);
116
117         virtual void dispatchShow();
118         virtual void cancelPolicyCheck();
119
120         virtual void dispatchWillSendSubmitEvent(HTMLFormElement*) { }
121         virtual void dispatchWillSubmitForm(FramePolicyFunction, PassRefPtr<FormState>);
122
123         virtual void dispatchDidLoadMainResource(DocumentLoader*);
124         virtual void revertToProvisionalState(DocumentLoader*);
125
126         virtual void postProgressStartedNotification();
127         virtual void postProgressEstimateChangedNotification();
128         virtual void postProgressFinishedNotification();
129
130         virtual void progressStarted();
131         virtual void progressCompleted();
132         virtual void setMainFrameDocumentReady(bool);
133         virtual void willChangeTitle(DocumentLoader*);
134         virtual void didChangeTitle(DocumentLoader*);
135         virtual void finishedLoading(DocumentLoader*);
136
137         virtual bool canShowMIMEType(const String& MIMEType) const;
138         virtual bool canShowMIMETypeAsHTML(const String& MIMEType) const;
139         virtual bool representationExistsForURLScheme(const String& URLScheme) const;
140         virtual String generatedMIMETypeForURLScheme(const String& URLScheme) const;
141
142         virtual void frameLoadCompleted();
143         virtual void saveViewStateToItem(HistoryItem*);
144         virtual void restoreViewState();
145         virtual void restoreScrollPositionAndViewState();
146         virtual void provisionalLoadStarted();
147         virtual bool shouldTreatURLAsSameAsCurrent(const KURL&) const;
148         virtual void addHistoryItemForFragmentScroll();
149         virtual void didFinishLoad();
150         virtual void prepareForDataSourceReplacement();
151         virtual void setTitle(const StringWithDirection&, const KURL&);
152
153         virtual String userAgent(const KURL&);
154
155         virtual void savePlatformDataToCachedFrame(WebCore::CachedFrame*);
156         virtual void transitionToCommittedFromCachedFrame(WebCore::CachedFrame*);
157         virtual void transitionToCommittedForNewPage();
158
159         virtual void didSaveToPageCache();
160         virtual void didRestoreFromPageCache();
161
162         virtual void dispatchDidBecomeFrameset(bool);
163
164         virtual void updateGlobalHistory();
165         virtual void updateGlobalHistoryRedirectLinks();
166         virtual bool shouldGoToHistoryItem(HistoryItem*) const;
167         virtual bool shouldStopLoadingForHistoryItem(HistoryItem*) const;
168         virtual void saveScrollPositionAndViewStateToItem(HistoryItem*);
169         virtual bool canCachePage() const;
170         
171         virtual void didDisplayInsecureContent();
172         virtual void didRunInsecureContent(SecurityOrigin*, const KURL&);
173         virtual void didDetectXSS(const KURL&, bool didBlockEntirePage);
174
175         virtual void setMainDocumentError(DocumentLoader*, const ResourceError&);
176         virtual void committedLoad(DocumentLoader*, const char*, int);
177         virtual ResourceError cancelledError(const ResourceRequest&);
178         virtual ResourceError blockedError(const ResourceRequest&);
179         virtual ResourceError cannotShowURLError(const ResourceRequest&);
180         virtual ResourceError interruptedForPolicyChangeError(const ResourceRequest&);
181         virtual ResourceError cannotShowMIMETypeError(const ResourceResponse&);
182         virtual ResourceError fileDoesNotExistError(const ResourceResponse&);
183         virtual bool shouldFallBack(const ResourceError&);
184         virtual WTF::PassRefPtr<DocumentLoader> createDocumentLoader(const ResourceRequest&, const SubstituteData&);
185         virtual void download(ResourceHandle*, const ResourceRequest&, const ResourceResponse&);
186
187         virtual void assignIdentifierToInitialRequest(unsigned long identifier, DocumentLoader*, const ResourceRequest&);
188         
189         virtual void dispatchWillSendRequest(DocumentLoader*, unsigned long, ResourceRequest&, const ResourceResponse&);
190         virtual bool shouldUseCredentialStorage(DocumentLoader*, unsigned long identifier);
191         virtual void dispatchDidReceiveAuthenticationChallenge(DocumentLoader*, unsigned long identifier, const AuthenticationChallenge&);
192         virtual void dispatchDidCancelAuthenticationChallenge(DocumentLoader*, unsigned long identifier, const AuthenticationChallenge&);
193         virtual void dispatchDidReceiveResponse(DocumentLoader*, unsigned long, const ResourceResponse&);
194         virtual void dispatchDidReceiveContentLength(DocumentLoader*, unsigned long, int);
195         virtual void dispatchDidFinishLoading(DocumentLoader*, unsigned long);
196         virtual void dispatchDidFailLoading(DocumentLoader*, unsigned long, const ResourceError&);
197         virtual bool dispatchDidLoadResourceFromMemoryCache(DocumentLoader*, const ResourceRequest&, const ResourceResponse&, int);
198
199         virtual void dispatchDidFailProvisionalLoad(const ResourceError&);
200         virtual void dispatchDidFailLoad(const ResourceError&);
201         virtual Frame* dispatchCreatePage(const WebCore::NavigationAction&);
202         virtual void dispatchDecidePolicyForResponse(FramePolicyFunction function, const ResourceResponse&, const ResourceRequest&);
203         virtual void dispatchDecidePolicyForNewWindowAction(FramePolicyFunction function, const NavigationAction&, const ResourceRequest&, PassRefPtr<FormState>, const String&);
204         virtual void dispatchDecidePolicyForNavigationAction(FramePolicyFunction function, const NavigationAction&, const ResourceRequest&, PassRefPtr<FormState>);
205         virtual void dispatchUnableToImplementPolicy(const ResourceError&);
206
207         virtual void startDownload(const ResourceRequest&, const String& suggestedName = String());
208         
209         // FIXME: This should probably not be here, but it's needed for the tests currently
210         virtual void partClearedInBegin();
211
212         virtual PassRefPtr<Frame> createFrame(const KURL& url, const String& name, HTMLFrameOwnerElement* ownerElement,
213                                    const String& referrer, bool allowsScrolling, int marginWidth, int marginHeight);
214         virtual void didTransferChildFrameToNewDocument(Page*);
215         virtual void transferLoadingResourceFromPage(ResourceLoader*, const ResourceRequest&, Page*);
216         virtual PassRefPtr<Widget> createPlugin(const IntSize&, HTMLPlugInElement*, const KURL&, const Vector<String>&, const Vector<String>&, const String&, bool loadManually) ;
217         virtual void redirectDataToPlugin(Widget* pluginWidget);
218         virtual ResourceError pluginWillHandleLoadError(const ResourceResponse&);
219         
220         virtual PassRefPtr<Widget> createJavaAppletWidget(const IntSize&, HTMLAppletElement*, const KURL& baseURL, const Vector<String>& paramNames, const Vector<String>& paramValues);
221
222         virtual ObjectContentType objectContentType(const KURL&, const String& mimeType, bool shouldPreferPlugInsForImages);
223         virtual String overrideMediaType() const;
224
225         virtual void dispatchDidClearWindowObjectInWorld(DOMWrapperWorld*);
226         virtual void documentElementAvailable();
227         
228         virtual void didPerformFirstNavigation() const;
229         
230         virtual void registerForIconNotification(bool listen = true);
231         
232         virtual bool shouldUsePluginDocument(const String &mimeType) const;
233         
234         virtual PassRefPtr<FrameNetworkingContext> createNetworkingContext();
235
236     private:
237         wxWebFrame *m_webFrame;
238         Frame* m_frame;
239         wxWebView *m_webView;
240         PluginView* m_pluginView;
241         bool m_hasSentResponseToPlugin;
242         ResourceResponse m_response;
243         bool m_firstData;
244     };
245
246 }
247
248 #endif