1/* 2 * Copyright (C) 2010 Patrick Gansterer <paroga@paroga.com> 3 * Copyright (C) 2011 Apple Inc. All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 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. 13 * 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. 24 */ 25 26#ifndef FrameLoaderClientWinCE_h 27#define FrameLoaderClientWinCE_h 28 29#include "FrameLoaderClient.h" 30#include "PluginView.h" 31#include "ResourceResponse.h" 32 33class WebView; 34 35namespace WebKit { 36 37class FrameLoaderClientWinCE : public WebCore::FrameLoaderClient { 38public: 39 FrameLoaderClientWinCE(WebView*); 40 virtual ~FrameLoaderClientWinCE(); 41 virtual void frameLoaderDestroyed() override; 42 43 WebView* webView() const { return m_webView; } 44 45 virtual bool hasWebView() const override; 46 47 virtual void makeRepresentation(WebCore::DocumentLoader*) override; 48 virtual void forceLayout() override; 49 virtual void forceLayoutForNonHTML() override; 50 51 virtual void setCopiesOnScroll() override; 52 53 virtual void detachedFromParent2() override; 54 virtual void detachedFromParent3() override; 55 56 virtual void assignIdentifierToInitialRequest(unsigned long identifier, WebCore::DocumentLoader*, const WebCore::ResourceRequest&) override; 57 58 virtual void dispatchWillSendRequest(WebCore::DocumentLoader*, unsigned long identifier, WebCore::ResourceRequest&, const WebCore::ResourceResponse& redirectResponse) override; 59 virtual bool shouldUseCredentialStorage(WebCore::DocumentLoader*, unsigned long identifier) override; 60 virtual void dispatchDidReceiveAuthenticationChallenge(WebCore::DocumentLoader*, unsigned long identifier, const WebCore::AuthenticationChallenge&) override; 61 virtual void dispatchDidCancelAuthenticationChallenge(WebCore::DocumentLoader*, unsigned long identifier, const WebCore::AuthenticationChallenge&) override; 62 virtual void dispatchDidReceiveResponse(WebCore::DocumentLoader*, unsigned long identifier, const WebCore::ResourceResponse&) override; 63 virtual void dispatchDidReceiveContentLength(WebCore::DocumentLoader*, unsigned long identifier, int dataLength) override; 64 virtual void dispatchDidFinishLoading(WebCore::DocumentLoader*, unsigned long identifier) override; 65 virtual void dispatchDidFailLoading(WebCore::DocumentLoader*, unsigned long identifier, const WebCore::ResourceError&) override; 66 virtual bool dispatchDidLoadResourceFromMemoryCache(WebCore::DocumentLoader*, const WebCore::ResourceRequest&, const WebCore::ResourceResponse&, int length) override; 67 68 virtual void dispatchDidHandleOnloadEvents() override; 69 virtual void dispatchDidReceiveServerRedirectForProvisionalLoad() override; 70 virtual void dispatchDidCancelClientRedirect() override; 71 virtual void dispatchWillPerformClientRedirect(const WebCore::URL&, double, double) override; 72 virtual void dispatchDidChangeLocationWithinPage() override; 73 virtual void dispatchDidPushStateWithinPage() override; 74 virtual void dispatchDidReplaceStateWithinPage() override; 75 virtual void dispatchDidPopStateWithinPage() override; 76 virtual void dispatchWillClose() override; 77 virtual void dispatchDidReceiveIcon() override; 78 virtual void dispatchDidStartProvisionalLoad() override; 79 virtual void dispatchDidReceiveTitle(const WebCore::StringWithDirection&) override; 80 virtual void dispatchDidChangeIcons(WebCore::IconType) override; 81 virtual void dispatchDidCommitLoad() override; 82 virtual void dispatchDidFailProvisionalLoad(const WebCore::ResourceError&) override; 83 virtual void dispatchDidFailLoad(const WebCore::ResourceError&) override; 84 virtual void dispatchDidFinishDocumentLoad() override; 85 virtual void dispatchDidFinishLoad() override; 86 virtual void dispatchDidLayout(WebCore::LayoutMilestones) override; 87 88 virtual WebCore::Frame* dispatchCreatePage(const WebCore::NavigationAction&) override; 89 virtual void dispatchShow() override; 90 91 virtual void dispatchDecidePolicyForResponse(const WebCore::ResourceResponse&, const WebCore::ResourceRequest&, WebCore::FramePolicyFunction) override; 92 virtual void dispatchDecidePolicyForNewWindowAction(const WebCore::NavigationAction&, const WebCore::ResourceRequest&, WTF::PassRefPtr<WebCore::FormState>, const WTF::String& frameName, WebCore::FramePolicyFunction) override; 93 virtual void dispatchDecidePolicyForNavigationAction(const WebCore::NavigationAction&, const WebCore::ResourceRequest&, WTF::PassRefPtr<WebCore::FormState>, WebCore::FramePolicyFunction) override; 94 virtual void cancelPolicyCheck() override; 95 96 virtual void dispatchUnableToImplementPolicy(const WebCore::ResourceError&) override; 97 98 virtual void dispatchWillSendSubmitEvent(WTF::PassRefPtr<WebCore::FormState>) override { } 99 virtual void dispatchWillSubmitForm(WTF::PassRefPtr<WebCore::FormState>, WebCore::FramePolicyFunction) override; 100 101 virtual void revertToProvisionalState(WebCore::DocumentLoader*) override; 102 virtual void setMainDocumentError(WebCore::DocumentLoader*, const WebCore::ResourceError&) override; 103 104 virtual void postProgressStartedNotification() override; 105 virtual void postProgressEstimateChangedNotification() override; 106 virtual void postProgressFinishedNotification() override; 107 108 virtual PassRefPtr<WebCore::Frame> createFrame(const WebCore::URL&, const WTF::String& name, WebCore::HTMLFrameOwnerElement*, const WTF::String& referrer, bool allowsScrolling, int marginWidth, int marginHeight) override; 109 virtual PassRefPtr<WebCore::Widget> createPlugin(const WebCore::IntSize&, WebCore::HTMLPlugInElement*, const WebCore::URL&, const WTF::Vector<WTF::String>&, const WTF::Vector<WTF::String>&, const WTF::String&, bool) override; 110 virtual void recreatePlugin(WebCore::Widget*) override { } 111 virtual void redirectDataToPlugin(WebCore::Widget* pluginWidget) override; 112 virtual PassRefPtr<WebCore::Widget> createJavaAppletWidget(const WebCore::IntSize&, WebCore::HTMLAppletElement*, const WebCore::URL& baseURL, const WTF::Vector<WTF::String>& paramNames, const WTF::Vector<WTF::String>& paramValues) override; 113 virtual WTF::String overrideMediaType() const override; 114 virtual void dispatchDidClearWindowObjectInWorld(WebCore::DOMWrapperWorld&) override; 115 116 virtual void registerForIconNotification(bool) override; 117 118 virtual WebCore::ObjectContentType objectContentType(const WebCore::URL&, const WTF::String& mimeType, bool shouldPreferPlugInsForImages) override; 119 120 virtual void setMainFrameDocumentReady(bool) override; 121 122 virtual void startDownload(const WebCore::ResourceRequest&, const String& suggestedName = String()) override; 123 124 virtual void willChangeTitle(WebCore::DocumentLoader*) override; 125 virtual void didChangeTitle(WebCore::DocumentLoader*) override; 126 127 virtual void committedLoad(WebCore::DocumentLoader*, const char*, int) override; 128 virtual void finishedLoading(WebCore::DocumentLoader*) override; 129 130 virtual void updateGlobalHistory() override; 131 virtual void updateGlobalHistoryRedirectLinks() override; 132 virtual bool shouldGoToHistoryItem(WebCore::HistoryItem*) const override; 133 134 virtual void didDisplayInsecureContent() override; 135 virtual void didRunInsecureContent(WebCore::SecurityOrigin*, const WebCore::URL&) override; 136 virtual void didDetectXSS(const WebCore::URL&, bool didBlockEntirePage) override; 137 138 virtual WebCore::ResourceError cancelledError(const WebCore::ResourceRequest&) override; 139 virtual WebCore::ResourceError blockedError(const WebCore::ResourceRequest&) override; 140 virtual WebCore::ResourceError cannotShowURLError(const WebCore::ResourceRequest&) override; 141 virtual WebCore::ResourceError interruptedForPolicyChangeError(const WebCore::ResourceRequest&) override; 142 143 virtual WebCore::ResourceError cannotShowMIMETypeError(const WebCore::ResourceResponse&) override; 144 virtual WebCore::ResourceError fileDoesNotExistError(const WebCore::ResourceResponse&) override; 145 virtual WebCore::ResourceError pluginWillHandleLoadError(const WebCore::ResourceResponse&) override; 146 147 virtual bool shouldFallBack(const WebCore::ResourceError&) override; 148 149 virtual bool canHandleRequest(const WebCore::ResourceRequest&) const override; 150 virtual bool canShowMIMEType(const WTF::String&) const override; 151 virtual bool canShowMIMETypeAsHTML(const WTF::String&) const override; 152 virtual bool representationExistsForURLScheme(const WTF::String&) const override; 153 virtual WTF::String generatedMIMETypeForURLScheme(const WTF::String&) const override; 154 155 virtual void frameLoadCompleted() override; 156 virtual void saveViewStateToItem(WebCore::HistoryItem*) override; 157 virtual void restoreViewState() override; 158 virtual void provisionalLoadStarted() override; 159 virtual void didFinishLoad() override; 160 virtual void prepareForDataSourceReplacement() override; 161 162 virtual WTF::PassRefPtr<WebCore::DocumentLoader> createDocumentLoader(const WebCore::ResourceRequest&, const WebCore::SubstituteData&) override; 163 virtual void setTitle(const WebCore::StringWithDirection&, const WebCore::URL&) override; 164 165 virtual WTF::String userAgent(const WebCore::URL&) override; 166 167 virtual void savePlatformDataToCachedFrame(WebCore::CachedFrame*) override; 168 virtual void transitionToCommittedFromCachedFrame(WebCore::CachedFrame*) override; 169 virtual void transitionToCommittedForNewPage() override; 170 171 virtual void didSaveToPageCache() override; 172 virtual void didRestoreFromPageCache() override; 173 174 virtual void dispatchDidBecomeFrameset(bool) override; 175 176 virtual bool canCachePage() const override; 177 virtual void convertMainResourceLoadToDownload(WebCore::DocumentLoader*, const WebCore::ResourceRequest&, const WebCore::ResourceResponse&) override; 178 179 virtual PassRefPtr<WebCore::FrameNetworkingContext> createNetworkingContext() override; 180 181 void setFrame(WebCore::Frame *frame) { m_frame = frame; } 182 WebCore::Frame *frame() { return m_frame; } 183 184private: 185 WebView* m_webView; 186 WebCore::Frame* m_frame; 187 WebCore::ResourceResponse m_response; 188 189 // Plugin view to redirect data to 190 WebCore::PluginView* m_pluginView; 191 bool m_hasSentResponseToPlugin; 192}; 193 194} // namespace WebKit 195 196#endif // FrameLoaderClientWinCE_h 197