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 "FrameLoaderClient.h" 308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "ResourceResponse.h" 318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "WebIconDatabase.h" 3245b64f60af3cbfa8c78388e35e9b669a0c284bdcBen Murdoch#include <wtf/Forward.h> 338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 343e4177eb7f1f222c844cea8262cd04d71d2eb547Patrick Scottnamespace WebCore { 353e4177eb7f1f222c844cea8262cd04d71d2eb547Patrick Scottclass PluginManualLoader; 363e4177eb7f1f222c844cea8262cd04d71d2eb547Patrick Scott} 373e4177eb7f1f222c844cea8262cd04d71d2eb547Patrick Scott 388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectusing namespace WebCore; 398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectnamespace android { 418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project class WebFrame; 428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project class FrameLoaderClientAndroid : public FrameLoaderClient, 448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project WebIconDatabaseClient { 458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project public: 468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project FrameLoaderClientAndroid(WebFrame* webframe); 478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project Frame* getFrame() { return m_frame; } 498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static FrameLoaderClientAndroid* get(const Frame* frame); 508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setFrame(Frame* frame) { m_frame = frame; } 528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project WebFrame* webFrame() const { return m_webFrame; } 538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void frameLoaderDestroyed(); 558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual bool hasWebView() const; // mainly for assertions 578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void makeRepresentation(DocumentLoader*); 598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void forceLayout(); 608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void forceLayoutForNonHTML(); 618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void setCopiesOnScroll(); 638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void detachedFromParent2(); 658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void detachedFromParent3(); 668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void assignIdentifierToInitialRequest(unsigned long identifier, DocumentLoader*, const ResourceRequest&); 688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void dispatchWillSendRequest(DocumentLoader*, unsigned long identifier, ResourceRequest&, const ResourceResponse& redirectResponse); 70635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project virtual bool shouldUseCredentialStorage(DocumentLoader*, unsigned long identifier); 718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void dispatchDidReceiveAuthenticationChallenge(DocumentLoader*, unsigned long identifier, const AuthenticationChallenge&); 728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void dispatchDidCancelAuthenticationChallenge(DocumentLoader*, unsigned long identifier, const AuthenticationChallenge&); 738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void dispatchDidReceiveResponse(DocumentLoader*, unsigned long identifier, const ResourceResponse&); 748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void dispatchDidReceiveContentLength(DocumentLoader*, unsigned long identifier, int lengthReceived); 758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void dispatchDidFinishLoading(DocumentLoader*, unsigned long identifier); 768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void dispatchDidFailLoading(DocumentLoader*, unsigned long identifier, const ResourceError&); 778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual bool dispatchDidLoadResourceFromMemoryCache(DocumentLoader*, const ResourceRequest&, const ResourceResponse&, int length); 788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void dispatchDidHandleOnloadEvents(); 808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void dispatchDidReceiveServerRedirectForProvisionalLoad(); 818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void dispatchDidCancelClientRedirect(); 828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void dispatchWillPerformClientRedirect(const KURL&, double interval, double fireDate); 838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void dispatchDidChangeLocationWithinPage(); 846a011ab807deb276b9924d501a4219542092958cSteve Block virtual void dispatchDidPushStateWithinPage(); 856a011ab807deb276b9924d501a4219542092958cSteve Block virtual void dispatchDidReplaceStateWithinPage(); 866a011ab807deb276b9924d501a4219542092958cSteve Block virtual void dispatchDidPopStateWithinPage(); 878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void dispatchWillClose(); 888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void dispatchDidReceiveIcon(); 898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void dispatchDidStartProvisionalLoad(); 90d0432c2bc211a5607471b057aafc7538a33034f6Ben Murdoch virtual void dispatchDidReceiveTitle(const StringWithDirection& title); 918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void dispatchDidCommitLoad(); 928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void dispatchDidFailProvisionalLoad(const ResourceError&); 938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void dispatchDidFailLoad(const ResourceError&); 948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void dispatchDidFinishDocumentLoad(); 958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void dispatchDidFinishLoad(); 968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void dispatchDidFirstLayout(); 97635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project virtual void dispatchDidFirstVisuallyNonEmptyLayout(); 988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 99f1f796b0c3a725a520ac41959a0db7855480e9deJohn Reck virtual Frame* dispatchCreatePage(const NavigationAction&); 1008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void dispatchShow(); 1018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 102d591474a98e82c78f1c85464d9c77b67cfa7d059Ben Murdoch virtual void dispatchDecidePolicyForResponse(FramePolicyFunction, const ResourceResponse&, const ResourceRequest&); 1038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void dispatchDecidePolicyForNewWindowAction(FramePolicyFunction, const NavigationAction&, const ResourceRequest&, PassRefPtr<FormState>, const String& frameName); 1048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void dispatchDecidePolicyForNavigationAction(FramePolicyFunction, const NavigationAction&, const ResourceRequest&, PassRefPtr<FormState>); 1058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void cancelPolicyCheck(); 1068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void dispatchUnableToImplementPolicy(const ResourceError&); 1088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void dispatchWillSubmitForm(FramePolicyFunction, PassRefPtr<FormState>); 1108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void dispatchDidLoadMainResource(DocumentLoader*); 1128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void revertToProvisionalState(DocumentLoader*); 1138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void setMainDocumentError(DocumentLoader*, const ResourceError&); 1148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 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); 1228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void startDownload(const ResourceRequest&); 1248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void willChangeTitle(DocumentLoader*); 1268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void didChangeTitle(DocumentLoader*); 1278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void committedLoad(DocumentLoader*, const char*, int); 1298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void finishedLoading(DocumentLoader*); 1308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 131635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project virtual void updateGlobalHistory(); 1328f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian virtual void updateGlobalHistoryRedirectLinks(); 133635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project 1348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual bool shouldGoToHistoryItem(HistoryItem*) const; 135d591474a98e82c78f1c85464d9c77b67cfa7d059Ben Murdoch virtual bool shouldStopLoadingForHistoryItem(HistoryItem*) const; 136b20ad8a215a2ab055647d0a026a8141b4bde7ca2Steve Block 137b20ad8a215a2ab055647d0a026a8141b4bde7ca2Steve Block virtual void didDisplayInsecureContent(); 138cbaa27bf61927b2a32fd63ff574e57035de6a968Steve Block virtual void didRunInsecureContent(SecurityOrigin*, const KURL&); 139b20ad8a215a2ab055647d0a026a8141b4bde7ca2Steve Block 140be33b78f63b17f1b6f5a36a503d797d5f9b941eeBen Murdoch virtual void dispatchDidAddBackForwardItem(HistoryItem*) const; 141be33b78f63b17f1b6f5a36a503d797d5f9b941eeBen Murdoch virtual void dispatchDidRemoveBackForwardItem(HistoryItem*) const; 142be33b78f63b17f1b6f5a36a503d797d5f9b941eeBen Murdoch virtual void dispatchDidChangeBackForwardIndex() const; 1438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual ResourceError cancelledError(const ResourceRequest&); 1458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual ResourceError blockedError(const ResourceRequest&); 1468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual ResourceError cannotShowURLError(const ResourceRequest&); 1478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual ResourceError interruptForPolicyChangeError(const ResourceRequest&); 1488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual ResourceError cannotShowMIMETypeError(const ResourceResponse&); 1508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual ResourceError fileDoesNotExistError(const ResourceResponse&); 1518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual ResourceError pluginWillHandleLoadError(const ResourceResponse&); 1528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual bool shouldFallBack(const ResourceError&); 1548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual bool canHandleRequest(const ResourceRequest&) const; 1568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual bool canShowMIMEType(const String& MIMEType) const; 1578398c067254e66df9f726716f95aee2a0ca7b39aSteve Block virtual bool canShowMIMETypeAsHTML(const String& MIMEType) const; 1588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual bool representationExistsForURLScheme(const String& URLScheme) const; 1598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual String generatedMIMETypeForURLScheme(const String& URLScheme) const; 1608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void frameLoadCompleted(); 1628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void saveViewStateToItem(HistoryItem*); 1638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void restoreViewState(); 1648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void provisionalLoadStarted(); 1658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void didFinishLoad(); 1668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void prepareForDataSourceReplacement(); 1678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual PassRefPtr<DocumentLoader> createDocumentLoader(const ResourceRequest&, const SubstituteData&); 169d0432c2bc211a5607471b057aafc7538a33034f6Ben Murdoch virtual void setTitle(const StringWithDirection& title, const KURL&); 1708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 171b84030fc8163cde1f8f055973ef63d3e1670bf52Steve Block // This provides the userAgent to WebCore. It is used by WebCore to 172b84030fc8163cde1f8f055973ef63d3e1670bf52Steve Block // populate navigator.userAgent and to set the HTTP header in 173b84030fc8163cde1f8f055973ef63d3e1670bf52Steve Block // ResourceRequest objects. We also set a userAgent on WebRequestContext 174b84030fc8163cde1f8f055973ef63d3e1670bf52Steve Block // for the Chromium HTTP stack, which overrides the value on the 175b84030fc8163cde1f8f055973ef63d3e1670bf52Steve Block // ResourceRequest. 1768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual String userAgent(const KURL&); 177b84030fc8163cde1f8f055973ef63d3e1670bf52Steve Block 178635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project virtual void savePlatformDataToCachedFrame(WebCore::CachedFrame*); 179635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project virtual void transitionToCommittedFromCachedFrame(WebCore::CachedFrame*); 180635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project virtual void transitionToCommittedForNewPage(); 181635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project 182f1f796b0c3a725a520ac41959a0db7855480e9deJohn Reck virtual void dispatchDidBecomeFrameset(bool isFrameSet); 183f1f796b0c3a725a520ac41959a0db7855480e9deJohn Reck 1848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual bool canCachePage() const; 1858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void download(ResourceHandle*, const ResourceRequest&, const ResourceRequest&, const ResourceResponse&); 1868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1875b71639dd156f6224bbb25ed257ac70374641f6bSteve Block virtual WTF::PassRefPtr<Frame> createFrame(const KURL& url, const String& name, HTMLFrameOwnerElement* ownerElement, const String& referrer, bool allowsScrolling, int marginWidth, int marginHeight); 1888f53f0666f20844fa87c63e5f823470c12fc2721Kristian Monsen virtual void didTransferChildFrameToNewDocument(WebCore::Page*); 189f1f796b0c3a725a520ac41959a0db7855480e9deJohn Reck virtual void transferLoadingResourceFromPage(unsigned long identifier, DocumentLoader*, const ResourceRequest&, Page* oldPage); 1905b71639dd156f6224bbb25ed257ac70374641f6bSteve Block virtual WTF::PassRefPtr<Widget> createPlugin(const IntSize&, HTMLPlugInElement*, const KURL&, const WTF::Vector<String>&, const WTF::Vector<String>&, const String&, bool loadManually); 1918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void redirectDataToPlugin(Widget* pluginWidget); 1926d289e80ffb2e1dcc0a3bdce9f2bf7fa3263745dAndrei Popescu 1936d289e80ffb2e1dcc0a3bdce9f2bf7fa3263745dAndrei Popescu virtual WTF::PassRefPtr<Widget> createJavaAppletWidget(const IntSize&, HTMLAppletElement*, const KURL& baseURL, const WTF::Vector<String>& paramNames, const WTF::Vector<String>& paramValues); 1948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1956742cf84f0251a9c6663b8afe6f1bb24256ea00fSteve Block virtual ObjectContentType objectContentType(const KURL& url, const String& mimeType, bool shouldPreferPlugInsForImages); 1968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual String overrideMediaType() const; 1978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 198031c32d25a37eec52b946918d7648750f8e59a1fSteve Block virtual void dispatchDidClearWindowObjectInWorld(DOMWrapperWorld*); 1998f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian virtual void documentElementAvailable(); 2008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void didPerformFirstNavigation() const; 2019e2ee40924101fa594b0b31d866f896154b47caaBen Murdoch 2029d5e9234a371d13bf55a779a6257ae5e277bfb1bSteve Block // TODO: Implement 2039e2ee40924101fa594b0b31d866f896154b47caaBen Murdoch virtual void didCreateScriptContextForFrame() { } 2049e2ee40924101fa594b0b31d866f896154b47caaBen Murdoch virtual void didDestroyScriptContextForFrame() { } 2059e2ee40924101fa594b0b31d866f896154b47caaBen Murdoch virtual void didCreateIsolatedScriptContext() { } 206a485c90712dfe99674e708d289ca14c6623a41f7Kristian Monsen 2079d5e9234a371d13bf55a779a6257ae5e277bfb1bSteve Block virtual bool allowScriptExtension(const String& extensionName, int extensionGroup) { return false; } 208635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project 2098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void registerForIconNotification(bool listen = true); 2108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 211c6fbc06882c120f5f51090203775eb0421550d13Patrick Scott virtual void dispatchDidReceiveTouchIconURL(const String& url, bool precomposed); 212f1c0bbb9bf698154c206e842f94b72d277a96094Patrick Scott 2135ff0cae98f72d38d027120bffdeaa3fe3b5afd57Iain Merrick virtual PassRefPtr<FrameNetworkingContext> createNetworkingContext(); 2145ff0cae98f72d38d027120bffdeaa3fe3b5afd57Iain Merrick 2158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // WebIconDatabaseClient api 2168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void didAddIconForPageUrl(const String& pageUrl); 2178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2189dbbb4da177ba7592aaf8d18fbd85a9525bbb5f7Patrick Scott void enableOnDemandPlugins() { m_onDemandPluginsEnabled = true; } 2194c02d6a0244d7e6a7172e1f72aa514c7f68b1ceaBen Murdoch 2204c02d6a0244d7e6a7172e1f72aa514c7f68b1ceaBen Murdoch void dispatchDidChangeIcons(); 221e14e4cb809c2afcf51cce7775514d5e7820824f0Leon Scroggins void dispatchWillSendSubmitEvent(HTMLFormElement*); 2221a2c486a8175642fa5130c2d5319651286014948Steve Block 2231a2c486a8175642fa5130c2d5319651286014948Steve Block virtual void didSaveToPageCache() { } 2241a2c486a8175642fa5130c2d5319651286014948Steve Block virtual void didRestoreFromPageCache() { } 2258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project private: 2265498351dca14a6380ef3174a0afa0bb950b92d68Steve Block Frame* m_frame; 2275498351dca14a6380ef3174a0afa0bb950b92d68Steve Block WebFrame* m_webFrame; 2283e4177eb7f1f222c844cea8262cd04d71d2eb547Patrick Scott PluginManualLoader* m_manualLoader; 2295498351dca14a6380ef3174a0afa0bb950b92d68Steve Block bool m_hasSentResponseToPlugin; 2305498351dca14a6380ef3174a0afa0bb950b92d68Steve Block bool m_onDemandPluginsEnabled; 2315498351dca14a6380ef3174a0afa0bb950b92d68Steve Block mutable bool m_didReceiveServerRedirect; 2328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project enum ResourceErrors { 2348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project InternalErrorCancelled = -99, 2358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project InternalErrorCannotShowUrl, 2368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project InternalErrorInterrupted, 2378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project InternalErrorCannotShowMimeType, 2388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project InternalErrorFileDoesNotExist, 2398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project InternalErrorPluginWillHandleLoadError, 2408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project InternalErrorLast 2418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project }; 2428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project /* XXX: These must match android.net.http.EventHandler */ 2448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project enum EventHandlerErrors { 2458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project Error = -1, 2468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project ErrorLookup = -2, 2478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project ErrorUnsupportedAuthScheme = -3, 2488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project ErrorAuth = -4, 2498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project ErrorProxyAuth = -5, 2508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project ErrorConnect = -6, 2518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project ErrorIO = -7, 2528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project ErrorTimeout = -8, 2538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project ErrorRedirectLoop = -9, 2548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project ErrorUnsupportedScheme = -10, 2558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project ErrorFailedSslHandshake = -11, 2568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project ErrorBadUrl = -12, 2578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project ErrorFile = -13, 2588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project ErrorFileNotFound = -14, 2598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project ErrorTooManyRequests = -15 2608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project }; 2618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project }; 2628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 2648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 266