10bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch/*
20bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch * Copyright (C) 2006 Zack Rusin <zack@kde.org>
32bde8e466a4451c7319e3a072d118917957d6554Steve Block * Copyright (C) 2006, 2011 Apple Inc. All rights reserved.
40bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch * Copyright (C) 2007 Ryan Leavengood <leavengood@gmail.com> All rights reserved.
50bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch *
60bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch *
70bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch * Redistribution and use in source and binary forms, with or without
80bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch * modification, are permitted provided that the following conditions
90bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch * are met:
100bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch * 1. Redistributions of source code must retain the above copyright
110bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch *    notice, this list of conditions and the following disclaimer.
120bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch * 2. Redistributions in binary form must reproduce the above copyright
130bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch *    notice, this list of conditions and the following disclaimer in the
140bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch *    documentation and/or other materials provided with the distribution.
150bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch *
160bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
170bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
180bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
190bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
200bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
210bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
220bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
230bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
240bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
250bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
260bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
270bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch */
280bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch
290bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch#ifndef FrameLoaderClientHaiku_h
300bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch#define FrameLoaderClientHaiku_h
310bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch
320bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch#include "FrameLoader.h"
330bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch#include "FrameLoaderClient.h"
340bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch#include "KURL.h"
350bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch#include "ResourceResponse.h"
36dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch#include <wtf/Forward.h>
370bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch
380bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdochclass BMessenger;
390bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdochclass WebView;
400bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch
410bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdochnamespace WebCore {
420bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch    class AuthenticationChallenge;
430bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch    class DocumentLoader;
440bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch    class Element;
450bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch    class FormState;
460bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch    class NavigationAction;
470bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch    class ResourceLoader;
480bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch
490bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch    struct LoadErrorResetToken;
500bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch
510bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch    class FrameLoaderClientHaiku : public FrameLoaderClient {
520bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch    public:
530bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        FrameLoaderClientHaiku();
540bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        ~FrameLoaderClientHaiku() { }
550bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        void setFrame(Frame*);
560bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        void setWebView(WebView*);
570bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual void detachFrameLoader();
580bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch
590bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual bool hasWebView() const;
600bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch
610bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual bool hasBackForwardList() const;
620bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual void resetBackForwardList();
630bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch
640bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual bool provisionalItemIsTarget() const;
650bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch
660bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual void makeRepresentation(DocumentLoader*);
670bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual void forceLayout();
680bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual void forceLayoutForNonHTML();
690bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch
700bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual void updateHistoryForCommit();
710bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch
720bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual void updateHistoryForBackForwardNavigation();
730bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual void updateHistoryForReload();
740bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual void updateHistoryForStandardLoad();
750bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual void updateHistoryForInternalLoad();
760bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch
770bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual void updateHistoryAfterClientRedirect();
780bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch
790bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual void setCopiesOnScroll();
800bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch
810bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual LoadErrorResetToken* tokenForLoadErrorReset();
820bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual void resetAfterLoadError(LoadErrorResetToken*);
830bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual void doNotResetAfterLoadError(LoadErrorResetToken*);
840bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch
850bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual void willCloseDocument();
860bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch
870bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual void detachedFromParent2();
880bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual void detachedFromParent3();
890bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch
900bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual void frameLoaderDestroyed();
910bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch
920bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual bool canHandleRequest(const ResourceRequest&) const;
930bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch
940bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual void dispatchDidHandleOnloadEvents();
950bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual void dispatchDidReceiveServerRedirectForProvisionalLoad();
960bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual void dispatchDidCancelClientRedirect();
97643ca7872b450ea4efacab6188849e5aac2ba161Steve Block        virtual void dispatchWillPerformClientRedirect(const KURL&, double interval, double fireDate);
980bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual void dispatchDidChangeLocationWithinPage();
99643ca7872b450ea4efacab6188849e5aac2ba161Steve Block        virtual void dispatchDidPushStateWithinPage();
100643ca7872b450ea4efacab6188849e5aac2ba161Steve Block        virtual void dispatchDidReplaceStateWithinPage();
101643ca7872b450ea4efacab6188849e5aac2ba161Steve Block        virtual void dispatchDidPopStateWithinPage();
1020bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual void dispatchWillClose();
1030bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual void dispatchDidReceiveIcon();
1040bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual void dispatchDidStartProvisionalLoad();
1052daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch        virtual void dispatchDidReceiveTitle(const StringWithDirection& title);
1060bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual void dispatchDidCommitLoad();
1070bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual void dispatchDidFinishDocumentLoad();
1080bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual void dispatchDidFinishLoad();
1090bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual void dispatchDidFirstLayout();
1100bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual void dispatchDidFirstVisuallyNonEmptyLayout();
1110bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch
1120bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual void dispatchShow();
1130bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual void cancelPolicyCheck();
1140bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch
11521939df44de1705786c545cd1bf519d47250322dBen Murdoch        virtual void dispatchWillSendSubmitEvent(HTMLFormElement*) { }
1160bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual void dispatchWillSubmitForm(FramePolicyFunction, PassRefPtr<FormState>);
1170bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch
1180bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual void dispatchDidLoadMainResource(DocumentLoader*);
1190bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual void revertToProvisionalState(DocumentLoader*);
1200bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch
1210bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual void postProgressStartedNotification();
1220bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual void postProgressEstimateChangedNotification();
1230bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual void postProgressFinishedNotification();
1240bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch
1250bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual void progressStarted();
1260bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual void progressCompleted();
1270bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual void setMainFrameDocumentReady(bool);
1280bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual void willChangeTitle(DocumentLoader*);
1290bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual void didChangeTitle(DocumentLoader*);
1300bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual void finishedLoading(DocumentLoader*);
1310bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch
1320bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual bool canShowMIMEType(const String& MIMEType) const;
13368513a70bcd92384395513322f1b801e7bf9c729Steve Block        virtual bool canShowMIMETypeAsHTML(const String& MIMEType) const;
1340bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual bool representationExistsForURLScheme(const String& URLScheme) const;
1350bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual String generatedMIMETypeForURLScheme(const String& URLScheme) const;
1360bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch
1370bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual void frameLoadCompleted();
1380bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual void saveViewStateToItem(HistoryItem*);
1390bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual void restoreViewState();
1400bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual void restoreScrollPositionAndViewState();
1410bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual void provisionalLoadStarted();
1420bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual bool shouldTreatURLAsSameAsCurrent(const KURL&) const;
1430bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual void addHistoryItemForFragmentScroll();
1440bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual void didFinishLoad();
1450bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual void prepareForDataSourceReplacement();
1462daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch        virtual void setTitle(const StringWithDirection&, const KURL&);
1470bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch
1480bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual String userAgent(const KURL&);
1490bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch
1500bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual void savePlatformDataToCachedFrame(WebCore::CachedFrame*);
1510bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual void transitionToCommittedFromCachedFrame(WebCore::CachedFrame*);
1520bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual void transitionToCommittedForNewPage();
1530bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch
154cad810f21b803229eb11403f9209855525a25d57Steve Block        virtual void didSaveToPageCache();
155cad810f21b803229eb11403f9209855525a25d57Steve Block        virtual void didRestoreFromPageCache();
156cad810f21b803229eb11403f9209855525a25d57Steve Block
157e14391e94c850b8bd03680c23b38978db68687a8John Reck        virtual void dispatchDidBecomeFrameset(bool);
158e14391e94c850b8bd03680c23b38978db68687a8John Reck
1590bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual void updateGlobalHistory();
1600bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual void updateGlobalHistoryRedirectLinks();
1610bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual bool shouldGoToHistoryItem(HistoryItem*) const;
16281bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch        virtual bool shouldStopLoadingForHistoryItem(HistoryItem*) const;
163ed3dcbaa89ede50bb054f63aa1847ae6240fa70dBen Murdoch        virtual void dispatchDidAddBackForwardItem(HistoryItem*) const;
164ed3dcbaa89ede50bb054f63aa1847ae6240fa70dBen Murdoch        virtual void dispatchDidRemoveBackForwardItem(HistoryItem*) const;
165ed3dcbaa89ede50bb054f63aa1847ae6240fa70dBen Murdoch        virtual void dispatchDidChangeBackForwardIndex() const;
1660bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual void saveScrollPositionAndViewStateToItem(HistoryItem*);
1670bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual bool canCachePage() const;
1680bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch
1690bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual void setMainDocumentError(DocumentLoader*, const ResourceError&);
1700bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual void committedLoad(DocumentLoader*, const char*, int);
1710bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual ResourceError cancelledError(const ResourceRequest&);
1720bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual ResourceError blockedError(const ResourceRequest&);
1730bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual ResourceError cannotShowURLError(const ResourceRequest&);
1740bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual ResourceError interruptForPolicyChangeError(const ResourceRequest&);
1750bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual ResourceError cannotShowMIMETypeError(const ResourceResponse&);
1760bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual ResourceError fileDoesNotExistError(const ResourceResponse&);
1770bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual bool shouldFallBack(const ResourceError&);
1780bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual WTF::PassRefPtr<DocumentLoader> createDocumentLoader(const ResourceRequest&,
1790bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch                                                                     const SubstituteData&);
1800bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual void download(ResourceHandle*, const ResourceRequest&, const ResourceRequest&,
1810bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch                              const ResourceResponse&);
1820bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch
1830bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual void assignIdentifierToInitialRequest(unsigned long identifier,
1840bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch                                                      DocumentLoader*,
1850bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch                                                      const ResourceRequest&);
1860bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch
1870bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual void dispatchWillSendRequest(DocumentLoader*, unsigned long, ResourceRequest&,
1880bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch                                             const ResourceResponse&);
1890bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual bool shouldUseCredentialStorage(DocumentLoader*, unsigned long identifier);
1900bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual void dispatchDidReceiveAuthenticationChallenge(DocumentLoader*,
1910bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch                                                               unsigned long identifier,
1920bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch                                                               const AuthenticationChallenge&);
1930bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual void dispatchDidCancelAuthenticationChallenge(DocumentLoader*,
1940bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch                                                              unsigned long identifier,
1950bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch                                                              const AuthenticationChallenge&);
1960bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual void dispatchDidReceiveResponse(DocumentLoader*, unsigned long,
1970bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch                                                const ResourceResponse&);
1980bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual void dispatchDidReceiveContentLength(DocumentLoader*, unsigned long, int);
1990bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual void dispatchDidFinishLoading(DocumentLoader*, unsigned long);
2000bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual void dispatchDidFailLoading(DocumentLoader*, unsigned long,
2010bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch                                            const ResourceError&);
2020bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual bool dispatchDidLoadResourceFromMemoryCache(DocumentLoader*,
2030bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch                                                            const ResourceRequest&,
2040bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch                                                            const ResourceResponse&, int);
2050bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch
2060bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual void dispatchDidFailProvisionalLoad(const ResourceError&);
2070bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual void dispatchDidFailLoad(const ResourceError&);
208e14391e94c850b8bd03680c23b38978db68687a8John Reck        virtual Frame* dispatchCreatePage(const NavigationAction&);
20981bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch        virtual void dispatchDecidePolicyForResponse(FramePolicyFunction,
21081bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch                                                     const ResourceResponse&,
2110bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch                                                     const ResourceRequest&);
2120bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual void dispatchDecidePolicyForNewWindowAction(FramePolicyFunction,
2130bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch                                                            const NavigationAction&,
2140bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch                                                            const ResourceRequest&,
2150bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch                                                            PassRefPtr<FormState>, const String&);
2160bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual void dispatchDecidePolicyForNavigationAction(FramePolicyFunction,
2170bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch                                                             const NavigationAction&,
2180bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch                                                             const ResourceRequest&,
2190bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch                                                             PassRefPtr<FormState>);
2200bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual void dispatchUnableToImplementPolicy(const ResourceError&);
2210bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch
2220bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual void startDownload(const ResourceRequest&);
2230bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch
2240bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        // FIXME: This should probably not be here, but it's needed for the tests currently.
2250bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual void partClearedInBegin();
2260bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch
2270bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual PassRefPtr<Frame> createFrame(const KURL& url, const String& name,
2280bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch                                              HTMLFrameOwnerElement*, const String& referrer,
2290bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch                                              bool allowsScrolling, int marginWidth, int marginHeight);
230bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen        virtual void didTransferChildFrameToNewDocument(WebCore::Page*);
231e14391e94c850b8bd03680c23b38978db68687a8John Reck        virtual void transferLoadingResourceFromPage(unsigned long, WebCore::DocumentLoader*, const ResourceRequest&, WebCore::Page*);
2320bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual PassRefPtr<Widget> createPlugin(const IntSize&, HTMLPlugInElement*, const KURL&,
2330bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch                                                const Vector<String>&, const Vector<String>&, const String&,
2340bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch                                                bool loadManually);
2350bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual void redirectDataToPlugin(Widget* pluginWidget);
2360bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual ResourceError pluginWillHandleLoadError(const ResourceResponse&);
2370bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch
2380bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual PassRefPtr<Widget> createJavaAppletWidget(const IntSize&, HTMLAppletElement*,
2390bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch                                                          const KURL& baseURL, const Vector<String>& paramNames,
2400bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch                                                          const Vector<String>& paramValues);
2410bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch
2422bde8e466a4451c7319e3a072d118917957d6554Steve Block        virtual ObjectContentType objectContentType(const KURL&, const String& mimeType, bool shouldPreferPlugInsForImages);
2430bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual String overrideMediaType() const;
2440bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch
245643ca7872b450ea4efacab6188849e5aac2ba161Steve Block        virtual void dispatchDidClearWindowObjectInWorld(DOMWrapperWorld*);
2460bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual void documentElementAvailable();
2470bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch
2480bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual void didPerformFirstNavigation() const;
2490bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch
2500bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual void registerForIconNotification(bool listen = true);
2510bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch
2520bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch    private:
2530bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        Frame* m_frame;
2540bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        WebView* m_webView;
2550bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        BMessenger* m_messenger;
2560bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        ResourceResponse m_response;
2570bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        bool m_firstData;
2580bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch    };
2590bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch} // namespace WebCore
2600bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch
2610bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch#endif // FrameLoaderClientHaiku_h
262