FrameLoaderClientAndroid.h revision be33b78f63b17f1b6f5a36a503d797d5f9b941ee
18e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*
28e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Copyright 2007, The Android Open Source Project
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 *  * Redistributions of source code must retain the above copyright
88e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *    notice, this list of conditions and the following disclaimer.
98e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *  * Redistributions in binary form must reproduce the above copyright
108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *    notice, this list of conditions and the following disclaimer in the
118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *    documentation and/or other materials provided with the distribution.
128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY
148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
163298a7d84b96ade73c6b170671711a8f2792ae59Steve Block * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#ifndef FrameLoaderClientAndroid_h
278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define FrameLoaderClientAndroid_h
288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "CacheBuilder.h"
308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "FrameLoaderClient.h"
318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "ResourceResponse.h"
328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "WebIconDatabase.h"
338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectusing namespace WebCore;
358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectnamespace android {
378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    class WebFrame;
388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    class FrameLoaderClientAndroid : public FrameLoaderClient,
408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project            WebIconDatabaseClient {
418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    public:
428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        FrameLoaderClientAndroid(WebFrame* webframe);
438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        Frame* getFrame() { return m_frame; }
458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        static FrameLoaderClientAndroid* get(const Frame* frame);
468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        void setFrame(Frame* frame) { m_frame = frame; }
488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        WebFrame* webFrame() const { return m_webFrame; }
498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        virtual void frameLoaderDestroyed();
518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        virtual bool hasWebView() const; // mainly for assertions
538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        virtual void makeRepresentation(DocumentLoader*);
558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        virtual void forceLayout();
568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        virtual void forceLayoutForNonHTML();
578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        virtual void setCopiesOnScroll();
598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        virtual void detachedFromParent2();
618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        virtual void detachedFromParent3();
628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        virtual void assignIdentifierToInitialRequest(unsigned long identifier, DocumentLoader*, const ResourceRequest&);
648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        virtual void dispatchWillSendRequest(DocumentLoader*, unsigned long identifier, ResourceRequest&, const ResourceResponse& redirectResponse);
66635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project        virtual bool shouldUseCredentialStorage(DocumentLoader*, unsigned long identifier);
678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        virtual void dispatchDidReceiveAuthenticationChallenge(DocumentLoader*, unsigned long identifier, const AuthenticationChallenge&);
688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        virtual void dispatchDidCancelAuthenticationChallenge(DocumentLoader*, unsigned long identifier, const AuthenticationChallenge&);
698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        virtual void dispatchDidReceiveResponse(DocumentLoader*, unsigned long identifier, const ResourceResponse&);
708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        virtual void dispatchDidReceiveContentLength(DocumentLoader*, unsigned long identifier, int lengthReceived);
718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        virtual void dispatchDidFinishLoading(DocumentLoader*, unsigned long identifier);
728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        virtual void dispatchDidFailLoading(DocumentLoader*, unsigned long identifier, const ResourceError&);
738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        virtual bool dispatchDidLoadResourceFromMemoryCache(DocumentLoader*, const ResourceRequest&, const ResourceResponse&, int length);
745f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian        virtual void dispatchDidLoadResourceByXMLHttpRequest(unsigned long identifier, const ScriptString&);
758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
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 KURL&, double interval, double fireDate);
808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        virtual void dispatchDidChangeLocationWithinPage();
818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        virtual void dispatchWillClose();
828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        virtual void dispatchDidReceiveIcon();
838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        virtual void dispatchDidStartProvisionalLoad();
848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        virtual void dispatchDidReceiveTitle(const String& title);
858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        virtual void dispatchDidCommitLoad();
868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        virtual void dispatchDidFailProvisionalLoad(const ResourceError&);
878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        virtual void dispatchDidFailLoad(const ResourceError&);
888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        virtual void dispatchDidFinishDocumentLoad();
898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        virtual void dispatchDidFinishLoad();
908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        virtual void dispatchDidFirstLayout();
91635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project        virtual void dispatchDidFirstVisuallyNonEmptyLayout();
928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        virtual Frame* dispatchCreatePage();
948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        virtual void dispatchShow();
958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        virtual void dispatchDecidePolicyForMIMEType(FramePolicyFunction, const String& MIMEType, const ResourceRequest&);
978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        virtual void dispatchDecidePolicyForNewWindowAction(FramePolicyFunction, const NavigationAction&, const ResourceRequest&, PassRefPtr<FormState>, const String& frameName);
988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        virtual void dispatchDecidePolicyForNavigationAction(FramePolicyFunction, const NavigationAction&, const ResourceRequest&, PassRefPtr<FormState>);
998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        virtual void cancelPolicyCheck();
1008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        virtual void dispatchUnableToImplementPolicy(const ResourceError&);
1028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        virtual void dispatchWillSubmitForm(FramePolicyFunction, PassRefPtr<FormState>);
1048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        virtual void dispatchDidLoadMainResource(DocumentLoader*);
1068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        virtual void revertToProvisionalState(DocumentLoader*);
1078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        virtual void setMainDocumentError(DocumentLoader*, const ResourceError&);
1088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        virtual void willChangeEstimatedProgress();
1108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        virtual void didChangeEstimatedProgress();
1118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        virtual void postProgressStartedNotification();
1128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        virtual void postProgressEstimateChangedNotification();
1138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        virtual void postProgressFinishedNotification();
1148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        virtual void setMainFrameDocumentReady(bool);
1168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        virtual void startDownload(const ResourceRequest&);
1188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        virtual void willChangeTitle(DocumentLoader*);
1208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        virtual void didChangeTitle(DocumentLoader*);
1218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        virtual void committedLoad(DocumentLoader*, const char*, int);
1238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        virtual void finishedLoading(DocumentLoader*);
1248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
125635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project        virtual void updateGlobalHistory();
1268f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian        virtual void updateGlobalHistoryRedirectLinks();
127635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project
1288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        virtual bool shouldGoToHistoryItem(HistoryItem*) const;
129b20ad8a215a2ab055647d0a026a8141b4bde7ca2Steve Block
130b20ad8a215a2ab055647d0a026a8141b4bde7ca2Steve Block        virtual void didDisplayInsecureContent();
131b20ad8a215a2ab055647d0a026a8141b4bde7ca2Steve Block        virtual void didRunInsecureContent(SecurityOrigin*);
132b20ad8a215a2ab055647d0a026a8141b4bde7ca2Steve Block
133be33b78f63b17f1b6f5a36a503d797d5f9b941eeBen Murdoch        virtual void dispatchDidAddBackForwardItem(HistoryItem*) const;
134be33b78f63b17f1b6f5a36a503d797d5f9b941eeBen Murdoch        virtual void dispatchDidRemoveBackForwardItem(HistoryItem*) const;
135be33b78f63b17f1b6f5a36a503d797d5f9b941eeBen Murdoch        virtual void dispatchDidChangeBackForwardIndex() const;
1368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        virtual ResourceError cancelledError(const ResourceRequest&);
1388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        virtual ResourceError blockedError(const ResourceRequest&);
1398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        virtual ResourceError cannotShowURLError(const ResourceRequest&);
1408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        virtual ResourceError interruptForPolicyChangeError(const ResourceRequest&);
1418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        virtual ResourceError cannotShowMIMETypeError(const ResourceResponse&);
1438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        virtual ResourceError fileDoesNotExistError(const ResourceResponse&);
1448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        virtual ResourceError pluginWillHandleLoadError(const ResourceResponse&);
1458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        virtual bool shouldFallBack(const ResourceError&);
1478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        virtual bool canHandleRequest(const ResourceRequest&) const;
1498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        virtual bool canShowMIMEType(const String& MIMEType) const;
1508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        virtual bool representationExistsForURLScheme(const String& URLScheme) const;
1518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        virtual String generatedMIMETypeForURLScheme(const String& URLScheme) const;
1528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        virtual void frameLoadCompleted();
1548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        virtual void saveViewStateToItem(HistoryItem*);
1558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        virtual void restoreViewState();
1568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        virtual void provisionalLoadStarted();
1578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        virtual void didFinishLoad();
1588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        virtual void prepareForDataSourceReplacement();
1598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        virtual PassRefPtr<DocumentLoader> createDocumentLoader(const ResourceRequest&, const SubstituteData&);
1618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        virtual void setTitle(const String& title, const KURL&);
1628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        virtual String userAgent(const KURL&);
1648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
165635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project        virtual void savePlatformDataToCachedFrame(WebCore::CachedFrame*);
166635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project        virtual void transitionToCommittedFromCachedFrame(WebCore::CachedFrame*);
167635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project        virtual void transitionToCommittedForNewPage();
168635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project
1698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        virtual bool canCachePage() const;
1708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        virtual void download(ResourceHandle*, const ResourceRequest&, const ResourceRequest&, const ResourceResponse&);
1718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        virtual WTF::PassRefPtr<Frame> createFrame(const KURL& url, const String& name, HTMLFrameOwnerElement* ownerElement,
1738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project                                   const String& referrer, bool allowsScrolling, int marginWidth, int marginHeight);
1746d289e80ffb2e1dcc0a3bdce9f2bf7fa3263745dAndrei Popescu       virtual WTF::PassRefPtr<Widget> createPlugin(const IntSize&, HTMLPlugInElement*, const KURL&,
1756d289e80ffb2e1dcc0a3bdce9f2bf7fa3263745dAndrei Popescu               const WTF::Vector<String>&, const WTF::Vector<String>&,
1766d289e80ffb2e1dcc0a3bdce9f2bf7fa3263745dAndrei Popescu               const String&, bool loadManually);
1778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        virtual void redirectDataToPlugin(Widget* pluginWidget);
1786d289e80ffb2e1dcc0a3bdce9f2bf7fa3263745dAndrei Popescu
1796d289e80ffb2e1dcc0a3bdce9f2bf7fa3263745dAndrei Popescu        virtual WTF::PassRefPtr<Widget> createJavaAppletWidget(const IntSize&, HTMLAppletElement*, const KURL& baseURL, const WTF::Vector<String>& paramNames, const WTF::Vector<String>& paramValues);
1808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        virtual ObjectContentType objectContentType(const KURL& url, const String& mimeType);
1828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        virtual String overrideMediaType() const;
1838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        virtual void windowObjectCleared();
1858f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian        virtual void documentElementAvailable();
1868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        virtual void didPerformFirstNavigation() const;
1879e2ee40924101fa594b0b31d866f896154b47caaBen Murdoch
1889e2ee40924101fa594b0b31d866f896154b47caaBen Murdoch#if USE(V8)
1899e2ee40924101fa594b0b31d866f896154b47caaBen Murdoch        // TODO(benm): Implement
1909e2ee40924101fa594b0b31d866f896154b47caaBen Murdoch        virtual void didCreateScriptContextForFrame() { }
1919e2ee40924101fa594b0b31d866f896154b47caaBen Murdoch        virtual void didDestroyScriptContextForFrame() { }
1929e2ee40924101fa594b0b31d866f896154b47caaBen Murdoch        virtual void didCreateIsolatedScriptContext() { }
1939e2ee40924101fa594b0b31d866f896154b47caaBen Murdoch#endif
194635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project
1958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        virtual void registerForIconNotification(bool listen = true);
1968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
197c6fbc06882c120f5f51090203775eb0421550d13Patrick Scott        virtual void dispatchDidReceiveTouchIconURL(const String& url, bool precomposed);
198f1c0bbb9bf698154c206e842f94b72d277a96094Patrick Scott
1998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        // WebIconDatabaseClient api
2008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        virtual void didAddIconForPageUrl(const String& pageUrl);
2018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
2028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        // FIXME: this doesn't really go here, but it's better than Frame
2038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        CacheBuilder& getCacheBuilder() { return m_cacheBuilder; }
2048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    private:
2058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        CacheBuilder m_cacheBuilder;
2068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        Frame*              m_frame;
2078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        WebFrame*  m_webFrame;
2088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
2098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        enum ResourceErrors {
2108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project            InternalErrorCancelled = -99,
2118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project            InternalErrorCannotShowUrl,
2128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project            InternalErrorInterrupted,
2138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project            InternalErrorCannotShowMimeType,
2148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project            InternalErrorFileDoesNotExist,
2158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project            InternalErrorPluginWillHandleLoadError,
2168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project            InternalErrorLast
2178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        };
2188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
2198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        /* XXX: These must match android.net.http.EventHandler */
2208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        enum EventHandlerErrors {
2218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project            Error                      = -1,
2228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project            ErrorLookup                = -2,
2238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project            ErrorUnsupportedAuthScheme = -3,
2248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project            ErrorAuth                  = -4,
2258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project            ErrorProxyAuth             = -5,
2268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project            ErrorConnect               = -6,
2278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project            ErrorIO                    = -7,
2288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project            ErrorTimeout               = -8,
2298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project            ErrorRedirectLoop          = -9,
2308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project            ErrorUnsupportedScheme     = -10,
2318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project            ErrorFailedSslHandshake    = -11,
2328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project            ErrorBadUrl                = -12,
2338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project            ErrorFile                  = -13,
2348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project            ErrorFileNotFound          = -14,
2358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project            ErrorTooManyRequests       = -15
2368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        };
2378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        friend class CacheBuilder;
2388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    };
2398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
2408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
2418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
2428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif
243