15c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)/* 25c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * Copyright (C) 2009, 2012 Google Inc. All rights reserved. 35c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * Copyright (C) 2011 Apple Inc. All rights reserved. 45c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * 55c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * Redistribution and use in source and binary forms, with or without 65c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * modification, are permitted provided that the following conditions are 75c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * met: 85c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * 95c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * * Redistributions of source code must retain the above copyright 105c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * notice, this list of conditions and the following disclaimer. 115c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * * Redistributions in binary form must reproduce the above 125c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * copyright notice, this list of conditions and the following disclaimer 135c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * in the documentation and/or other materials provided with the 145c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * distribution. 155c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * * Neither the name of Google Inc. nor the names of its 165c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * contributors may be used to endorse or promote products derived from 175c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * this software without specific prior written permission. 185c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * 195c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 205c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 215c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 225c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 235c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 245c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 255c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 265c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 275c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 285c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 295c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 305c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 315c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 325c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#ifndef FrameLoaderClientImpl_h 335c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define FrameLoaderClientImpl_h 345c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 3553e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)#include "core/loader/FrameLoaderClient.h" 367242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci#include "platform/heap/Handle.h" 3751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)#include "platform/weborigin/KURL.h" 38521d96ec04ace82590870fb04353ec4f82bb150fTorne (Richard Coles)#include "wtf/PassOwnPtr.h" 39521d96ec04ace82590870fb04353ec4f82bb150fTorne (Richard Coles)#include "wtf/RefPtr.h" 405c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 4151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)namespace blink { 425c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 4310f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdochclass WebLocalFrameImpl; 445c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)class WebPluginContainerImpl; 455c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)class WebPluginLoadObserver; 465c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 47e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles)class FrameLoaderClientImpl FINAL : public FrameLoaderClient { 485c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)public: 49c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) explicit FrameLoaderClientImpl(WebLocalFrameImpl* webFrame); 5009380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual ~FrameLoaderClientImpl(); 515c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 5210f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch WebLocalFrameImpl* webFrame() const { return m_webFrame; } 535c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 54e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) // FrameLoaderClient ---------------------------------------------- 555c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 565c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) // Notifies the WebView delegate that the JS window object has been cleared, 575c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) // giving it a chance to bind native objects to the window before script 585c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) // parsing begins. 59323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles) virtual void dispatchDidClearWindowObjectInMainWorld() OVERRIDE; 6009380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual void documentElementAvailable() OVERRIDE; 615c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 6209380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual void didCreateScriptContext(v8::Handle<v8::Context>, int extensionGroup, int worldId) OVERRIDE; 6309380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual void willReleaseScriptContext(v8::Handle<v8::Context>, int worldId) OVERRIDE; 645c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 655c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) // Returns true if we should allow the given V8 extension to be added to 665c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) // the script context at the currently loading page and given extension group. 6709380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual bool allowScriptExtension(const String& extensionName, int extensionGroup, int worldId) OVERRIDE; 6809380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) 6909380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual bool hasWebView() const OVERRIDE; 70e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) virtual Frame* opener() const OVERRIDE; 71e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) virtual void setOpener(Frame*) OVERRIDE; 72e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) virtual Frame* parent() const OVERRIDE; 73e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) virtual Frame* top() const OVERRIDE; 74e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) virtual Frame* previousSibling() const OVERRIDE; 75e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) virtual Frame* nextSibling() const OVERRIDE; 76e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) virtual Frame* firstChild() const OVERRIDE; 77e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) virtual Frame* lastChild() const OVERRIDE; 7809380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual void detachedFromParent() OVERRIDE; 79e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) virtual void dispatchWillSendRequest(DocumentLoader*, unsigned long identifier, ResourceRequest&, const ResourceResponse& redirectResponse) OVERRIDE; 80e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) virtual void dispatchDidReceiveResponse(DocumentLoader*, unsigned long identifier, const ResourceResponse&) OVERRIDE; 81e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) virtual void dispatchDidChangeResourcePriority(unsigned long identifier, ResourceLoadPriority, int intraPriorityValue) OVERRIDE; 82e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) virtual void dispatchDidFinishLoading(DocumentLoader*, unsigned long identifier) OVERRIDE; 83e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) virtual void dispatchDidLoadResourceFromMemoryCache(const ResourceRequest&, const ResourceResponse&) OVERRIDE; 8409380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual void dispatchDidHandleOnloadEvents() OVERRIDE; 8509380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual void dispatchDidReceiveServerRedirectForProvisionalLoad() OVERRIDE; 86e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) virtual void dispatchDidNavigateWithinPage(HistoryItem*, HistoryCommitType) OVERRIDE; 8709380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual void dispatchWillClose() OVERRIDE; 88197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch virtual void dispatchDidStartProvisionalLoad(bool isTransitionNavigation) OVERRIDE; 8909380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual void dispatchDidReceiveTitle(const String&) OVERRIDE; 90e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) virtual void dispatchDidChangeIcons(IconType) OVERRIDE; 91e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) virtual void dispatchDidCommitLoad(LocalFrame*, HistoryItem*, HistoryCommitType) OVERRIDE; 92e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) virtual void dispatchDidFailProvisionalLoad(const ResourceError&) OVERRIDE; 93e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) virtual void dispatchDidFailLoad(const ResourceError&) OVERRIDE; 9409380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual void dispatchDidFinishDocumentLoad() OVERRIDE; 9509380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual void dispatchDidFinishLoad() OVERRIDE; 961e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) virtual void dispatchDidFirstVisuallyNonEmptyLayout() OVERRIDE; 97197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch 98197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch virtual void dispatchDidChangeThemeColor() OVERRIDE; 99e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) virtual NavigationPolicy decidePolicyForNavigation(const ResourceRequest&, DocumentLoader*, NavigationPolicy, bool isTransitionNavigation) OVERRIDE; 100197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch virtual void dispatchAddNavigationTransitionData(const String& allowedDestinationOrigin, const String& selector, const String& markup) OVERRIDE; 101e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) virtual void dispatchWillRequestResource(FetchRequest*) OVERRIDE; 102e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) virtual void dispatchWillSendSubmitEvent(HTMLFormElement*) OVERRIDE; 103e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) virtual void dispatchWillSubmitForm(HTMLFormElement*) OVERRIDE; 104e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) virtual void didStartLoading(LoadStartType) OVERRIDE; 10507a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch virtual void didStopLoading() OVERRIDE; 10607a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch virtual void progressEstimateChanged(double progressEstimate) OVERRIDE; 107e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) virtual void loadURLExternally(const ResourceRequest&, NavigationPolicy, const String& suggestedName = String()) OVERRIDE; 10809380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual bool navigateBackForward(int offset) const OVERRIDE; 10909380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual void didAccessInitialDocument() OVERRIDE; 11009380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual void didDisplayInsecureContent() OVERRIDE; 111e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) virtual void didRunInsecureContent(SecurityOrigin*, const KURL& insecureURL) OVERRIDE; 112e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) virtual void didDetectXSS(const KURL&, bool didBlockEntirePage) OVERRIDE; 113e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) virtual void didDispatchPingLoader(const KURL&) OVERRIDE; 11409380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual void selectorMatchChanged(const Vector<String>& addedSelectors, const Vector<String>& removedSelectors) OVERRIDE; 115e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) virtual PassRefPtr<DocumentLoader> createDocumentLoader(LocalFrame*, const ResourceRequest&, const SubstituteData&) OVERRIDE; 116e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) virtual WTF::String userAgent(const KURL&) OVERRIDE; 11709380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual WTF::String doNotTrackValue() OVERRIDE; 11809380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual void transitionToCommittedForNewPage() OVERRIDE; 1197242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci virtual PassRefPtrWillBeRawPtr<LocalFrame> createFrame(const KURL&, const WTF::AtomicString& name, const Referrer&, HTMLFrameOwnerElement*) OVERRIDE; 120a9984bf9ddc3cf73fdae3f29134a2bab379e7029Ben Murdoch virtual bool canCreatePluginWithoutRenderer(const String& mimeType) const; 121e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) virtual PassRefPtr<Widget> createPlugin( 122e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) HTMLPlugInElement*, const KURL&, 1235c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) const Vector<WTF::String>&, const Vector<WTF::String>&, 124d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) const WTF::String&, bool loadManually, DetachedPluginPolicy) OVERRIDE; 125e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) virtual PassRefPtr<Widget> createJavaAppletWidget( 126e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) HTMLAppletElement*, 127e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) const KURL& /* base_url */, 1285c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) const Vector<WTF::String>& paramNames, 12909380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) const Vector<WTF::String>& paramValues) OVERRIDE; 130e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) virtual ObjectContentType objectContentType( 131e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) const KURL&, const WTF::String& mimeType, bool shouldPreferPlugInsForImages) OVERRIDE; 13209380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual void didChangeScrollOffset() OVERRIDE; 133d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) virtual void didUpdateCurrentHistoryItem() OVERRIDE; 134e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) virtual void didRemoveAllPendingStylesheet() OVERRIDE; 13509380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual bool allowScript(bool enabledPerSettings) OVERRIDE; 136e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) virtual bool allowScriptFromSource(bool enabledPerSettings, const KURL& scriptURL) OVERRIDE; 13709380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual bool allowPlugins(bool enabledPerSettings) OVERRIDE; 138e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) virtual bool allowImage(bool enabledPerSettings, const KURL& imageURL) OVERRIDE; 139e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) virtual bool allowMedia(const KURL& mediaURL) OVERRIDE; 140e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) virtual bool allowDisplayingInsecureContent(bool enabledPerSettings, SecurityOrigin*, const KURL&) OVERRIDE; 141e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) virtual bool allowRunningInsecureContent(bool enabledPerSettings, SecurityOrigin*, const KURL&) OVERRIDE; 14209380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual void didNotAllowScript() OVERRIDE; 14309380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual void didNotAllowPlugins() OVERRIDE; 14409380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) 14509380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual WebCookieJar* cookieJar() const OVERRIDE; 1467242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci virtual bool willCheckAndDispatchMessageEvent(SecurityOrigin* target, MessageEvent*, LocalFrame* sourceFrame) const OVERRIDE; 14709380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual void didChangeName(const String&) OVERRIDE; 1485c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 149e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) virtual void dispatchWillOpenSocketStream(SocketStreamHandle*) OVERRIDE; 150e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) virtual void dispatchWillOpenWebSocket(WebSocketHandle*) OVERRIDE; 1515c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 152e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) virtual void dispatchWillStartUsingPeerConnectionHandler(WebRTCPeerConnectionHandler*) OVERRIDE; 1535c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 154e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) virtual void didRequestAutocomplete(HTMLFormElement*) OVERRIDE; 1555c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 156926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) virtual bool allowWebGL(bool enabledPerSettings) OVERRIDE; 157926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) virtual void didLoseWebGLContext(int arbRobustnessContextLostReason) OVERRIDE; 158926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) 159926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) virtual void dispatchWillInsertBody() OVERRIDE; 160926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) 161d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) virtual PassOwnPtr<WebServiceWorkerProvider> createServiceWorkerProvider() OVERRIDE; 1627242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci virtual bool isControlledByServiceWorker() OVERRIDE; 163e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) virtual SharedWorkerRepositoryClient* sharedWorkerRepositoryClient() OVERRIDE; 16406f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) 165d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) virtual PassOwnPtr<WebApplicationCacheHost> createApplicationCacheHost(WebApplicationCacheHostClient*) OVERRIDE; 166d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) 16706f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) virtual void didStopAllLoaders() OVERRIDE; 1689bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles) 169323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles) virtual void dispatchDidChangeManifest() OVERRIDE; 170323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles) 1715c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)private: 1721e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) virtual bool isFrameLoaderClientImpl() const OVERRIDE { return true; } 1731e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) 174e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) PassOwnPtr<WebPluginLoadObserver> pluginLoadObserver(DocumentLoader*); 1755c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 1765c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) // The WebFrame that owns this object and manages its lifetime. Therefore, 1775c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) // the web frame object is guaranteed to exist. 17810f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch WebLocalFrameImpl* m_webFrame; 1795c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)}; 1805c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 181e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles)DEFINE_TYPE_CASTS(FrameLoaderClientImpl, FrameLoaderClient, client, client->isFrameLoaderClientImpl(), client.isFrameLoaderClientImpl()); 1821e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) 18351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)} // namespace blink 1845c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 1855c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#endif 186