18e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*
22bde8e466a4451c7319e3a072d118917957d6554Steve Block * Copyright (C) 2006, 2007, 2008, 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:
78e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
88e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 1.  Redistributions of source code must retain the above copyright
98e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *     notice, this list of conditions and the following disclaimer.
108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 2.  Redistributions in binary form must reproduce the above copyright
118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *     notice, this list of conditions and the following disclaimer in the
128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *     documentation and/or other materials provided with the distribution.
138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 3.  Neither the name of Apple Computer, Inc. ("Apple") nor the names of
148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *     its contributors may be used to endorse or promote products derived
158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *     from this software without specific prior written permission.
168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#import <WebCore/FrameLoaderClient.h>
308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#import <WebCore/Timer.h>
318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#import <wtf/Forward.h>
328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#import <wtf/HashMap.h>
338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#import <wtf/RetainPtr.h>
348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project@class WebDownload;
368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project@class WebFrame;
378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project@class WebFramePolicyListener;
388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project@class WebHistoryItem;
398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project@class WebResource;
408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectnamespace WebCore {
428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    class AuthenticationChallenge;
43635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project    class CachedFrame;
448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    class HistoryItem;
4521939df44de1705786c545cd1bf519d47250322dBen Murdoch    class ProtectionSpace;
468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    class ResourceLoader;
478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    class ResourceRequest;
488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projecttypedef HashMap<RefPtr<WebCore::ResourceLoader>, RetainPtr<WebResource> > ResourceMap;
518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectclass WebFrameLoaderClient : public WebCore::FrameLoaderClient {
538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectpublic:
548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebFrameLoaderClient(WebFrame*);
558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebFrame* webFrame() const { return m_webFrame.get(); }
578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void frameLoaderDestroyed();
598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    void receivedPolicyDecison(WebCore::PolicyAction);
608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectprivate:
628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual bool hasWebView() const; // mainly for assertions
638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void makeRepresentation(WebCore::DocumentLoader*);
658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual bool hasHTMLView() const;
668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void forceLayout();
678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void forceLayoutForNonHTML();
688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void setCopiesOnScroll();
708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void detachedFromParent2();
728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void detachedFromParent3();
738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void download(WebCore::ResourceHandle*, const WebCore::ResourceRequest&, const WebCore::ResourceRequest&, const WebCore::ResourceResponse&);
758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void assignIdentifierToInitialRequest(unsigned long identifier, WebCore::DocumentLoader*, const WebCore::ResourceRequest&);
778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void dispatchWillSendRequest(WebCore::DocumentLoader*, unsigned long identifier, WebCore::ResourceRequest&, const WebCore::ResourceResponse& redirectResponse);
79635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project    virtual bool shouldUseCredentialStorage(WebCore::DocumentLoader*, unsigned long identifier);
808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void dispatchDidReceiveAuthenticationChallenge(WebCore::DocumentLoader*, unsigned long identifier, const WebCore::AuthenticationChallenge&);
818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void dispatchDidCancelAuthenticationChallenge(WebCore::DocumentLoader*, unsigned long identifier, const WebCore::AuthenticationChallenge&);
8221939df44de1705786c545cd1bf519d47250322dBen Murdoch#if USE(PROTECTION_SPACE_AUTH_CALLBACK)
8321939df44de1705786c545cd1bf519d47250322dBen Murdoch    virtual bool canAuthenticateAgainstProtectionSpace(WebCore::DocumentLoader*, unsigned long identifier, const WebCore::ProtectionSpace&);
8421939df44de1705786c545cd1bf519d47250322dBen Murdoch#endif
858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void dispatchDidReceiveResponse(WebCore::DocumentLoader*, unsigned long identifier, const WebCore::ResourceResponse&);
862daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch    virtual void dispatchDidReceiveContentLength(WebCore::DocumentLoader*, unsigned long identifier, int dataLength);
878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void dispatchDidFinishLoading(WebCore::DocumentLoader*, unsigned long identifier);
888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void dispatchDidFailLoading(WebCore::DocumentLoader*, unsigned long identifier, const WebCore::ResourceError&);
898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual NSCachedURLResponse* willCacheResponse(WebCore::DocumentLoader*, unsigned long identifier, NSCachedURLResponse*) const;
918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void dispatchDidHandleOnloadEvents();
938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void dispatchDidReceiveServerRedirectForProvisionalLoad();
948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void dispatchDidCancelClientRedirect();
958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void dispatchWillPerformClientRedirect(const WebCore::KURL&, double interval, double fireDate);
968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void dispatchDidChangeLocationWithinPage();
97643ca7872b450ea4efacab6188849e5aac2ba161Steve Block    virtual void dispatchDidPushStateWithinPage();
98643ca7872b450ea4efacab6188849e5aac2ba161Steve Block    virtual void dispatchDidReplaceStateWithinPage();
99643ca7872b450ea4efacab6188849e5aac2ba161Steve Block    virtual void dispatchDidPopStateWithinPage();
100643ca7872b450ea4efacab6188849e5aac2ba161Steve Block
1018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void dispatchWillClose();
1028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void dispatchDidReceiveIcon();
1038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void dispatchDidStartProvisionalLoad();
1042daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch    virtual void dispatchDidReceiveTitle(const WebCore::StringWithDirection&);
10521939df44de1705786c545cd1bf519d47250322dBen Murdoch    virtual void dispatchDidChangeIcons();
1068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void dispatchDidCommitLoad();
1078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void dispatchDidFailProvisionalLoad(const WebCore::ResourceError&);
1088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void dispatchDidFailLoad(const WebCore::ResourceError&);
1098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void dispatchDidFinishDocumentLoad();
1108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void dispatchDidFinishLoad();
1118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void dispatchDidFirstLayout();
112635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project    virtual void dispatchDidFirstVisuallyNonEmptyLayout();
1138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
114e14391e94c850b8bd03680c23b38978db68687a8John Reck    virtual WebCore::Frame* dispatchCreatePage(const WebCore::NavigationAction&);
1158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void dispatchShow();
1168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
11781bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch    virtual void dispatchDecidePolicyForResponse(WebCore::FramePolicyFunction,
11881bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch        const WebCore::ResourceResponse&, const WebCore::ResourceRequest&);
1198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void dispatchDecidePolicyForNewWindowAction(WebCore::FramePolicyFunction,
120dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch        const WebCore::NavigationAction&, const WebCore::ResourceRequest&, PassRefPtr<WebCore::FormState>, const WTF::String& frameName);
1218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void dispatchDecidePolicyForNavigationAction(WebCore::FramePolicyFunction,
1228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        const WebCore::NavigationAction&, const WebCore::ResourceRequest&, PassRefPtr<WebCore::FormState>);
1238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void cancelPolicyCheck();
1248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void dispatchUnableToImplementPolicy(const WebCore::ResourceError&);
1268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
12721939df44de1705786c545cd1bf519d47250322dBen Murdoch    virtual void dispatchWillSendSubmitEvent(WebCore::HTMLFormElement*) { }
1288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void dispatchWillSubmitForm(WebCore::FramePolicyFunction, PassRefPtr<WebCore::FormState>);
1298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void dispatchDidLoadMainResource(WebCore::DocumentLoader*);
1318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void revertToProvisionalState(WebCore::DocumentLoader*);
1328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void setMainDocumentError(WebCore::DocumentLoader*, const WebCore::ResourceError&);
1338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual bool dispatchDidLoadResourceFromMemoryCache(WebCore::DocumentLoader*, const WebCore::ResourceRequest&, const WebCore::ResourceResponse&, int length);
1348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void willChangeEstimatedProgress();
1368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void didChangeEstimatedProgress();
1378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void postProgressStartedNotification();
1388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void postProgressEstimateChangedNotification();
1398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void postProgressFinishedNotification();
1408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void setMainFrameDocumentReady(bool);
1428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void startDownload(const WebCore::ResourceRequest&);
1448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void willChangeTitle(WebCore::DocumentLoader*);
1468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void didChangeTitle(WebCore::DocumentLoader*);
1478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void committedLoad(WebCore::DocumentLoader*, const char*, int);
1498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void finishedLoading(WebCore::DocumentLoader*);
150635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project    virtual void updateGlobalHistory();
151563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark    virtual void updateGlobalHistoryRedirectLinks();
152635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project
1538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual bool shouldGoToHistoryItem(WebCore::HistoryItem*) const;
15481bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch    virtual bool shouldStopLoadingForHistoryItem(WebCore::HistoryItem*) const;
155ed3dcbaa89ede50bb054f63aa1847ae6240fa70dBen Murdoch    virtual void dispatchDidAddBackForwardItem(WebCore::HistoryItem*) const;
156ed3dcbaa89ede50bb054f63aa1847ae6240fa70dBen Murdoch    virtual void dispatchDidRemoveBackForwardItem(WebCore::HistoryItem*) const;
157ed3dcbaa89ede50bb054f63aa1847ae6240fa70dBen Murdoch    virtual void dispatchDidChangeBackForwardIndex() const;
15881bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch    virtual void updateGlobalHistoryItemForPage();
1598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
160231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block    virtual void didDisplayInsecureContent();
1612fc2651226baac27029e38c9d6ef883fa32084dbSteve Block    virtual void didRunInsecureContent(WebCore::SecurityOrigin*, const WebCore::KURL&);
162231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
1638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual WebCore::ResourceError cancelledError(const WebCore::ResourceRequest&);
1648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual WebCore::ResourceError blockedError(const WebCore::ResourceRequest&);
1658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual WebCore::ResourceError cannotShowURLError(const WebCore::ResourceRequest&);
1668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual WebCore::ResourceError interruptForPolicyChangeError(const WebCore::ResourceRequest&);
1678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual WebCore::ResourceError cannotShowMIMETypeError(const WebCore::ResourceResponse&);
1698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual WebCore::ResourceError fileDoesNotExistError(const WebCore::ResourceResponse&);
1708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual WebCore::ResourceError pluginWillHandleLoadError(const WebCore::ResourceResponse&);
1718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual bool shouldFallBack(const WebCore::ResourceError&);
1738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
174dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch    virtual WTF::String userAgent(const WebCore::KURL&);
1758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
176635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project    virtual void savePlatformDataToCachedFrame(WebCore::CachedFrame*);
177635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project    virtual void transitionToCommittedFromCachedFrame(WebCore::CachedFrame*);
1788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void transitionToCommittedForNewPage();
1798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
180cad810f21b803229eb11403f9209855525a25d57Steve Block    virtual void didSaveToPageCache();
181cad810f21b803229eb11403f9209855525a25d57Steve Block    virtual void didRestoreFromPageCache();
182cad810f21b803229eb11403f9209855525a25d57Steve Block
183e14391e94c850b8bd03680c23b38978db68687a8John Reck    virtual void dispatchDidBecomeFrameset(bool);
184e14391e94c850b8bd03680c23b38978db68687a8John Reck
1858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual bool canHandleRequest(const WebCore::ResourceRequest&) const;
186dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch    virtual bool canShowMIMEType(const WTF::String& MIMEType) const;
18768513a70bcd92384395513322f1b801e7bf9c729Steve Block    virtual bool canShowMIMETypeAsHTML(const WTF::String& MIMEType) const;
188dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch    virtual bool representationExistsForURLScheme(const WTF::String& URLScheme) const;
189dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch    virtual WTF::String generatedMIMETypeForURLScheme(const WTF::String& URLScheme) const;
1908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void frameLoadCompleted();
1928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void saveViewStateToItem(WebCore::HistoryItem*);
1938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void restoreViewState();
1948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void provisionalLoadStarted();
1958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void didFinishLoad();
1968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void prepareForDataSourceReplacement();
1978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual PassRefPtr<WebCore::DocumentLoader> createDocumentLoader(const WebCore::ResourceRequest&, const WebCore::SubstituteData&);
1988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1992daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch    virtual void setTitle(const WebCore::StringWithDirection&, const WebCore::KURL&);
2008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
201dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch    virtual PassRefPtr<WebCore::Frame> createFrame(const WebCore::KURL& url, const WTF::String& name, WebCore::HTMLFrameOwnerElement*,
202dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch                                        const WTF::String& referrer, bool allowsScrolling, int marginWidth, int marginHeight);
203bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen    virtual void didTransferChildFrameToNewDocument(WebCore::Page* oldPage);
204e14391e94c850b8bd03680c23b38978db68687a8John Reck    virtual void transferLoadingResourceFromPage(unsigned long identifier, WebCore::DocumentLoader*, const WebCore::ResourceRequest&, WebCore::Page* oldPage);
205dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch    virtual PassRefPtr<WebCore::Widget> createPlugin(const WebCore::IntSize&, WebCore::HTMLPlugInElement*, const WebCore::KURL&, const Vector<WTF::String>&,
206dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch                                          const Vector<WTF::String>&, const WTF::String&, bool);
2078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void redirectDataToPlugin(WebCore::Widget* pluginWidget);
2088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
2090bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch    virtual PassRefPtr<WebCore::Widget> createJavaAppletWidget(const WebCore::IntSize&, WebCore::HTMLAppletElement*, const WebCore::KURL& baseURL,
210dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch                                                    const Vector<WTF::String>& paramNames, const Vector<WTF::String>& paramValues);
2118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
212967717af5423377c967781471ee106e2bb4e11c8Ben Murdoch#if ENABLE(PLUGIN_PROXY_FOR_VIDEO)
213967717af5423377c967781471ee106e2bb4e11c8Ben Murdoch    virtual PassRefPtr<WebCore::Widget> createMediaPlayerProxyPlugin(const WebCore::IntSize&, WebCore::HTMLMediaElement*, const WebCore::KURL&,
214dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch                                        const Vector<WTF::String>&, const Vector<WTF::String>&, const WTF::String&);
215967717af5423377c967781471ee106e2bb4e11c8Ben Murdoch    virtual void hideMediaPlayerProxyPlugin(WebCore::Widget*);
216967717af5423377c967781471ee106e2bb4e11c8Ben Murdoch    virtual void showMediaPlayerProxyPlugin(WebCore::Widget*);
217967717af5423377c967781471ee106e2bb4e11c8Ben Murdoch#endif
218967717af5423377c967781471ee106e2bb4e11c8Ben Murdoch
2192bde8e466a4451c7319e3a072d118917957d6554Steve Block    virtual WebCore::ObjectContentType objectContentType(const WebCore::KURL&, const WTF::String& mimeType, bool shouldPreferPlugInsForImages);
220dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch    virtual WTF::String overrideMediaType() const;
2218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
222643ca7872b450ea4efacab6188849e5aac2ba161Steve Block    virtual void dispatchDidClearWindowObjectInWorld(WebCore::DOMWrapperWorld*);
223563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark    virtual void documentElementAvailable();
2248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void didPerformFirstNavigation() const;
2258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
2268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void registerForIconNotification(bool listen);
2278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
22821939df44de1705786c545cd1bf519d47250322dBen Murdoch#if ENABLE(JAVA_BRIDGE)
2298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual jobject javaApplet(NSView*);
2308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif
2318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
232cad810f21b803229eb11403f9209855525a25d57Steve Block#if PLATFORM(MAC)
233cad810f21b803229eb11403f9209855525a25d57Steve Block    virtual RemoteAXObjectRef accessibilityRemoteObject() { return 0; }
234cad810f21b803229eb11403f9209855525a25d57Steve Block#endif
235cad810f21b803229eb11403f9209855525a25d57Steve Block
2368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    void setOriginalURLForDownload(WebDownload *, const WebCore::ResourceRequest&) const;
2378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
2388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    RetainPtr<WebFramePolicyListener> setUpPolicyListener(WebCore::FramePolicyFunction);
2398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
2408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    NSDictionary *actionDictionary(const WebCore::NavigationAction&, PassRefPtr<WebCore::FormState>) const;
2418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
2428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual bool canCachePage() const;
24381bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch
2445abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick    virtual PassRefPtr<WebCore::FrameNetworkingContext> createNetworkingContext();
2455abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick
24681bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch    virtual bool shouldPaintBrokenImage(const WebCore::KURL&) const;
24781bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch
2488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    RetainPtr<WebFrame> m_webFrame;
2498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
2508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    RetainPtr<WebFramePolicyListener> m_policyListener;
2518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebCore::FramePolicyFunction m_policyFunction;
2528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project};
253