18e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*
22bde8e466a4451c7319e3a072d118917957d6554Steve Block * Copyright (C) 2010, 2011 Apple Inc. All rights reserved.
38e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
48e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Redistribution and use in source and binary forms, with or without
58e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * modification, are permitted provided that the following conditions
68e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * are met:
765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * 1. Redistributions of source code must retain the above copyright
865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch *    notice, this list of conditions and the following disclaimer.
965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * 2. Redistributions in binary form must reproduce the above copyright
1065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch *    notice, this list of conditions and the following disclaimer in the
1165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch *    documentation and/or other materials provided with the distribution.
128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
1365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
1465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
1565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
1665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
1765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
1865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
1965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
2065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
2165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
2265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
2365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * THE POSSIBILITY OF SUCH DAMAGE.
248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
2665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#ifndef WebFrameLoaderClient_h
2765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#define WebFrameLoaderClient_h
2865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
2965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#include <WebCore/FrameLoaderClient.h>
308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
3165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochnamespace WebKit {
3265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
3365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochclass PluginView;
3465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochclass WebFrame;
3565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectclass WebFrameLoaderClient : public WebCore::FrameLoaderClient {
378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectpublic:
388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebFrameLoaderClient(WebFrame*);
3965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    ~WebFrameLoaderClient();
408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
4165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    WebFrame* webFrame() const { return m_frame; }
428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
4365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    bool frameHasCustomRepresentation() const { return m_frameHasCustomRepresentation; }
448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectprivate:
4665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    virtual void frameLoaderDestroyed();
478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual bool hasHTMLView() const;
4965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    virtual bool hasWebView() const;
5065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
5165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    virtual void makeRepresentation(WebCore::DocumentLoader*);
528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void forceLayout();
538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void forceLayoutForNonHTML();
5465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void setCopiesOnScroll();
5665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void detachedFromParent2();
588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void detachedFromParent3();
5965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void assignIdentifierToInitialRequest(unsigned long identifier, WebCore::DocumentLoader*, const WebCore::ResourceRequest&);
6165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void dispatchWillSendRequest(WebCore::DocumentLoader*, unsigned long identifier, WebCore::ResourceRequest&, const WebCore::ResourceResponse& redirectResponse);
63635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project    virtual bool shouldUseCredentialStorage(WebCore::DocumentLoader*, unsigned long identifier);
648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void dispatchDidReceiveAuthenticationChallenge(WebCore::DocumentLoader*, unsigned long identifier, const WebCore::AuthenticationChallenge&);
6565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    virtual void dispatchDidCancelAuthenticationChallenge(WebCore::DocumentLoader*, unsigned long identifier, const WebCore::AuthenticationChallenge&);
6621939df44de1705786c545cd1bf519d47250322dBen Murdoch#if USE(PROTECTION_SPACE_AUTH_CALLBACK)
6721939df44de1705786c545cd1bf519d47250322dBen Murdoch    virtual bool canAuthenticateAgainstProtectionSpace(WebCore::DocumentLoader*, unsigned long identifier, const WebCore::ProtectionSpace&);
6821939df44de1705786c545cd1bf519d47250322dBen Murdoch#endif
698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void dispatchDidReceiveResponse(WebCore::DocumentLoader*, unsigned long identifier, const WebCore::ResourceResponse&);
702daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch    virtual void dispatchDidReceiveContentLength(WebCore::DocumentLoader*, unsigned long identifier, int dataLength);
718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void dispatchDidFinishLoading(WebCore::DocumentLoader*, unsigned long identifier);
728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void dispatchDidFailLoading(WebCore::DocumentLoader*, unsigned long identifier, const WebCore::ResourceError&);
7365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    virtual bool dispatchDidLoadResourceFromMemoryCache(WebCore::DocumentLoader*, const WebCore::ResourceRequest&, const WebCore::ResourceResponse&, int length);
7465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    virtual void dispatchDidLoadResourceByXMLHttpRequest(unsigned long identifier, const WTF::String&);
7565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void dispatchDidHandleOnloadEvents();
778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void dispatchDidReceiveServerRedirectForProvisionalLoad();
788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void dispatchDidCancelClientRedirect();
798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void dispatchWillPerformClientRedirect(const WebCore::KURL&, double interval, double fireDate);
808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void dispatchDidChangeLocationWithinPage();
81643ca7872b450ea4efacab6188849e5aac2ba161Steve Block    virtual void dispatchDidPushStateWithinPage();
82643ca7872b450ea4efacab6188849e5aac2ba161Steve Block    virtual void dispatchDidReplaceStateWithinPage();
83643ca7872b450ea4efacab6188849e5aac2ba161Steve Block    virtual void dispatchDidPopStateWithinPage();
848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void dispatchWillClose();
858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void dispatchDidReceiveIcon();
868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void dispatchDidStartProvisionalLoad();
872daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch    virtual void dispatchDidReceiveTitle(const WebCore::StringWithDirection&);
8821939df44de1705786c545cd1bf519d47250322dBen Murdoch    virtual void dispatchDidChangeIcons();
898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void dispatchDidCommitLoad();
908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void dispatchDidFailProvisionalLoad(const WebCore::ResourceError&);
918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void dispatchDidFailLoad(const WebCore::ResourceError&);
928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void dispatchDidFinishDocumentLoad();
938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void dispatchDidFinishLoad();
948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void dispatchDidFirstLayout();
95635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project    virtual void dispatchDidFirstVisuallyNonEmptyLayout();
9665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
97e14391e94c850b8bd03680c23b38978db68687a8John Reck    virtual WebCore::Frame* dispatchCreatePage(const WebCore::NavigationAction&);
988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void dispatchShow();
9965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
10081bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch    virtual void dispatchDecidePolicyForResponse(WebCore::FramePolicyFunction, const WebCore::ResourceResponse&, const WebCore::ResourceRequest&);
10165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    virtual void dispatchDecidePolicyForNewWindowAction(WebCore::FramePolicyFunction, const WebCore::NavigationAction&, const WebCore::ResourceRequest&, PassRefPtr<WebCore::FormState>, const String& frameName);
10265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    virtual void dispatchDecidePolicyForNavigationAction(WebCore::FramePolicyFunction, const WebCore::NavigationAction&, const WebCore::ResourceRequest&, PassRefPtr<WebCore::FormState>);
1038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void cancelPolicyCheck();
10465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
1058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void dispatchUnableToImplementPolicy(const WebCore::ResourceError&);
10665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
10721939df44de1705786c545cd1bf519d47250322dBen Murdoch    virtual void dispatchWillSendSubmitEvent(WebCore::HTMLFormElement*) { }
1088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void dispatchWillSubmitForm(WebCore::FramePolicyFunction, PassRefPtr<WebCore::FormState>);
10965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
1108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void dispatchDidLoadMainResource(WebCore::DocumentLoader*);
1118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void revertToProvisionalState(WebCore::DocumentLoader*);
1128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void setMainDocumentError(WebCore::DocumentLoader*, const WebCore::ResourceError&);
11365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
11465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    // Maybe these should go into a ProgressTrackerClient some day
1158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void willChangeEstimatedProgress();
1168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void didChangeEstimatedProgress();
1178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void postProgressStartedNotification();
1188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void postProgressEstimateChangedNotification();
1198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void postProgressFinishedNotification();
1208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void setMainFrameDocumentReady(bool);
12265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
1238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void startDownload(const WebCore::ResourceRequest&);
12465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
1258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void willChangeTitle(WebCore::DocumentLoader*);
1268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void didChangeTitle(WebCore::DocumentLoader*);
12765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
1288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void committedLoad(WebCore::DocumentLoader*, const char*, int);
1298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void finishedLoading(WebCore::DocumentLoader*);
13065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
131635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project    virtual void updateGlobalHistory();
132563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark    virtual void updateGlobalHistoryRedirectLinks();
13365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
1348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual bool shouldGoToHistoryItem(WebCore::HistoryItem*) const;
13581bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch    virtual bool shouldStopLoadingForHistoryItem(WebCore::HistoryItem*) const;
136ed3dcbaa89ede50bb054f63aa1847ae6240fa70dBen Murdoch    virtual void dispatchDidAddBackForwardItem(WebCore::HistoryItem*) const;
137ed3dcbaa89ede50bb054f63aa1847ae6240fa70dBen Murdoch    virtual void dispatchDidRemoveBackForwardItem(WebCore::HistoryItem*) const;
138ed3dcbaa89ede50bb054f63aa1847ae6240fa70dBen Murdoch    virtual void dispatchDidChangeBackForwardIndex() const;
1398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
140231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block    virtual void didDisplayInsecureContent();
1412fc2651226baac27029e38c9d6ef883fa32084dbSteve Block    virtual void didRunInsecureContent(WebCore::SecurityOrigin*, const WebCore::KURL&);
142231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
1438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual WebCore::ResourceError cancelledError(const WebCore::ResourceRequest&);
1448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual WebCore::ResourceError blockedError(const WebCore::ResourceRequest&);
1458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual WebCore::ResourceError cannotShowURLError(const WebCore::ResourceRequest&);
1468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual WebCore::ResourceError interruptForPolicyChangeError(const WebCore::ResourceRequest&);
14765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
1488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual WebCore::ResourceError cannotShowMIMETypeError(const WebCore::ResourceResponse&);
1498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual WebCore::ResourceError fileDoesNotExistError(const WebCore::ResourceResponse&);
1508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual WebCore::ResourceError pluginWillHandleLoadError(const WebCore::ResourceResponse&);
15165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
1528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual bool shouldFallBack(const WebCore::ResourceError&);
1538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual bool canHandleRequest(const WebCore::ResourceRequest&) const;
15565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    virtual bool canShowMIMEType(const String& MIMEType) const;
15665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    virtual bool canShowMIMETypeAsHTML(const String& MIMEType) const;
15765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    virtual bool representationExistsForURLScheme(const String& URLScheme) const;
15865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    virtual String generatedMIMETypeForURLScheme(const String& URLScheme) const;
15965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
1608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void frameLoadCompleted();
1618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void saveViewStateToItem(WebCore::HistoryItem*);
1628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void restoreViewState();
1638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void provisionalLoadStarted();
1648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void didFinishLoad();
1658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void prepareForDataSourceReplacement();
16665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
1678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual PassRefPtr<WebCore::DocumentLoader> createDocumentLoader(const WebCore::ResourceRequest&, const WebCore::SubstituteData&);
1682daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch    virtual void setTitle(const WebCore::StringWithDirection&, const WebCore::KURL&);
16965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
17065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    virtual String userAgent(const WebCore::KURL&);
17165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
17265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    virtual void savePlatformDataToCachedFrame(WebCore::CachedFrame*);
17365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    virtual void transitionToCommittedFromCachedFrame(WebCore::CachedFrame*);
17465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    virtual void transitionToCommittedForNewPage();
17565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
17665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    virtual void didSaveToPageCache();
17765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    virtual void didRestoreFromPageCache();
1788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
17965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    virtual void dispatchDidBecomeFrameset(bool);
1808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
18165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    virtual bool canCachePage() const;
18265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    virtual void download(WebCore::ResourceHandle*, const WebCore::ResourceRequest&, const WebCore::ResourceRequest&, const WebCore::ResourceResponse&);
1838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
18465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    virtual PassRefPtr<WebCore::Frame> createFrame(const WebCore::KURL& url, const String& name, WebCore::HTMLFrameOwnerElement* ownerElement,
18565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch                                          const String& referrer, bool allowsScrolling, int marginWidth, int marginHeight);
18665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    virtual void didTransferChildFrameToNewDocument(WebCore::Page*);
18765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    virtual void transferLoadingResourceFromPage(unsigned long, WebCore::DocumentLoader*, const WebCore::ResourceRequest&, WebCore::Page*);
1888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
18965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    virtual PassRefPtr<WebCore::Widget> createPlugin(const WebCore::IntSize&, WebCore::HTMLPlugInElement*, const WebCore::KURL&, const Vector<String>&, const Vector<String>&, const String&, bool loadManually);
19065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    virtual void redirectDataToPlugin(WebCore::Widget* pluginWidget);
191967717af5423377c967781471ee106e2bb4e11c8Ben Murdoch
19265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    virtual PassRefPtr<WebCore::Widget> createJavaAppletWidget(const WebCore::IntSize&, WebCore::HTMLAppletElement*, const WebCore::KURL& baseURL, const Vector<String>& paramNames, const Vector<String>& paramValues);
1938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1942bde8e466a4451c7319e3a072d118917957d6554Steve Block    virtual WebCore::ObjectContentType objectContentType(const WebCore::KURL&, const String& mimeType, bool shouldPreferPlugInsForImages);
19565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    virtual String overrideMediaType() const;
1968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
19765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    virtual void dispatchDidClearWindowObjectInWorld(WebCore::DOMWrapperWorld*);
1988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
19965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    virtual void documentElementAvailable();
20065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    virtual void didPerformFirstNavigation() const; // "Navigation" here means a transition from one page to another that ends up in the back/forward list.
20165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
20265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    virtual void registerForIconNotification(bool listen = true);
20365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
20465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#if PLATFORM(MAC)
20565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    virtual RemoteAXObjectRef accessibilityRemoteObject();
20665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
20765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#if ENABLE(MAC_JAVA_BRIDGE)
2088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual jobject javaApplet(NSView*);
2098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif
21065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    virtual NSCachedURLResponse* willCacheResponse(WebCore::DocumentLoader*, unsigned long identifier, NSCachedURLResponse*) const;
21165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#endif
21265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#if USE(CFNETWORK)
21365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    virtual bool shouldCacheResponse(WebCore::DocumentLoader*, unsigned long identifier, const WebCore::ResourceResponse&, const unsigned char* data, unsigned long long length);
214cad810f21b803229eb11403f9209855525a25d57Steve Block#endif
215cad810f21b803229eb11403f9209855525a25d57Steve Block
21665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    virtual bool shouldUsePluginDocument(const String& /*mimeType*/) const;
21781bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch
21881bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch    virtual void didChangeScrollOffset();
21981bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch
2205abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick    virtual PassRefPtr<WebCore::FrameNetworkingContext> createNetworkingContext();
2215abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick
22265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    WebFrame* m_frame;
22365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    RefPtr<PluginView> m_pluginView;
22465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    bool m_hasSentResponseToPluginView;
22565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    bool m_frameHasCustomRepresentation;
2268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project};
22765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
22865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch} // namespace WebKit
22965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
23065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#endif // WebFrameLoaderClient_h
231