FrameLoaderClientWinCE.h revision 2fc2651226baac27029e38c9d6ef883fa32084db
1/* 2 * Copyright (C) 2010 Patrick Gansterer <paroga@paroga.com> 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 AND ITS CONTRIBUTORS "AS IS" AND ANY 14 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 15 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 16 * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY 17 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 18 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 19 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 20 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 21 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 22 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 23 */ 24 25#ifndef FrameLoaderClientWinCE_h 26#define FrameLoaderClientWinCE_h 27 28#include "FrameLoaderClient.h" 29#include "PluginView.h" 30#include "ResourceResponse.h" 31 32class WebView; 33 34namespace WebKit { 35 36class FrameLoaderClientWinCE : public WebCore::FrameLoaderClient { 37public: 38 FrameLoaderClientWinCE(WebView*); 39 virtual ~FrameLoaderClientWinCE(); 40 virtual void frameLoaderDestroyed(); 41 42 WebView* webView() const { return m_webView; } 43 44 virtual bool hasWebView() const; 45 46 virtual void makeRepresentation(WebCore::DocumentLoader*); 47 virtual void forceLayout(); 48 virtual void forceLayoutForNonHTML(); 49 50 virtual void setCopiesOnScroll(); 51 52 virtual void detachedFromParent2(); 53 virtual void detachedFromParent3(); 54 55 virtual void assignIdentifierToInitialRequest(unsigned long identifier, WebCore::DocumentLoader*, const WebCore::ResourceRequest&); 56 57 virtual void dispatchWillSendRequest(WebCore::DocumentLoader*, unsigned long identifier, WebCore::ResourceRequest&, const WebCore::ResourceResponse& redirectResponse); 58 virtual bool shouldUseCredentialStorage(WebCore::DocumentLoader*, unsigned long identifier); 59 virtual void dispatchDidReceiveAuthenticationChallenge(WebCore::DocumentLoader*, unsigned long identifier, const WebCore::AuthenticationChallenge&); 60 virtual void dispatchDidCancelAuthenticationChallenge(WebCore::DocumentLoader*, unsigned long identifier, const WebCore::AuthenticationChallenge&); 61 virtual void dispatchDidReceiveResponse(WebCore::DocumentLoader*, unsigned long identifier, const WebCore::ResourceResponse&); 62 virtual void dispatchDidReceiveContentLength(WebCore::DocumentLoader*, unsigned long identifier, int lengthReceived); 63 virtual void dispatchDidFinishLoading(WebCore::DocumentLoader*, unsigned long identifier); 64 virtual void dispatchDidFailLoading(WebCore::DocumentLoader*, unsigned long identifier, const WebCore::ResourceError&); 65 virtual bool dispatchDidLoadResourceFromMemoryCache(WebCore::DocumentLoader*, const WebCore::ResourceRequest&, const WebCore::ResourceResponse&, int length); 66 67 virtual void dispatchDidHandleOnloadEvents(); 68 virtual void dispatchDidReceiveServerRedirectForProvisionalLoad(); 69 virtual void dispatchDidCancelClientRedirect(); 70 virtual void dispatchWillPerformClientRedirect(const WebCore::KURL&, double, double); 71 virtual void dispatchDidChangeLocationWithinPage(); 72 virtual void dispatchDidPushStateWithinPage(); 73 virtual void dispatchDidReplaceStateWithinPage(); 74 virtual void dispatchDidPopStateWithinPage(); 75 virtual void dispatchWillClose(); 76 virtual void dispatchDidReceiveIcon(); 77 virtual void dispatchDidStartProvisionalLoad(); 78 virtual void dispatchDidReceiveTitle(const WTF::String&); 79 virtual void dispatchDidChangeIcons(); 80 virtual void dispatchDidCommitLoad(); 81 virtual void dispatchDidFailProvisionalLoad(const WebCore::ResourceError&); 82 virtual void dispatchDidFailLoad(const WebCore::ResourceError&); 83 virtual void dispatchDidFinishDocumentLoad(); 84 virtual void dispatchDidFinishLoad(); 85 virtual void dispatchDidFirstLayout(); 86 virtual void dispatchDidFirstVisuallyNonEmptyLayout(); 87 88 virtual WebCore::Frame* dispatchCreatePage(const WebCore::NavigationAction&); 89 virtual void dispatchShow(); 90 91 virtual void dispatchDecidePolicyForMIMEType(WebCore::FramePolicyFunction, const WTF::String& MIMEType, 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(); 95 96 virtual void dispatchUnableToImplementPolicy(const WebCore::ResourceError&); 97 98 virtual void dispatchWillSendSubmitEvent(WebCore::HTMLFormElement*) { } 99 virtual void dispatchWillSubmitForm(WebCore::FramePolicyFunction, WTF::PassRefPtr<WebCore::FormState>); 100 101 virtual void dispatchDidLoadMainResource(WebCore::DocumentLoader*); 102 virtual void revertToProvisionalState(WebCore::DocumentLoader*); 103 virtual void setMainDocumentError(WebCore::DocumentLoader*, const WebCore::ResourceError&); 104 105 virtual void postProgressStartedNotification(); 106 virtual void postProgressEstimateChangedNotification(); 107 virtual void postProgressFinishedNotification(); 108 109 virtual PassRefPtr<WebCore::Frame> createFrame(const WebCore::KURL& url, const WTF::String& name, WebCore::HTMLFrameOwnerElement* ownerElement, 110 const WTF::String& referrer, bool allowsScrolling, int marginWidth, int marginHeight); 111 virtual void didTransferChildFrameToNewDocument(WebCore::Page*); 112 virtual void transferLoadingResourceFromPage(unsigned long, WebCore::DocumentLoader*, const WebCore::ResourceRequest&, WebCore::Page*); 113 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); 114 virtual void redirectDataToPlugin(WebCore::Widget* pluginWidget); 115 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); 116 virtual WTF::String overrideMediaType() const; 117 virtual void dispatchDidClearWindowObjectInWorld(WebCore::DOMWrapperWorld*); 118 virtual void documentElementAvailable(); 119 virtual void didPerformFirstNavigation() const; 120 121 virtual void registerForIconNotification(bool); 122 123 virtual WebCore::ObjectContentType objectContentType(const WebCore::KURL& url, const WTF::String& mimeType); 124 125 virtual void setMainFrameDocumentReady(bool); 126 127 virtual void startDownload(const WebCore::ResourceRequest&); 128 129 virtual void willChangeTitle(WebCore::DocumentLoader*); 130 virtual void didChangeTitle(WebCore::DocumentLoader*); 131 132 virtual void committedLoad(WebCore::DocumentLoader*, const char*, int); 133 virtual void finishedLoading(WebCore::DocumentLoader*); 134 135 virtual void updateGlobalHistory(); 136 virtual void updateGlobalHistoryRedirectLinks(); 137 virtual bool shouldGoToHistoryItem(WebCore::HistoryItem*) const; 138 virtual void dispatchDidAddBackForwardItem(WebCore::HistoryItem*) const; 139 virtual void dispatchDidRemoveBackForwardItem(WebCore::HistoryItem*) const; 140 virtual void dispatchDidChangeBackForwardIndex() const; 141 142 virtual void didDisplayInsecureContent(); 143 virtual void didRunInsecureContent(WebCore::SecurityOrigin*, const WebCore::KURL&); 144 145 virtual WebCore::ResourceError cancelledError(const WebCore::ResourceRequest&); 146 virtual WebCore::ResourceError blockedError(const WebCore::ResourceRequest&); 147 virtual WebCore::ResourceError cannotShowURLError(const WebCore::ResourceRequest&); 148 virtual WebCore::ResourceError interruptForPolicyChangeError(const WebCore::ResourceRequest&); 149 150 virtual WebCore::ResourceError cannotShowMIMETypeError(const WebCore::ResourceResponse&); 151 virtual WebCore::ResourceError fileDoesNotExistError(const WebCore::ResourceResponse&); 152 virtual WebCore::ResourceError pluginWillHandleLoadError(const WebCore::ResourceResponse&); 153 154 virtual bool shouldFallBack(const WebCore::ResourceError&); 155 156 virtual bool canHandleRequest(const WebCore::ResourceRequest&) const; 157 virtual bool canShowMIMEType(const WTF::String&) const; 158 virtual bool canShowMIMETypeAsHTML(const WTF::String&) const; 159 virtual bool representationExistsForURLScheme(const WTF::String&) const; 160 virtual WTF::String generatedMIMETypeForURLScheme(const WTF::String&) const; 161 162 virtual void frameLoadCompleted(); 163 virtual void saveViewStateToItem(WebCore::HistoryItem*); 164 virtual void restoreViewState(); 165 virtual void provisionalLoadStarted(); 166 virtual void didFinishLoad(); 167 virtual void prepareForDataSourceReplacement(); 168 169 virtual WTF::PassRefPtr<WebCore::DocumentLoader> createDocumentLoader(const WebCore::ResourceRequest&, const WebCore::SubstituteData&); 170 virtual void setTitle(const WTF::String& title, const WebCore::KURL&); 171 172 virtual WTF::String userAgent(const WebCore::KURL&); 173 174 virtual void savePlatformDataToCachedFrame(WebCore::CachedFrame*); 175 virtual void transitionToCommittedFromCachedFrame(WebCore::CachedFrame*); 176 virtual void transitionToCommittedForNewPage(); 177 178 virtual void didSaveToPageCache(); 179 virtual void didRestoreFromPageCache(); 180 181 virtual void dispatchDidBecomeFrameset(bool); 182 183 virtual bool canCachePage() const; 184 virtual void download(WebCore::ResourceHandle*, const WebCore::ResourceRequest&, const WebCore::ResourceRequest&, const WebCore::ResourceResponse&); 185 186 virtual PassRefPtr<WebCore::FrameNetworkingContext> createNetworkingContext(); 187 188 void setFrame(WebCore::Frame *frame) { m_frame = frame; } 189 WebCore::Frame *frame() { return m_frame; } 190 191private: 192 WebView* m_webView; 193 WebCore::Frame* m_frame; 194 WebCore::ResourceResponse m_response; 195 196 // Plugin view to redirect data to 197 WebCore::PluginView* m_pluginView; 198 bool m_hasSentResponseToPlugin; 199}; 200 201} // namespace WebKit 202 203#endif // FrameLoaderClientWinCE_h 204