diff options
Diffstat (limited to 'Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.h')
-rw-r--r-- | Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.h | 347 |
1 files changed, 191 insertions, 156 deletions
diff --git a/Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.h b/Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.h index 98786a64c..1be4c4127 100644 --- a/Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.h +++ b/Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2010, 2011, 2012 Apple Inc. All rights reserved. + * Copyright (C) 2010-2016 Apple Inc. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -23,17 +23,20 @@ * THE POSSIBILITY OF SUCH DAMAGE. */ -#ifndef WebFrameLoaderClient_h -#define WebFrameLoaderClient_h +#pragma once #include <WebCore/FrameLoaderClient.h> +namespace WebCore { +class SessionID; +} + namespace WebKit { class PluginView; class WebFrame; -class WebFrameLoaderClient : public WebCore::FrameLoaderClient { +class WebFrameLoaderClient final : public WebCore::FrameLoaderClient { public: WebFrameLoaderClient(); ~WebFrameLoaderClient(); @@ -41,197 +44,231 @@ public: void setWebFrame(WebFrame* webFrame) { m_frame = webFrame; } WebFrame* webFrame() const { return m_frame; } + bool frameHasCustomContentProvider() const { return m_frameHasCustomContentProvider; } + + void setUseIconLoadingClient(bool useIconLoadingClient) { m_useIconLoadingClient = useIconLoadingClient; } + private: - virtual void frameLoaderDestroyed() override; + void frameLoaderDestroyed() final; - virtual bool hasHTMLView() const override { return true; } - virtual bool hasWebView() const override; + bool hasHTMLView() const final; + bool hasWebView() const final; - virtual void makeRepresentation(WebCore::DocumentLoader*) override; - virtual void forceLayout() override; + void makeRepresentation(WebCore::DocumentLoader*) final; #if PLATFORM(IOS) - virtual void forceLayoutWithoutRecalculatingStyles() override; + bool forceLayoutOnRestoreFromPageCache() final; #endif - virtual void forceLayoutForNonHTML() override; + void forceLayoutForNonHTML() final; - virtual void setCopiesOnScroll() override; + void setCopiesOnScroll() final; - virtual void detachedFromParent2() override; - virtual void detachedFromParent3() override; + void detachedFromParent2() final; + void detachedFromParent3() final; - virtual void assignIdentifierToInitialRequest(unsigned long identifier, WebCore::DocumentLoader*, const WebCore::ResourceRequest&) override; + void assignIdentifierToInitialRequest(unsigned long identifier, WebCore::DocumentLoader*, const WebCore::ResourceRequest&) final; - virtual void dispatchWillSendRequest(WebCore::DocumentLoader*, unsigned long identifier, WebCore::ResourceRequest&, const WebCore::ResourceResponse& redirectResponse) override; - virtual bool shouldUseCredentialStorage(WebCore::DocumentLoader*, unsigned long identifier) override; - virtual void dispatchDidReceiveAuthenticationChallenge(WebCore::DocumentLoader*, unsigned long identifier, const WebCore::AuthenticationChallenge&) override; - virtual void dispatchDidCancelAuthenticationChallenge(WebCore::DocumentLoader*, unsigned long identifier, const WebCore::AuthenticationChallenge&) override; + void dispatchWillSendRequest(WebCore::DocumentLoader*, unsigned long identifier, WebCore::ResourceRequest&, const WebCore::ResourceResponse& redirectResponse) final; + bool shouldUseCredentialStorage(WebCore::DocumentLoader*, unsigned long identifier) final; + void dispatchDidReceiveAuthenticationChallenge(WebCore::DocumentLoader*, unsigned long identifier, const WebCore::AuthenticationChallenge&) final; #if USE(PROTECTION_SPACE_AUTH_CALLBACK) - virtual bool canAuthenticateAgainstProtectionSpace(WebCore::DocumentLoader*, unsigned long identifier, const WebCore::ProtectionSpace&) override; + bool canAuthenticateAgainstProtectionSpace(WebCore::DocumentLoader*, unsigned long identifier, const WebCore::ProtectionSpace&) final; #endif #if PLATFORM(IOS) - virtual RetainPtr<CFDictionaryRef> connectionProperties(WebCore::DocumentLoader*, unsigned long identifier) override; + RetainPtr<CFDictionaryRef> connectionProperties(WebCore::DocumentLoader*, unsigned long identifier) final; #endif - virtual void dispatchDidReceiveResponse(WebCore::DocumentLoader*, unsigned long identifier, const WebCore::ResourceResponse&) override; - virtual void dispatchDidReceiveContentLength(WebCore::DocumentLoader*, unsigned long identifier, int dataLength) override; - virtual void dispatchDidFinishLoading(WebCore::DocumentLoader*, unsigned long identifier) override; - virtual void dispatchDidFailLoading(WebCore::DocumentLoader*, unsigned long identifier, const WebCore::ResourceError&) override; - virtual bool dispatchDidLoadResourceFromMemoryCache(WebCore::DocumentLoader*, const WebCore::ResourceRequest&, const WebCore::ResourceResponse&, int length) override; - - virtual void dispatchDidHandleOnloadEvents() override; - virtual void dispatchDidReceiveServerRedirectForProvisionalLoad() override; - virtual void dispatchDidCancelClientRedirect() override; - virtual void dispatchWillPerformClientRedirect(const WebCore::URL&, double interval, double fireDate) override; - virtual void dispatchDidChangeLocationWithinPage() override; - virtual void dispatchDidPushStateWithinPage() override; - virtual void dispatchDidReplaceStateWithinPage() override; - virtual void dispatchDidPopStateWithinPage() override; - virtual void dispatchWillClose() override; - virtual void dispatchDidReceiveIcon() override; - virtual void dispatchDidStartProvisionalLoad() override; - virtual void dispatchDidReceiveTitle(const WebCore::StringWithDirection&) override; - virtual void dispatchDidChangeIcons(WebCore::IconType) override; - virtual void dispatchDidCommitLoad() override; - virtual void dispatchDidFailProvisionalLoad(const WebCore::ResourceError&) override; - virtual void dispatchDidFailLoad(const WebCore::ResourceError&) override; - virtual void dispatchDidFinishDocumentLoad() override; - virtual void dispatchDidFinishLoad() override; - - virtual void dispatchDidLayout(WebCore::LayoutMilestones) override; - virtual void dispatchDidLayout() override; - - virtual WebCore::Frame* dispatchCreatePage(const WebCore::NavigationAction&) override; - virtual void dispatchShow() override; - - virtual void dispatchDecidePolicyForResponse(const WebCore::ResourceResponse&, const WebCore::ResourceRequest&, WebCore::FramePolicyFunction) override; - virtual void dispatchDecidePolicyForNewWindowAction(const WebCore::NavigationAction&, const WebCore::ResourceRequest&, PassRefPtr<WebCore::FormState>, const String& frameName, WebCore::FramePolicyFunction) override; - virtual void dispatchDecidePolicyForNavigationAction(const WebCore::NavigationAction&, const WebCore::ResourceRequest&, PassRefPtr<WebCore::FormState>, WebCore::FramePolicyFunction) override; - virtual void cancelPolicyCheck() override; - - virtual void dispatchUnableToImplementPolicy(const WebCore::ResourceError&) override; - - virtual void dispatchWillSendSubmitEvent(PassRefPtr<WebCore::FormState>) override; - virtual void dispatchWillSubmitForm(PassRefPtr<WebCore::FormState>, WebCore::FramePolicyFunction) override; - - virtual void revertToProvisionalState(WebCore::DocumentLoader*) override; - virtual void setMainDocumentError(WebCore::DocumentLoader*, const WebCore::ResourceError&) override; - - virtual void setMainFrameDocumentReady(bool) override; - - virtual void startDownload(const WebCore::ResourceRequest&, const String& suggestedName = String()) override; - - virtual void willChangeTitle(WebCore::DocumentLoader*) override; - virtual void didChangeTitle(WebCore::DocumentLoader*) override; - - virtual void committedLoad(WebCore::DocumentLoader*, const char*, int) override; - virtual void finishedLoading(WebCore::DocumentLoader*) override; - - virtual void updateGlobalHistory() override; - virtual void updateGlobalHistoryRedirectLinks() override; - - virtual bool shouldGoToHistoryItem(WebCore::HistoryItem*) const override; - - virtual void didDisplayInsecureContent() override; - virtual void didRunInsecureContent(WebCore::SecurityOrigin*, const WebCore::URL&) override; - virtual void didDetectXSS(const WebCore::URL&, bool didBlockEntirePage) override; - - virtual WebCore::ResourceError cancelledError(const WebCore::ResourceRequest&) override; - virtual WebCore::ResourceError blockedError(const WebCore::ResourceRequest&) override; - virtual WebCore::ResourceError cannotShowURLError(const WebCore::ResourceRequest&) override; - virtual WebCore::ResourceError interruptedForPolicyChangeError(const WebCore::ResourceRequest&) override; - - virtual WebCore::ResourceError cannotShowMIMETypeError(const WebCore::ResourceResponse&) override; - virtual WebCore::ResourceError fileDoesNotExistError(const WebCore::ResourceResponse&) override; - virtual WebCore::ResourceError pluginWillHandleLoadError(const WebCore::ResourceResponse&) override; - - virtual bool shouldFallBack(const WebCore::ResourceError&) override; - - virtual bool canHandleRequest(const WebCore::ResourceRequest&) const override; - virtual bool canShowMIMEType(const String& MIMEType) const override; - virtual bool canShowMIMETypeAsHTML(const String& MIMEType) const override; - virtual bool representationExistsForURLScheme(const String& URLScheme) const override; - virtual String generatedMIMETypeForURLScheme(const String& URLScheme) const override; - - virtual void frameLoadCompleted() override; - virtual void saveViewStateToItem(WebCore::HistoryItem*) override; - virtual void restoreViewState() override; - virtual void provisionalLoadStarted() override; - virtual void didFinishLoad() override; - virtual void prepareForDataSourceReplacement() override; - - virtual PassRefPtr<WebCore::DocumentLoader> createDocumentLoader(const WebCore::ResourceRequest&, const WebCore::SubstituteData&); - virtual void setTitle(const WebCore::StringWithDirection&, const WebCore::URL&) override; - - virtual String userAgent(const WebCore::URL&) override; - - virtual void savePlatformDataToCachedFrame(WebCore::CachedFrame*) override; - virtual void transitionToCommittedFromCachedFrame(WebCore::CachedFrame*) override; -#if PLATFORM(IOS) - virtual void didRestoreFrameHierarchyForCachedFrame() override; + void dispatchDidReceiveResponse(WebCore::DocumentLoader*, unsigned long identifier, const WebCore::ResourceResponse&) final; + void dispatchDidReceiveContentLength(WebCore::DocumentLoader*, unsigned long identifier, int dataLength) final; + void dispatchDidFinishLoading(WebCore::DocumentLoader*, unsigned long identifier) final; + void dispatchDidFailLoading(WebCore::DocumentLoader*, unsigned long identifier, const WebCore::ResourceError&) final; + bool dispatchDidLoadResourceFromMemoryCache(WebCore::DocumentLoader*, const WebCore::ResourceRequest&, const WebCore::ResourceResponse&, int length) final; +#if ENABLE(DATA_DETECTION) + void dispatchDidFinishDataDetection(NSArray *detectionResults) final; #endif - virtual void transitionToCommittedForNewPage() override; + + void dispatchDidDispatchOnloadEvents() final; + void dispatchDidReceiveServerRedirectForProvisionalLoad() final; + void dispatchDidChangeProvisionalURL() final; + void dispatchDidCancelClientRedirect() final; + void dispatchWillPerformClientRedirect(const WebCore::URL&, double interval, double fireDate) final; + void dispatchDidChangeLocationWithinPage() final; + void dispatchDidPushStateWithinPage() final; + void dispatchDidReplaceStateWithinPage() final; + void dispatchDidPopStateWithinPage() final; + void dispatchWillClose() final; + void dispatchDidReceiveIcon() final; + void dispatchDidStartProvisionalLoad() final; + void dispatchDidReceiveTitle(const WebCore::StringWithDirection&) final; + void dispatchDidCommitLoad(std::optional<WebCore::HasInsecureContent>) final; + void dispatchDidFailProvisionalLoad(const WebCore::ResourceError&) final; + void dispatchDidFailLoad(const WebCore::ResourceError&) final; + void dispatchDidFinishDocumentLoad() final; + void dispatchDidFinishLoad() final; - virtual void didSaveToPageCache() override; - virtual void didRestoreFromPageCache() override; + void dispatchDidReachLayoutMilestone(WebCore::LayoutMilestones) final; + void dispatchDidLayout() final; - virtual void dispatchDidBecomeFrameset(bool) override; + WebCore::Frame* dispatchCreatePage(const WebCore::NavigationAction&) final; + void dispatchShow() final; + + void dispatchDecidePolicyForResponse(const WebCore::ResourceResponse&, const WebCore::ResourceRequest&, WebCore::FramePolicyFunction) final; + void dispatchDecidePolicyForNewWindowAction(const WebCore::NavigationAction&, const WebCore::ResourceRequest&, WebCore::FormState*, const String& frameName, WebCore::FramePolicyFunction) final; + void dispatchDecidePolicyForNavigationAction(const WebCore::NavigationAction&, const WebCore::ResourceRequest&, WebCore::FormState*, WebCore::FramePolicyFunction) final; + void cancelPolicyCheck() final; + + void dispatchUnableToImplementPolicy(const WebCore::ResourceError&) final; + + void dispatchWillSendSubmitEvent(Ref<WebCore::FormState>&&) final; + void dispatchWillSubmitForm(WebCore::FormState&, WebCore::FramePolicyFunction) final; + + void revertToProvisionalState(WebCore::DocumentLoader*) final; + void setMainDocumentError(WebCore::DocumentLoader*, const WebCore::ResourceError&) final; + + void setMainFrameDocumentReady(bool) final; + + void startDownload(const WebCore::ResourceRequest&, const String& suggestedName = String()) final; + + void willChangeTitle(WebCore::DocumentLoader*) final; + void didChangeTitle(WebCore::DocumentLoader*) final; + + void willReplaceMultipartContent() final; + void didReplaceMultipartContent() final; - virtual bool canCachePage() const override { return true; } - virtual void convertMainResourceLoadToDownload(WebCore::DocumentLoader*, const WebCore::ResourceRequest&, const WebCore::ResourceResponse&) override; + void committedLoad(WebCore::DocumentLoader*, const char*, int) final; + void finishedLoading(WebCore::DocumentLoader*) final; - virtual PassRefPtr<WebCore::Frame> createFrame(const WebCore::URL& url, const String& name, WebCore::HTMLFrameOwnerElement* ownerElement, - const String& referrer, bool allowsScrolling, int marginWidth, int marginHeight) override; + void updateGlobalHistory() final; + void updateGlobalHistoryRedirectLinks() final; - virtual PassRefPtr<WebCore::Widget> createPlugin(const WebCore::IntSize&, WebCore::HTMLPlugInElement*, const WebCore::URL&, const Vector<String>&, const Vector<String>&, const String&, bool loadManually) override; - virtual void recreatePlugin(WebCore::Widget*) override; - virtual void redirectDataToPlugin(WebCore::Widget* pluginWidget) override; + bool shouldGoToHistoryItem(WebCore::HistoryItem*) const final; + + void didDisplayInsecureContent() final; + void didRunInsecureContent(WebCore::SecurityOrigin&, const WebCore::URL&) final; + void didDetectXSS(const WebCore::URL&, bool didBlockEntirePage) final; + + WebCore::ResourceError cancelledError(const WebCore::ResourceRequest&) final; + WebCore::ResourceError blockedError(const WebCore::ResourceRequest&) final; + WebCore::ResourceError blockedByContentBlockerError(const WebCore::ResourceRequest&) final; + WebCore::ResourceError cannotShowURLError(const WebCore::ResourceRequest&) final; + WebCore::ResourceError interruptedForPolicyChangeError(const WebCore::ResourceRequest&) final; +#if ENABLE(CONTENT_FILTERING) + WebCore::ResourceError blockedByContentFilterError(const WebCore::ResourceRequest&) final; +#endif -#if ENABLE(WEBGL) - virtual WebCore::WebGLLoadPolicy webGLPolicyForURL(const String&) const override; -#endif // ENABLE(WEBGL) + WebCore::ResourceError cannotShowMIMETypeError(const WebCore::ResourceResponse&) final; + WebCore::ResourceError fileDoesNotExistError(const WebCore::ResourceResponse&) final; + WebCore::ResourceError pluginWillHandleLoadError(const WebCore::ResourceResponse&) final; + + bool shouldFallBack(const WebCore::ResourceError&) final; + + bool canHandleRequest(const WebCore::ResourceRequest&) const final; + bool canShowMIMEType(const String& MIMEType) const final; + bool canShowMIMETypeAsHTML(const String& MIMEType) const final; + bool representationExistsForURLScheme(const String& URLScheme) const final; + String generatedMIMETypeForURLScheme(const String& URLScheme) const final; + + void frameLoadCompleted() final; + void saveViewStateToItem(WebCore::HistoryItem&) final; + void restoreViewState() final; + void provisionalLoadStarted() final; + void didFinishLoad() final; + void prepareForDataSourceReplacement() final; + + Ref<WebCore::DocumentLoader> createDocumentLoader(const WebCore::ResourceRequest&, const WebCore::SubstituteData&) final; + void updateCachedDocumentLoader(WebCore::DocumentLoader&) final; - virtual PassRefPtr<WebCore::Widget> createJavaAppletWidget(const WebCore::IntSize&, WebCore::HTMLAppletElement*, const WebCore::URL& baseURL, const Vector<String>& paramNames, const Vector<String>& paramValues) override; + void setTitle(const WebCore::StringWithDirection&, const WebCore::URL&) final; -#if ENABLE(PLUGIN_PROXY_FOR_VIDEO) - virtual PassRefPtr<WebCore::Widget> createMediaPlayerProxyPlugin(const WebCore::IntSize&, WebCore::HTMLMediaElement*, const WebCore::URL&, const Vector<String>&, const Vector<String>&, const String&) override; - virtual void hideMediaPlayerProxyPlugin(WebCore::Widget*) override; - virtual void showMediaPlayerProxyPlugin(WebCore::Widget*) override; + String userAgent(const WebCore::URL&) final; + + String overrideContentSecurityPolicy() const final; + + void savePlatformDataToCachedFrame(WebCore::CachedFrame*) final; + void transitionToCommittedFromCachedFrame(WebCore::CachedFrame*) final; +#if PLATFORM(IOS) + void didRestoreFrameHierarchyForCachedFrame() final; #endif + void transitionToCommittedForNewPage() final; + + void didSaveToPageCache() final; + void didRestoreFromPageCache() final; + + void dispatchDidBecomeFrameset(bool) final; + + bool canCachePage() const final; + void convertMainResourceLoadToDownload(WebCore::DocumentLoader*, WebCore::SessionID, const WebCore::ResourceRequest&, const WebCore::ResourceResponse&) final; - virtual WebCore::ObjectContentType objectContentType(const WebCore::URL&, const String& mimeType, bool shouldPreferPlugInsForImages) override; - virtual String overrideMediaType() const override; + RefPtr<WebCore::Frame> createFrame(const WebCore::URL&, const String& name, WebCore::HTMLFrameOwnerElement&, const String& referrer, bool allowsScrolling, int marginWidth, int marginHeight) final; + + RefPtr<WebCore::Widget> createPlugin(const WebCore::IntSize&, WebCore::HTMLPlugInElement&, const WebCore::URL&, const Vector<String>&, const Vector<String>&, const String&, bool loadManually) final; + void recreatePlugin(WebCore::Widget*) final; + void redirectDataToPlugin(WebCore::Widget&) final; + +#if ENABLE(WEBGL) + WebCore::WebGLLoadPolicy webGLPolicyForURL(const String&) const final; + WebCore::WebGLLoadPolicy resolveWebGLPolicyForURL(const String&) const final; +#endif // ENABLE(WEBGL) + + RefPtr<WebCore::Widget> createJavaAppletWidget(const WebCore::IntSize&, WebCore::HTMLAppletElement&, const WebCore::URL& baseURL, const Vector<String>& paramNames, const Vector<String>& paramValues) final; + + WebCore::ObjectContentType objectContentType(const WebCore::URL&, const String& mimeType) final; + String overrideMediaType() const final; - virtual void dispatchDidClearWindowObjectInWorld(WebCore::DOMWrapperWorld&) override; + void dispatchDidClearWindowObjectInWorld(WebCore::DOMWrapperWorld&) final; - virtual void dispatchGlobalObjectAvailable(WebCore::DOMWrapperWorld&) override; - virtual void dispatchWillDisconnectDOMWindowExtensionFromGlobalObject(WebCore::DOMWindowExtension*) override; - virtual void dispatchDidReconnectDOMWindowExtensionToGlobalObject(WebCore::DOMWindowExtension*) override; - virtual void dispatchWillDestroyGlobalObjectForDOMWindowExtension(WebCore::DOMWindowExtension*) override; + void dispatchGlobalObjectAvailable(WebCore::DOMWrapperWorld&) final; + void dispatchWillDisconnectDOMWindowExtensionFromGlobalObject(WebCore::DOMWindowExtension*) final; + void dispatchDidReconnectDOMWindowExtensionToGlobalObject(WebCore::DOMWindowExtension*) final; + void dispatchWillDestroyGlobalObjectForDOMWindowExtension(WebCore::DOMWindowExtension*) final; - virtual void registerForIconNotification(bool listen = true) override; + void registerForIconNotification(bool listen = true) final; -#if PLATFORM(MAC) - virtual RemoteAXObjectRef accessibilityRemoteObject() override; +#if PLATFORM(COCOA) + RemoteAXObjectRef accessibilityRemoteObject() final; - virtual NSCachedURLResponse* willCacheResponse(WebCore::DocumentLoader*, unsigned long identifier, NSCachedURLResponse*) const override; + NSCachedURLResponse* willCacheResponse(WebCore::DocumentLoader*, unsigned long identifier, NSCachedURLResponse*) const final; + + NSDictionary *dataDetectionContext() final; #endif - virtual bool shouldAlwaysUsePluginDocument(const String& /*mimeType*/) const override; + bool shouldAlwaysUsePluginDocument(const String& /*mimeType*/) const final; + + void didChangeScrollOffset() final; + + bool allowScript(bool enabledPerSettings) final; - virtual void didChangeScrollOffset() override; + bool shouldForceUniversalAccessFromLocalURL(const WebCore::URL&) final; - virtual bool allowScript(bool enabledPerSettings) override; + Ref<WebCore::FrameNetworkingContext> createNetworkingContext() final; - virtual bool shouldForceUniversalAccessFromLocalURL(const WebCore::URL&) override; +#if ENABLE(REQUEST_AUTOCOMPLETE) + void didRequestAutocomplete(Ref<WebCore::FormState>&&) final; +#endif - virtual PassRefPtr<WebCore::FrameNetworkingContext> createNetworkingContext() override; + void forcePageTransitionIfNeeded() final; - virtual void forcePageTransitionIfNeeded() override; +#if USE(QUICK_LOOK) + RefPtr<WebCore::QuickLookHandleClient> createQuickLookHandleClient(const String& fileName, const String& uti) final; +#endif + +#if ENABLE(CONTENT_FILTERING) + void contentFilterDidBlockLoad(WebCore::ContentFilterUnblockHandler) final; +#endif + + void prefetchDNS(const String&) final; + + void didRestoreScrollPosition() final; + + bool useIconLoadingClient() final; + void getLoadDecisionForIcon(const WebCore::LinkIcon&, uint64_t callbackID) final; + void finishedLoadingIcon(uint64_t loadIdentifier, WebCore::SharedBuffer*) final; WebFrame* m_frame; RefPtr<PluginView> m_pluginView; bool m_hasSentResponseToPluginView; - bool m_didCompletePageTransitionAlready; + bool m_didCompletePageTransition; + bool m_frameHasCustomContentProvider; bool m_frameCameFromPageCache; + bool m_useIconLoadingClient { false }; }; // As long as EmptyFrameLoaderClient exists in WebCore, this can return 0. @@ -241,5 +278,3 @@ inline WebFrameLoaderClient* toWebFrameLoaderClient(WebCore::FrameLoaderClient& } } // namespace WebKit - -#endif // WebFrameLoaderClient_h |