Cancel composition when focused node was changed
[framework/web/webkit-efl.git] / Source / WebKit2 / WebProcess / WebCoreSupport / WebFrameLoaderClient.h
1 /*
2  * Copyright (C) 2010, 2011 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  * 1. Redistributions of source code must retain the above copyright
8  *    notice, this list of conditions and the following disclaimer.
9  * 2. Redistributions in binary form must reproduce the above copyright
10  *    notice, this list of conditions and the following disclaimer in the
11  *    documentation and/or other materials provided with the distribution.
12  *
13  * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
14  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
15  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
17  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
18  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
19  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
20  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
21  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
22  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
23  * THE POSSIBILITY OF SUCH DAMAGE.
24  */
25
26 #ifndef WebFrameLoaderClient_h
27 #define WebFrameLoaderClient_h
28
29 #include <WebCore/FrameLoaderClient.h>
30
31 namespace WebCore {
32 #if ENABLE(WEB_INTENTS)
33 class IntentRequest;
34 #endif
35 }
36
37 namespace WebKit {
38
39 class PluginView;
40 class WebFrame;
41     
42 class WebFrameLoaderClient : public WebCore::FrameLoaderClient {
43 public:
44     WebFrameLoaderClient(WebFrame*);
45     ~WebFrameLoaderClient();
46
47     WebFrame* webFrame() const { return m_frame; }
48
49     bool frameHasCustomRepresentation() const { return m_frameHasCustomRepresentation; }
50
51 private:
52     virtual void frameLoaderDestroyed() OVERRIDE;
53
54     virtual bool hasHTMLView() const OVERRIDE;
55     virtual bool hasWebView() const OVERRIDE;
56     
57     virtual void makeRepresentation(WebCore::DocumentLoader*) OVERRIDE;
58     virtual void forceLayout() OVERRIDE;
59     virtual void forceLayoutForNonHTML() OVERRIDE;
60     
61     virtual void setCopiesOnScroll() OVERRIDE;
62     
63     virtual void detachedFromParent2() OVERRIDE;
64     virtual void detachedFromParent3() OVERRIDE;
65     
66     virtual void assignIdentifierToInitialRequest(unsigned long identifier, WebCore::DocumentLoader*, const WebCore::ResourceRequest&) OVERRIDE;
67     
68     virtual void dispatchWillSendRequest(WebCore::DocumentLoader*, unsigned long identifier, WebCore::ResourceRequest&, const WebCore::ResourceResponse& redirectResponse) OVERRIDE;
69     virtual bool shouldUseCredentialStorage(WebCore::DocumentLoader*, unsigned long identifier) OVERRIDE;
70     virtual void dispatchDidReceiveAuthenticationChallenge(WebCore::DocumentLoader*, unsigned long identifier, const WebCore::AuthenticationChallenge&) OVERRIDE;
71     virtual void dispatchDidCancelAuthenticationChallenge(WebCore::DocumentLoader*, unsigned long identifier, const WebCore::AuthenticationChallenge&) OVERRIDE;
72 #if USE(PROTECTION_SPACE_AUTH_CALLBACK)
73     virtual bool canAuthenticateAgainstProtectionSpace(WebCore::DocumentLoader*, unsigned long identifier, const WebCore::ProtectionSpace&) OVERRIDE;
74 #endif
75     virtual void dispatchDidReceiveResponse(WebCore::DocumentLoader*, unsigned long identifier, const WebCore::ResourceResponse&) OVERRIDE;
76     virtual void dispatchDidReceiveContentLength(WebCore::DocumentLoader*, unsigned long identifier, int dataLength) OVERRIDE;
77     virtual void dispatchDidFinishLoading(WebCore::DocumentLoader*, unsigned long identifier) OVERRIDE;
78     virtual void dispatchDidFailLoading(WebCore::DocumentLoader*, unsigned long identifier, const WebCore::ResourceError&) OVERRIDE;
79     virtual bool dispatchDidLoadResourceFromMemoryCache(WebCore::DocumentLoader*, const WebCore::ResourceRequest&, const WebCore::ResourceResponse&, int length) OVERRIDE;
80     
81     virtual void dispatchDidHandleOnloadEvents() OVERRIDE;
82     virtual void dispatchDidReceiveServerRedirectForProvisionalLoad() OVERRIDE;
83     virtual void dispatchDidCancelClientRedirect() OVERRIDE;
84     virtual void dispatchWillPerformClientRedirect(const WebCore::KURL&, double interval, double fireDate) OVERRIDE;
85     virtual void dispatchDidChangeLocationWithinPage() OVERRIDE;
86     virtual void dispatchDidPushStateWithinPage() OVERRIDE;
87     virtual void dispatchDidReplaceStateWithinPage() OVERRIDE;
88     virtual void dispatchDidPopStateWithinPage() OVERRIDE;
89     virtual void dispatchWillClose() OVERRIDE;
90     virtual void dispatchDidReceiveIcon() OVERRIDE;
91     virtual void dispatchDidStartProvisionalLoad() OVERRIDE;
92     virtual void dispatchDidReceiveTitle(const WebCore::StringWithDirection&) OVERRIDE;
93     virtual void dispatchDidChangeIcons(WebCore::IconType) OVERRIDE;
94     virtual void dispatchDidCommitLoad() OVERRIDE;
95     virtual void dispatchDidFailProvisionalLoad(const WebCore::ResourceError&) OVERRIDE;
96     virtual void dispatchDidFailLoad(const WebCore::ResourceError&) OVERRIDE;
97     virtual void dispatchDidFinishDocumentLoad() OVERRIDE;
98     virtual void dispatchDidFinishLoad() OVERRIDE;
99
100     virtual void dispatchDidFirstLayout() OVERRIDE;
101     virtual void dispatchDidFirstVisuallyNonEmptyLayout() OVERRIDE;
102     virtual void dispatchDidNewFirstVisuallyNonEmptyLayout() OVERRIDE;
103     virtual void dispatchDidLayout() OVERRIDE;
104
105     virtual WebCore::Frame* dispatchCreatePage(const WebCore::NavigationAction&) OVERRIDE;
106     virtual void dispatchShow() OVERRIDE;
107     
108     virtual void dispatchDecidePolicyForResponse(WebCore::FramePolicyFunction, const WebCore::ResourceResponse&, const WebCore::ResourceRequest&) OVERRIDE;
109     virtual void dispatchDecidePolicyForNewWindowAction(WebCore::FramePolicyFunction, const WebCore::NavigationAction&, const WebCore::ResourceRequest&, PassRefPtr<WebCore::FormState>, const String& frameName) OVERRIDE;
110     virtual void dispatchDecidePolicyForNavigationAction(WebCore::FramePolicyFunction, const WebCore::NavigationAction&, const WebCore::ResourceRequest&, PassRefPtr<WebCore::FormState>) OVERRIDE;
111     virtual void cancelPolicyCheck() OVERRIDE;
112     
113     virtual void dispatchUnableToImplementPolicy(const WebCore::ResourceError&) OVERRIDE;
114     
115     virtual void dispatchWillSendSubmitEvent(PassRefPtr<WebCore::FormState>) OVERRIDE;
116     virtual void dispatchWillSubmitForm(WebCore::FramePolicyFunction, PassRefPtr<WebCore::FormState>) OVERRIDE;
117     
118     virtual void revertToProvisionalState(WebCore::DocumentLoader*) OVERRIDE;
119     virtual void setMainDocumentError(WebCore::DocumentLoader*, const WebCore::ResourceError&) OVERRIDE;
120     
121     // Maybe these should go into a ProgressTrackerClient some day
122     virtual void willChangeEstimatedProgress();
123     virtual void didChangeEstimatedProgress();
124     virtual void postProgressStartedNotification();
125     virtual void postProgressEstimateChangedNotification();
126     virtual void postProgressFinishedNotification();
127
128     virtual void setMainFrameDocumentReady(bool);
129     
130     virtual void startDownload(const WebCore::ResourceRequest&, const String& suggestedName = String()) OVERRIDE;
131     
132     virtual void willChangeTitle(WebCore::DocumentLoader*) OVERRIDE;
133     virtual void didChangeTitle(WebCore::DocumentLoader*) OVERRIDE;
134     
135     virtual void committedLoad(WebCore::DocumentLoader*, const char*, int) OVERRIDE;
136     virtual void finishedLoading(WebCore::DocumentLoader*) OVERRIDE;
137     
138     virtual void updateGlobalHistory() OVERRIDE;
139     virtual void updateGlobalHistoryRedirectLinks() OVERRIDE;
140     
141     virtual bool shouldGoToHistoryItem(WebCore::HistoryItem*) const OVERRIDE;
142     virtual bool shouldStopLoadingForHistoryItem(WebCore::HistoryItem*) const OVERRIDE;
143
144     virtual void didDisplayInsecureContent() OVERRIDE;
145     virtual void didRunInsecureContent(WebCore::SecurityOrigin*, const WebCore::KURL&) OVERRIDE;
146     virtual void didDetectXSS(const WebCore::KURL&, bool didBlockEntirePage) OVERRIDE;
147
148     virtual WebCore::ResourceError cancelledError(const WebCore::ResourceRequest&) OVERRIDE;
149     virtual WebCore::ResourceError blockedError(const WebCore::ResourceRequest&) OVERRIDE;
150     virtual WebCore::ResourceError cannotShowURLError(const WebCore::ResourceRequest&) OVERRIDE;
151     virtual WebCore::ResourceError interruptedForPolicyChangeError(const WebCore::ResourceRequest&) OVERRIDE;
152     
153     virtual WebCore::ResourceError cannotShowMIMETypeError(const WebCore::ResourceResponse&) OVERRIDE;
154     virtual WebCore::ResourceError fileDoesNotExistError(const WebCore::ResourceResponse&) OVERRIDE;
155     virtual WebCore::ResourceError pluginWillHandleLoadError(const WebCore::ResourceResponse&) OVERRIDE;
156     
157     virtual bool shouldFallBack(const WebCore::ResourceError&) OVERRIDE;
158     
159     virtual bool canHandleRequest(const WebCore::ResourceRequest&) const OVERRIDE;
160     virtual bool canShowMIMEType(const String& MIMEType) const OVERRIDE;
161     virtual bool canShowMIMETypeAsHTML(const String& MIMEType) const OVERRIDE;
162     virtual bool representationExistsForURLScheme(const String& URLScheme) const OVERRIDE;
163     virtual String generatedMIMETypeForURLScheme(const String& URLScheme) const OVERRIDE;
164     
165     virtual void frameLoadCompleted() OVERRIDE;
166     virtual void saveViewStateToItem(WebCore::HistoryItem*) OVERRIDE;
167     virtual void restoreViewState() OVERRIDE;
168     virtual void provisionalLoadStarted() OVERRIDE;
169     virtual void didFinishLoad() OVERRIDE;
170     virtual void prepareForDataSourceReplacement() OVERRIDE;
171     
172     virtual PassRefPtr<WebCore::DocumentLoader> createDocumentLoader(const WebCore::ResourceRequest&, const WebCore::SubstituteData&);
173     virtual void setTitle(const WebCore::StringWithDirection&, const WebCore::KURL&) OVERRIDE;
174     
175     virtual String userAgent(const WebCore::KURL&) OVERRIDE;
176 #if ENABLE(TIZEN_CUSTOM_HEADERS)
177     virtual WebCore::HTTPHeaderMap customHeaders(const WebCore::KURL&) OVERRIDE;
178 #endif
179     
180     virtual void savePlatformDataToCachedFrame(WebCore::CachedFrame*) OVERRIDE;
181     virtual void transitionToCommittedFromCachedFrame(WebCore::CachedFrame*) OVERRIDE;
182     virtual void transitionToCommittedForNewPage() OVERRIDE;
183
184     virtual void didSaveToPageCache() OVERRIDE;
185     virtual void didRestoreFromPageCache() OVERRIDE;
186
187     virtual void dispatchDidBecomeFrameset(bool) OVERRIDE;
188
189     virtual bool canCachePage() const OVERRIDE;
190     virtual void download(WebCore::ResourceHandle*, const WebCore::ResourceRequest&, const WebCore::ResourceResponse&) OVERRIDE;
191     
192     virtual PassRefPtr<WebCore::Frame> createFrame(const WebCore::KURL& url, const String& name, WebCore::HTMLFrameOwnerElement* ownerElement,
193                                           const String& referrer, bool allowsScrolling, int marginWidth, int marginHeight) OVERRIDE;
194     
195     virtual PassRefPtr<WebCore::Widget> createPlugin(const WebCore::IntSize&, WebCore::HTMLPlugInElement*, const WebCore::KURL&, const Vector<String>&, const Vector<String>&, const String&, bool loadManually) OVERRIDE;
196     virtual void redirectDataToPlugin(WebCore::Widget* pluginWidget) OVERRIDE;
197     
198     virtual PassRefPtr<WebCore::Widget> createJavaAppletWidget(const WebCore::IntSize&, WebCore::HTMLAppletElement*, const WebCore::KURL& baseURL, const Vector<String>& paramNames, const Vector<String>& paramValues) OVERRIDE;
199     
200 #if ENABLE(PLUGIN_PROXY_FOR_VIDEO)
201     virtual PassRefPtr<WebCore::Widget> createMediaPlayerProxyPlugin(const WebCore::IntSize&, WebCore::HTMLMediaElement*, const WebCore::KURL&, const Vector<String>&, const Vector<String>&, const String&) OVERRIDE;
202     virtual void hideMediaPlayerProxyPlugin(WebCore::Widget*) OVERRIDE;
203     virtual void showMediaPlayerProxyPlugin(WebCore::Widget*) OVERRIDE;
204 #endif
205
206     virtual WebCore::ObjectContentType objectContentType(const WebCore::KURL&, const String& mimeType, bool shouldPreferPlugInsForImages) OVERRIDE;
207     virtual String overrideMediaType() const OVERRIDE;
208
209     virtual void dispatchDidClearWindowObjectInWorld(WebCore::DOMWrapperWorld*) OVERRIDE;
210     
211     virtual void dispatchGlobalObjectAvailable(WebCore::DOMWrapperWorld*) OVERRIDE;
212     virtual void dispatchWillDisconnectDOMWindowExtensionFromGlobalObject(WebCore::DOMWindowExtension*) OVERRIDE;
213     virtual void dispatchDidReconnectDOMWindowExtensionToGlobalObject(WebCore::DOMWindowExtension*) OVERRIDE;
214     virtual void dispatchWillDestroyGlobalObjectForDOMWindowExtension(WebCore::DOMWindowExtension*) OVERRIDE;
215
216     virtual void documentElementAvailable() OVERRIDE;
217     virtual void didPerformFirstNavigation() const OVERRIDE; // "Navigation" here means a transition from one page to another that ends up in the back/forward list.
218     
219     virtual void registerForIconNotification(bool listen = true) OVERRIDE;
220     
221 #if PLATFORM(MAC)
222     virtual RemoteAXObjectRef accessibilityRemoteObject() OVERRIDE;
223     
224 #if ENABLE(MAC_JAVA_BRIDGE)
225     virtual jobject javaApplet(NSView*) OVERRIDE;
226 #endif
227     virtual NSCachedURLResponse* willCacheResponse(WebCore::DocumentLoader*, unsigned long identifier, NSCachedURLResponse*) const OVERRIDE;
228 #endif
229 #if PLATFORM(WIN) && USE(CFNETWORK)
230     // FIXME: Windows should use willCacheResponse - <https://bugs.webkit.org/show_bug.cgi?id=57257>.
231     virtual bool shouldCacheResponse(WebCore::DocumentLoader*, unsigned long identifier, const WebCore::ResourceResponse&, const unsigned char* data, unsigned long long length) OVERRIDE;
232 #endif
233
234 #if ENABLE(WEB_INTENTS)
235     virtual void dispatchIntent(PassRefPtr<WebCore::IntentRequest>) OVERRIDE;
236 #endif
237 #if ENABLE(WEB_INTENTS_TAG)
238     virtual void registerIntentService(const String& action, const String& type, const WebCore::KURL& href, const String& title, const String& disposition) OVERRIDE;
239 #endif
240
241     virtual bool shouldUsePluginDocument(const String& /*mimeType*/) const OVERRIDE;
242
243     virtual void didChangeScrollOffset() OVERRIDE;
244
245     virtual bool shouldForceUniversalAccessFromLocalURL(const WebCore::KURL&) OVERRIDE;
246
247     virtual PassRefPtr<WebCore::FrameNetworkingContext> createNetworkingContext() OVERRIDE;
248
249 #if ENABLE(TIZEN_CERTIFICATE_HANDLING)
250     virtual bool dispatchDecidePolicyForCertificateError(bool, const String&, const String&, int) OVERRIDE;
251 #endif
252
253     WebFrame* m_frame;
254     RefPtr<PluginView> m_pluginView;
255     bool m_hasSentResponseToPluginView;
256     bool m_frameHasCustomRepresentation;
257     bool m_frameCameFromPageCache;
258 };
259
260 } // namespace WebKit
261
262 #endif // WebFrameLoaderClient_h