2
* Copyright (C) 2010 Patrick Gansterer <paroga@paroga.com>
3
* Copyright (C) 2011 Apple Inc. All rights reserved.
5
* Redistribution and use in source and binary forms, with or without
6
* modification, are permitted provided that the following conditions
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.
14
* THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
15
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
16
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
17
* DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
18
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
19
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
20
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
21
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
23
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26
#ifndef FrameLoaderClientWinCE_h
27
#define FrameLoaderClientWinCE_h
29
#include "FrameLoaderClient.h"
30
#include "PluginView.h"
31
#include "ResourceResponse.h"
37
class FrameLoaderClientWinCE : public WebCore::FrameLoaderClient {
39
FrameLoaderClientWinCE(WebView*);
40
virtual ~FrameLoaderClientWinCE();
41
virtual void frameLoaderDestroyed();
43
WebView* webView() const { return m_webView; }
45
virtual bool hasWebView() const;
47
virtual void makeRepresentation(WebCore::DocumentLoader*);
48
virtual void forceLayout();
49
virtual void forceLayoutForNonHTML();
51
virtual void setCopiesOnScroll();
53
virtual void detachedFromParent2();
54
virtual void detachedFromParent3();
56
virtual void assignIdentifierToInitialRequest(unsigned long identifier, WebCore::DocumentLoader*, const WebCore::ResourceRequest&);
58
virtual void dispatchWillSendRequest(WebCore::DocumentLoader*, unsigned long identifier, WebCore::ResourceRequest&, const WebCore::ResourceResponse& redirectResponse);
59
virtual bool shouldUseCredentialStorage(WebCore::DocumentLoader*, unsigned long identifier);
60
virtual void dispatchDidReceiveAuthenticationChallenge(WebCore::DocumentLoader*, unsigned long identifier, const WebCore::AuthenticationChallenge&);
61
virtual void dispatchDidCancelAuthenticationChallenge(WebCore::DocumentLoader*, unsigned long identifier, const WebCore::AuthenticationChallenge&);
62
virtual void dispatchDidReceiveResponse(WebCore::DocumentLoader*, unsigned long identifier, const WebCore::ResourceResponse&);
63
virtual void dispatchDidReceiveContentLength(WebCore::DocumentLoader*, unsigned long identifier, int dataLength);
64
virtual void dispatchDidFinishLoading(WebCore::DocumentLoader*, unsigned long identifier);
65
virtual void dispatchDidFailLoading(WebCore::DocumentLoader*, unsigned long identifier, const WebCore::ResourceError&);
66
virtual bool dispatchDidLoadResourceFromMemoryCache(WebCore::DocumentLoader*, const WebCore::ResourceRequest&, const WebCore::ResourceResponse&, int length);
68
virtual void dispatchDidHandleOnloadEvents();
69
virtual void dispatchDidReceiveServerRedirectForProvisionalLoad();
70
virtual void dispatchDidCancelClientRedirect();
71
virtual void dispatchWillPerformClientRedirect(const WebCore::KURL&, double, double);
72
virtual void dispatchDidChangeLocationWithinPage();
73
virtual void dispatchDidPushStateWithinPage();
74
virtual void dispatchDidReplaceStateWithinPage();
75
virtual void dispatchDidPopStateWithinPage();
76
virtual void dispatchWillClose();
77
virtual void dispatchDidReceiveIcon();
78
virtual void dispatchDidStartProvisionalLoad();
79
virtual void dispatchDidReceiveTitle(const WebCore::StringWithDirection&);
80
virtual void dispatchDidChangeIcons(WebCore::IconType);
81
virtual void dispatchDidCommitLoad();
82
virtual void dispatchDidFailProvisionalLoad(const WebCore::ResourceError&);
83
virtual void dispatchDidFailLoad(const WebCore::ResourceError&);
84
virtual void dispatchDidFinishDocumentLoad();
85
virtual void dispatchDidFinishLoad();
86
virtual void dispatchDidLayout(WebCore::LayoutMilestones);
88
virtual WebCore::Frame* dispatchCreatePage(const WebCore::NavigationAction&);
89
virtual void dispatchShow();
91
virtual void dispatchDecidePolicyForResponse(WebCore::FramePolicyFunction, const WebCore::ResourceResponse&, const WebCore::ResourceRequest&);
92
virtual void dispatchDecidePolicyForNewWindowAction(WebCore::FramePolicyFunction, const WebCore::NavigationAction&, const WebCore::ResourceRequest&, WTF::PassRefPtr<WebCore::FormState>, const WTF::String& frameName);
93
virtual void dispatchDecidePolicyForNavigationAction(WebCore::FramePolicyFunction, const WebCore::NavigationAction&, const WebCore::ResourceRequest&, WTF::PassRefPtr<WebCore::FormState>);
94
virtual void cancelPolicyCheck();
96
virtual void dispatchUnableToImplementPolicy(const WebCore::ResourceError&);
98
virtual void dispatchWillSendSubmitEvent(WTF::PassRefPtr<WebCore::FormState>) { }
99
virtual void dispatchWillSubmitForm(WebCore::FramePolicyFunction, WTF::PassRefPtr<WebCore::FormState>);
101
virtual void revertToProvisionalState(WebCore::DocumentLoader*);
102
virtual void setMainDocumentError(WebCore::DocumentLoader*, const WebCore::ResourceError&);
104
virtual void postProgressStartedNotification();
105
virtual void postProgressEstimateChangedNotification();
106
virtual void postProgressFinishedNotification();
108
virtual PassRefPtr<WebCore::Frame> createFrame(const WebCore::KURL& url, const WTF::String& name, WebCore::HTMLFrameOwnerElement* ownerElement,
109
const WTF::String& referrer, bool allowsScrolling, int marginWidth, int marginHeight);
110
virtual PassRefPtr<WebCore::Widget> createPlugin(const WebCore::IntSize&, WebCore::HTMLPlugInElement*, const WebCore::KURL&, const WTF::Vector<WTF::String>&, const WTF::Vector<WTF::String>&, const WTF::String&, bool);
111
virtual void recreatePlugin(WebCore::Widget*) { }
112
virtual void redirectDataToPlugin(WebCore::Widget* pluginWidget);
113
virtual PassRefPtr<WebCore::Widget> createJavaAppletWidget(const WebCore::IntSize&, WebCore::HTMLAppletElement*, const WebCore::KURL& baseURL, const WTF::Vector<WTF::String>& paramNames, const WTF::Vector<WTF::String>& paramValues);
114
virtual WTF::String overrideMediaType() const;
115
virtual void dispatchDidClearWindowObjectInWorld(WebCore::DOMWrapperWorld*);
116
virtual void documentElementAvailable();
117
virtual void didPerformFirstNavigation() const;
119
virtual void registerForIconNotification(bool);
121
virtual WebCore::ObjectContentType objectContentType(const WebCore::KURL&, const WTF::String& mimeType, bool shouldPreferPlugInsForImages);
123
virtual void setMainFrameDocumentReady(bool);
125
virtual void startDownload(const WebCore::ResourceRequest&, const String& suggestedName = String());
127
virtual void willChangeTitle(WebCore::DocumentLoader*);
128
virtual void didChangeTitle(WebCore::DocumentLoader*);
130
virtual void committedLoad(WebCore::DocumentLoader*, const char*, int);
131
virtual void finishedLoading(WebCore::DocumentLoader*);
133
virtual void updateGlobalHistory();
134
virtual void updateGlobalHistoryRedirectLinks();
135
virtual bool shouldGoToHistoryItem(WebCore::HistoryItem*) const;
136
virtual bool shouldStopLoadingForHistoryItem(WebCore::HistoryItem*) const;
138
virtual void didDisplayInsecureContent();
139
virtual void didRunInsecureContent(WebCore::SecurityOrigin*, const WebCore::KURL&);
140
virtual void didDetectXSS(const WebCore::KURL&, bool didBlockEntirePage);
142
virtual WebCore::ResourceError cancelledError(const WebCore::ResourceRequest&);
143
virtual WebCore::ResourceError blockedError(const WebCore::ResourceRequest&);
144
virtual WebCore::ResourceError cannotShowURLError(const WebCore::ResourceRequest&);
145
virtual WebCore::ResourceError interruptedForPolicyChangeError(const WebCore::ResourceRequest&);
147
virtual WebCore::ResourceError cannotShowMIMETypeError(const WebCore::ResourceResponse&);
148
virtual WebCore::ResourceError fileDoesNotExistError(const WebCore::ResourceResponse&);
149
virtual WebCore::ResourceError pluginWillHandleLoadError(const WebCore::ResourceResponse&);
151
virtual bool shouldFallBack(const WebCore::ResourceError&);
153
virtual bool canHandleRequest(const WebCore::ResourceRequest&) const;
154
virtual bool canShowMIMEType(const WTF::String&) const;
155
virtual bool canShowMIMETypeAsHTML(const WTF::String&) const;
156
virtual bool representationExistsForURLScheme(const WTF::String&) const;
157
virtual WTF::String generatedMIMETypeForURLScheme(const WTF::String&) const;
159
virtual void frameLoadCompleted();
160
virtual void saveViewStateToItem(WebCore::HistoryItem*);
161
virtual void restoreViewState();
162
virtual void provisionalLoadStarted();
163
virtual void didFinishLoad();
164
virtual void prepareForDataSourceReplacement();
166
virtual WTF::PassRefPtr<WebCore::DocumentLoader> createDocumentLoader(const WebCore::ResourceRequest&, const WebCore::SubstituteData&);
167
virtual void setTitle(const WebCore::StringWithDirection&, const WebCore::KURL&);
169
virtual WTF::String userAgent(const WebCore::KURL&);
171
virtual void savePlatformDataToCachedFrame(WebCore::CachedFrame*);
172
virtual void transitionToCommittedFromCachedFrame(WebCore::CachedFrame*);
173
virtual void transitionToCommittedForNewPage();
175
virtual void didSaveToPageCache();
176
virtual void didRestoreFromPageCache();
178
virtual void dispatchDidBecomeFrameset(bool);
180
virtual bool canCachePage() const;
181
virtual void download(WebCore::ResourceHandle*, const WebCore::ResourceRequest&, const WebCore::ResourceResponse&);
183
virtual PassRefPtr<WebCore::FrameNetworkingContext> createNetworkingContext();
185
void setFrame(WebCore::Frame *frame) { m_frame = frame; }
186
WebCore::Frame *frame() { return m_frame; }
190
WebCore::Frame* m_frame;
191
WebCore::ResourceResponse m_response;
193
// Plugin view to redirect data to
194
WebCore::PluginView* m_pluginView;
195
bool m_hasSentResponseToPlugin;
198
} // namespace WebKit
200
#endif // FrameLoaderClientWinCE_h