WebCore:
[WebKit-https.git] / WebKit / COM / WebFrameLoaderClient.h
1 /*
2  * Copyright (C) 2006 Don Gibson <dgibson77@gmail.com>
3  *
4  * All rights reserved.
5  *
6  * Redistribution and use in source and binary forms, with or without
7  * modification, are permitted provided that the following conditions
8  * are met:
9  * 1. Redistributions of source code must retain the above copyright
10  *    notice, this list of conditions and the following disclaimer.
11  * 2. Redistributions in binary form must reproduce the above copyright
12  *    notice, this list of conditions and the following disclaimer in the
13  *    documentation and/or other materials provided with the distribution.
14  *
15  * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
16  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
18  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
19  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
20  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
21  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
22  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
23  * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
25  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26  */
27
28 #ifndef WebFrameLoaderClient_H
29 #define WebFrameLoaderClient_H
30
31 #include "FrameLoaderClient.h"
32
33 class WebFrame;
34
35 class WebFrameLoaderClient : public WebCore::FrameLoaderClient {
36 public:
37     WebFrameLoaderClient(WebFrame* webFrame);
38     virtual ~WebFrameLoaderClient();
39
40     virtual void frameLoaderDestroyed();
41
42     virtual bool hasWebView() const;
43     virtual bool hasFrameView() const;
44
45     virtual bool privateBrowsingEnabled() const;
46
47     virtual void makeDocumentView();
48     virtual void makeRepresentation(WebCore::DocumentLoader*);
49     virtual void setDocumentViewFromPageCache(WebCore::PageCache*);
50     virtual void forceLayout();
51     virtual void forceLayoutForNonHTML();
52
53     virtual void setCopiesOnScroll();
54
55     virtual void detachedFromParent1();
56     virtual void detachedFromParent2();
57     virtual void detachedFromParent3();
58     virtual void detachedFromParent4();
59
60     virtual void loadedFromPageCache();
61
62     virtual void assignIdentifierToInitialRequest(unsigned long identifier, WebCore::DocumentLoader*, const WebCore::ResourceRequest&);
63
64     virtual void dispatchWillSendRequest(WebCore::DocumentLoader*, unsigned long identifier, WebCore::ResourceRequest&, const WebCore::ResourceResponse& redirectResponse);
65     virtual void dispatchDidReceiveAuthenticationChallenge(WebCore::DocumentLoader*, unsigned long identifier, const WebCore::AuthenticationChallenge&);
66     virtual void dispatchDidCancelAuthenticationChallenge(WebCore::DocumentLoader*, unsigned long identifier, const WebCore::AuthenticationChallenge&);        
67     virtual void dispatchDidReceiveResponse(WebCore::DocumentLoader*, unsigned long identifier, const WebCore::ResourceResponse&);
68     virtual void dispatchDidReceiveContentLength(WebCore::DocumentLoader*, unsigned long identifier, int lengthReceived);
69     virtual void dispatchDidFinishLoading(WebCore::DocumentLoader*, unsigned long identifier);
70     virtual void dispatchDidFailLoading(WebCore::DocumentLoader*, unsigned long identifier, const WebCore::ResourceError&);
71     virtual bool dispatchDidLoadResourceFromMemoryCache(WebCore::DocumentLoader*, const WebCore::ResourceRequest&, const WebCore::ResourceResponse&, int length);
72
73     virtual void dispatchDidHandleOnloadEvents();
74     virtual void dispatchDidReceiveServerRedirectForProvisionalLoad();
75     virtual void dispatchDidCancelClientRedirect();
76     virtual void dispatchWillPerformClientRedirect(const WebCore::KURL&, double interval, double fireDate);
77     virtual void dispatchDidChangeLocationWithinPage();
78     virtual void dispatchWillClose();
79     virtual void dispatchDidReceiveIcon();
80     virtual void dispatchDidStartProvisionalLoad();
81     virtual void dispatchDidReceiveTitle(const WebCore::String& title);
82     virtual void dispatchDidCommitLoad();
83     virtual void dispatchDidFailProvisionalLoad(const WebCore::ResourceError&);
84     virtual void dispatchDidFailLoad(const WebCore::ResourceError&);
85     virtual void dispatchDidFinishLoad();
86     virtual void dispatchDidFirstLayout();
87
88     virtual WebCore::Frame* dispatchCreatePage();
89     virtual void dispatchShow();
90
91     virtual void dispatchDecidePolicyForMIMEType(WebCore::FramePolicyFunction, const WebCore::String& MIMEType, const WebCore::ResourceRequest&);
92     virtual void dispatchDecidePolicyForNewWindowAction(WebCore::FramePolicyFunction, const WebCore::NavigationAction&, const WebCore::ResourceRequest&, const WebCore::String& frameName);
93     virtual void dispatchDecidePolicyForNavigationAction(WebCore::FramePolicyFunction, const WebCore::NavigationAction&, const WebCore::ResourceRequest&);
94     virtual void cancelPolicyCheck();
95
96     virtual void dispatchUnableToImplementPolicy(const WebCore::ResourceError&);
97
98     virtual void dispatchWillSubmitForm(WebCore::FramePolicyFunction, PassRefPtr<WebCore::FormState>);
99
100     virtual void dispatchDidLoadMainResource(WebCore::DocumentLoader*);
101     virtual void revertToProvisionalState(WebCore::DocumentLoader*);
102     virtual void setMainDocumentError(WebCore::DocumentLoader*, const WebCore::ResourceError&);
103     virtual void clearUnarchivingState(WebCore::DocumentLoader*);
104
105     virtual void progressStarted();
106     virtual void progressCompleted();
107
108     virtual void incrementProgress(unsigned long identifier, const WebCore::ResourceResponse&);
109     virtual void incrementProgress(unsigned long identifier, const char*, int);
110     virtual void completeProgress(unsigned long identifier);
111
112     virtual void setMainFrameDocumentReady(bool);
113
114     virtual void startDownload(const WebCore::ResourceRequest&);
115
116     virtual void willChangeTitle(WebCore::DocumentLoader*);
117     virtual void didChangeTitle(WebCore::DocumentLoader*);
118
119     virtual void committedLoad(WebCore::DocumentLoader*, const char*, int);
120     virtual void finishedLoading(WebCore::DocumentLoader*);
121     virtual void finalSetupForReplace(WebCore::DocumentLoader*);
122
123     virtual void updateGlobalHistoryForStandardLoad(const WebCore::KURL&);
124     virtual void updateGlobalHistoryForReload(const WebCore::KURL&);
125     virtual bool shouldGoToHistoryItem(WebCore::HistoryItem*) const;
126
127     virtual WebCore::ResourceError cancelledError(const WebCore::ResourceRequest&);
128     virtual WebCore::ResourceError cannotShowURLError(const WebCore::ResourceRequest&);
129     virtual WebCore::ResourceError interruptForPolicyChangeError(const WebCore::ResourceRequest&);
130
131     virtual WebCore::ResourceError cannotShowMIMETypeError(const WebCore::ResourceResponse&);
132     virtual WebCore::ResourceError fileDoesNotExistError(const WebCore::ResourceResponse&);
133
134     virtual bool shouldFallBack(const WebCore::ResourceError&);
135
136     virtual void setDefersLoading(bool);
137
138     virtual bool willUseArchive(WebCore::ResourceLoader*, const WebCore::ResourceRequest&, const WebCore::KURL& originalURL) const;
139     virtual bool isArchiveLoadPending(WebCore::ResourceLoader*) const;
140     virtual void cancelPendingArchiveLoad(WebCore::ResourceLoader*);
141     virtual void clearArchivedResources();
142
143     virtual bool canHandleRequest(const WebCore::ResourceRequest&) const;
144     virtual bool canShowMIMEType(const WebCore::String& MIMEType) const;
145     virtual bool representationExistsForURLScheme(const WebCore::String& URLScheme) const;
146     virtual WebCore::String generatedMIMETypeForURLScheme(const WebCore::String& URLScheme) const;
147
148     virtual void frameLoadCompleted();
149     virtual void saveScrollPositionAndViewStateToItem(WebCore::HistoryItem*);
150     virtual void restoreScrollPositionAndViewState();
151     virtual void provisionalLoadStarted();
152     virtual void didFinishLoad();
153     virtual void prepareForDataSourceReplacement();
154
155     virtual PassRefPtr<WebCore::DocumentLoader> createDocumentLoader(const WebCore::ResourceRequest&);
156     virtual void setTitle(const WebCore::String& title, const WebCore::KURL&);
157
158     virtual WebCore::String userAgent();
159
160     virtual void saveDocumentViewToPageCache(WebCore::PageCache*);
161     virtual bool canCachePage() const;
162     virtual void download(WebCore::ResourceHandle*, const WebCore::ResourceRequest&, const WebCore::ResourceResponse&);
163
164 protected:
165     // The WebFrame that owns this object and manages its lifetime. Therefore,
166     // the web frame object is guaranteed to exist.
167     WebFrame* m_webFrame;
168 };
169
170 #endif // FrameLoaderClientWin_H