bc22d8c446dcf44469810be8fa69509bf2b4dd46
[WebKit-https.git] / WebKit / efl / WebCoreSupport / FrameLoaderClientEfl.h
1 /*
2  * Copyright (C) 2006 Zack Rusin <zack@kde.org>
3  * Copyright (C) 2006 Apple Computer, Inc.  All rights reserved.
4  * Copyright (C) 2008 Collabora Ltd. All rights reserved.
5  * Copyright (C) 2008 INdT - Instituto Nokia de Tecnologia
6  * Copyright (C) 2009-2010 ProFUSION embedded systems
7  * Copyright (C) 2009-2010 Samsung Electronics
8  *
9  * All rights reserved.
10  *
11  * Redistribution and use in source and binary forms, with or without
12  * modification, are permitted provided that the following conditions
13  * are met:
14  * 1. Redistributions of source code must retain the above copyright
15  *    notice, this list of conditions and the following disclaimer.
16  * 2. Redistributions in binary form must reproduce the above copyright
17  *    notice, this list of conditions and the following disclaimer in the
18  *    documentation and/or other materials provided with the distribution.
19  *
20  * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
21  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
23  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
24  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
25  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
26  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
27  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
28  * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31  */
32
33 #ifndef FrameLoaderClientEfl_h
34 #define FrameLoaderClientEfl_h
35
36 #include "EWebKit.h"
37 #include "FrameLoaderClient.h"
38 #include "PluginView.h"
39 #include "ResourceResponse.h"
40
41 namespace WebCore {
42
43 class FormState;
44
45 class FrameLoaderClientEfl : public FrameLoaderClient {
46  public:
47     explicit FrameLoaderClientEfl(Evas_Object *view);
48     virtual ~FrameLoaderClientEfl() { }
49     virtual void frameLoaderDestroyed();
50
51     void         setWebFrame(Evas_Object *frame) { m_frame = frame; }
52     Evas_Object* webFrame() const { return m_frame; }
53     Evas_Object* webView() const { return m_view; }
54
55     void setCustomUserAgent(const String &agent);
56     const String& customUserAgent() const;
57
58     virtual bool hasWebView() const;
59     virtual bool hasFrameView() const;
60
61     void callPolicyFunction(FramePolicyFunction function, PolicyAction action);
62
63     virtual void makeRepresentation(DocumentLoader*);
64     virtual void forceLayout();
65     virtual void forceLayoutForNonHTML();
66
67     virtual void setCopiesOnScroll();
68
69     virtual void detachedFromParent2();
70     virtual void detachedFromParent3();
71
72     virtual void loadedFromCachedPage();
73
74     virtual void assignIdentifierToInitialRequest(unsigned long identifier, DocumentLoader*, const ResourceRequest&);
75
76     virtual void dispatchWillSendRequest(DocumentLoader*, unsigned long  identifier, ResourceRequest&, const ResourceResponse& redirectResponse);
77     virtual bool shouldUseCredentialStorage(DocumentLoader*, unsigned long identifier);
78     virtual void dispatchDidReceiveAuthenticationChallenge(DocumentLoader*, unsigned long identifier, const AuthenticationChallenge&);
79
80     virtual void dispatchDidPushStateWithinPage();
81     virtual void dispatchDidPopStateWithinPage();
82     virtual void dispatchDidReplaceStateWithinPage();
83     virtual void dispatchDidAddBackForwardItem(WebCore::HistoryItem*) const;
84     virtual void dispatchDidRemoveBackForwardItem(WebCore::HistoryItem*) const;
85     virtual void dispatchDidChangeBackForwardIndex() const;
86     virtual void dispatchDidClearWindowObjectInWorld(WebCore::DOMWrapperWorld*);
87
88     virtual void dispatchDidCancelAuthenticationChallenge(DocumentLoader*, unsigned long  identifier, const AuthenticationChallenge&);
89     virtual void dispatchDidReceiveResponse(DocumentLoader*, unsigned long  identifier, const ResourceResponse&);
90     virtual void dispatchDidReceiveContentLength(DocumentLoader*, unsigned long identifier, int lengthReceived);
91     virtual void dispatchDidFinishLoading(DocumentLoader*, unsigned long  identifier);
92     virtual void dispatchDidFailLoading(DocumentLoader*, unsigned long  identifier, const ResourceError&);
93     virtual bool dispatchDidLoadResourceFromMemoryCache(DocumentLoader*, const ResourceRequest&, const ResourceResponse&, int length);
94     virtual void dispatchDidLoadResourceByXMLHttpRequest(unsigned long identifier, const WebCore::ScriptString& sourceString);
95
96     virtual void dispatchDidHandleOnloadEvents();
97     virtual void dispatchDidReceiveServerRedirectForProvisionalLoad();
98     virtual void dispatchDidCancelClientRedirect();
99     virtual void dispatchWillPerformClientRedirect(const KURL&, double, double);
100     virtual void dispatchDidChangeLocationWithinPage();
101     virtual void dispatchWillClose();
102     virtual void dispatchDidReceiveIcon();
103     virtual void dispatchDidStartProvisionalLoad();
104     virtual void dispatchDidReceiveTitle(const String&);
105     virtual void dispatchDidCommitLoad();
106     virtual void dispatchDidFailProvisionalLoad(const ResourceError&);
107     virtual void dispatchDidFailLoad(const ResourceError&);
108     virtual void dispatchDidFinishDocumentLoad();
109     virtual void dispatchDidFinishLoad();
110     virtual void dispatchDidFirstLayout();
111     virtual void dispatchDidFirstVisuallyNonEmptyLayout();
112
113     virtual Frame* dispatchCreatePage();
114     virtual void dispatchShow();
115
116     virtual void dispatchDecidePolicyForMIMEType(FramePolicyFunction, const String& MIMEType, const ResourceRequest&);
117     virtual void dispatchDecidePolicyForNewWindowAction(FramePolicyFunction, const NavigationAction&, const ResourceRequest&, WTF::PassRefPtr<FormState>, const String& frameName);
118     virtual void dispatchDecidePolicyForNavigationAction(FramePolicyFunction, const NavigationAction&, const ResourceRequest&, WTF::PassRefPtr<FormState>);
119     virtual void cancelPolicyCheck();
120
121     virtual void dispatchUnableToImplementPolicy(const ResourceError&);
122
123     virtual void dispatchWillSubmitForm(FramePolicyFunction, WTF::PassRefPtr<FormState>);
124
125     virtual void dispatchDidLoadMainResource(DocumentLoader*);
126     virtual void revertToProvisionalState(DocumentLoader*);
127     virtual void setMainDocumentError(DocumentLoader*, const ResourceError&);
128
129     virtual void postProgressStartedNotification();
130     virtual void postProgressEstimateChangedNotification();
131     virtual void postProgressFinishedNotification();
132
133     virtual PassRefPtr<Frame> createFrame(const KURL& url, const String& name, HTMLFrameOwnerElement* ownerElement,
134                                const String& referrer, bool allowsScrolling, int marginWidth, int marginHeight);
135     virtual PassRefPtr<Widget> createPlugin(const IntSize&, HTMLPlugInElement*, const KURL&, const WTF::Vector<String>&, const WTF::Vector<String>&, const String&, bool);
136     virtual void redirectDataToPlugin(Widget* pluginWidget);
137     virtual PassRefPtr<Widget> createJavaAppletWidget(const IntSize&, HTMLAppletElement*, const KURL& baseURL, const WTF::Vector<String>& paramNames, const WTF::Vector<String>& paramValues);
138     virtual String overrideMediaType() const;
139     virtual void windowObjectCleared();
140     virtual void documentElementAvailable();
141
142     virtual void didPerformFirstNavigation() const;
143
144     virtual void registerForIconNotification(bool);
145
146     virtual ObjectContentType objectContentType(const KURL& url, const String& mimeType);
147
148     virtual void setMainFrameDocumentReady(bool);
149
150     virtual void startDownload(const ResourceRequest&);
151
152     virtual void willChangeTitle(DocumentLoader*);
153     virtual void didChangeTitle(DocumentLoader*);
154
155     virtual void committedLoad(DocumentLoader*, const char*, int);
156     virtual void finishedLoading(DocumentLoader*);
157
158     virtual void updateGlobalHistory();
159     virtual void updateGlobalHistoryRedirectLinks();
160     virtual bool shouldGoToHistoryItem(HistoryItem*) const;
161     virtual void didDisplayInsecureContent();
162     virtual void didRunInsecureContent(SecurityOrigin*);
163
164     virtual ResourceError cancelledError(const ResourceRequest&);
165     virtual ResourceError blockedError(const ResourceRequest&);
166     virtual ResourceError cannotShowURLError(const ResourceRequest&);
167     virtual ResourceError interruptForPolicyChangeError(const ResourceRequest&);
168
169     virtual ResourceError cannotShowMIMETypeError(const ResourceResponse&);
170     virtual ResourceError fileDoesNotExistError(const ResourceResponse&);
171     virtual ResourceError pluginWillHandleLoadError(const ResourceResponse&);
172
173     virtual bool shouldFallBack(const ResourceError&);
174
175     virtual bool canHandleRequest(const ResourceRequest&) const;
176     virtual bool canShowMIMEType(const String&) const;
177     virtual bool representationExistsForURLScheme(const String&) const;
178     virtual String generatedMIMETypeForURLScheme(const String&) const;
179
180     virtual void frameLoadCompleted();
181     virtual void saveViewStateToItem(HistoryItem*);
182     virtual void restoreViewState();
183     virtual void provisionalLoadStarted();
184     virtual void didFinishLoad();
185     virtual void prepareForDataSourceReplacement();
186
187     virtual WTF::PassRefPtr<DocumentLoader> createDocumentLoader(const ResourceRequest&, const SubstituteData&);
188     virtual void setTitle(const String& title, const KURL&);
189
190     virtual String userAgent(const KURL&);
191
192     virtual void savePlatformDataToCachedFrame(CachedFrame*);
193     virtual void transitionToCommittedFromCachedFrame(CachedFrame*);
194     virtual void transitionToCommittedForNewPage();
195
196     virtual bool canCachePage() const;
197     virtual void download(ResourceHandle*, const ResourceRequest&, const ResourceRequest&, const ResourceResponse&);
198  private:
199     Evas_Object *m_view;
200     Evas_Object *m_frame;
201
202     ResourceResponse m_response;
203     bool m_firstData;
204     String m_userAgent;
205     String m_customUserAgent;
206
207     ResourceError m_loadError;
208
209     // Plugin view to redirect data to
210     PluginView* m_pluginView;
211     bool m_hasSentResponseToPlugin;
212 };
213
214 }
215
216 #endif // FrameLoaderClientEfl_h