• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2006 Eric Seidel (eric@webkit.org)
3  * Copyright (C) 2008, 2009, 2010, 2011 Apple Inc. All rights reserved.
4  * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
5  *
6  * Redistribution and use in source and binary forms, with or without
7  * modification, are permitted provided that the following conditions
8  * are met:
9  * 1. Redistributions of source code must retain the above copyright
10  *    notice, this list of conditions and the following disclaimer.
11  * 2. Redistributions in binary form must reproduce the above copyright
12  *    notice, this list of conditions and the following disclaimer in the
13  *    documentation and/or other materials provided with the distribution.
14  *
15  * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
16  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
18  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
19  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
20  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
21  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
22  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
23  * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
25  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26  */
27 
28 #ifndef EmptyClients_h
29 #define EmptyClients_h
30 
31 #include "ChromeClient.h"
32 #include "Console.h"
33 #include "ContextMenuClient.h"
34 #include "DeviceMotionClient.h"
35 #include "DeviceOrientationClient.h"
36 #include "DocumentLoader.h"
37 #include "DragClient.h"
38 #include "EditCommand.h"
39 #include "EditorClient.h"
40 #include "TextCheckerClient.h"
41 #include "FloatRect.h"
42 #include "FocusDirection.h"
43 #include "FrameLoaderClient.h"
44 #include "FrameNetworkingContext.h"
45 #include "InspectorClient.h"
46 #include "PluginHalterClient.h"
47 #include "PopupMenu.h"
48 #include "ResourceError.h"
49 #include "SearchPopupMenu.h"
50 
51 /*
52  This file holds empty Client stubs for use by WebCore.
53  Viewless element needs to create a dummy Page->Frame->FrameView tree for use in parsing or executing JavaScript.
54  This tree depends heavily on Clients (usually provided by WebKit classes).
55 
56  This file was first created for SVGImage as it had no way to access the current Page (nor should it,
57  since Images are not tied to a page).
58  See http://bugs.webkit.org/show_bug.cgi?id=5971 for the original discussion about this file.
59 
60  Ideally, whenever you change a Client class, you should add a stub here.
61  Brittle, yes.  Unfortunate, yes.  Hopefully temporary.
62 */
63 
64 namespace WebCore {
65 
66 class SharedGraphicsContext3D;
67 
68 class EmptyPopupMenu : public PopupMenu {
69 public:
show(const IntRect &,FrameView *,int)70     virtual void show(const IntRect&, FrameView*, int) {}
hide()71     virtual void hide() {}
updateFromElement()72     virtual void updateFromElement() {}
disconnectClient()73     virtual void disconnectClient() {}
74 };
75 
76 class EmptySearchPopupMenu : public SearchPopupMenu {
77 public:
popupMenu()78     virtual PopupMenu* popupMenu() { return m_popup.get(); }
saveRecentSearches(const AtomicString &,const Vector<String> &)79     virtual void saveRecentSearches(const AtomicString&, const Vector<String>&) {}
loadRecentSearches(const AtomicString &,Vector<String> &)80     virtual void loadRecentSearches(const AtomicString&, Vector<String>&) {}
enabled()81     virtual bool enabled() { return false; }
82 
83 private:
84     RefPtr<EmptyPopupMenu> m_popup;
85 };
86 
87 class EmptyChromeClient : public ChromeClient {
88 public:
~EmptyChromeClient()89     virtual ~EmptyChromeClient() { }
chromeDestroyed()90     virtual void chromeDestroyed() { }
91 
webView()92     virtual void* webView() const { return 0; }
setWindowRect(const FloatRect &)93     virtual void setWindowRect(const FloatRect&) { }
windowRect()94     virtual FloatRect windowRect() { return FloatRect(); }
95 
pageRect()96     virtual FloatRect pageRect() { return FloatRect(); }
97 
scaleFactor()98     virtual float scaleFactor() { return 1.f; }
99 
focus()100     virtual void focus() { }
unfocus()101     virtual void unfocus() { }
102 
canTakeFocus(FocusDirection)103     virtual bool canTakeFocus(FocusDirection) { return false; }
takeFocus(FocusDirection)104     virtual void takeFocus(FocusDirection) { }
105 
focusedNodeChanged(Node *)106     virtual void focusedNodeChanged(Node*) { }
focusedFrameChanged(Frame *)107     virtual void focusedFrameChanged(Frame*) { }
108 
createWindow(Frame *,const FrameLoadRequest &,const WindowFeatures &,const NavigationAction &)109     virtual Page* createWindow(Frame*, const FrameLoadRequest&, const WindowFeatures&, const NavigationAction&) { return 0; }
show()110     virtual void show() { }
111 
canRunModal()112     virtual bool canRunModal() { return false; }
runModal()113     virtual void runModal() { }
114 
setToolbarsVisible(bool)115     virtual void setToolbarsVisible(bool) { }
toolbarsVisible()116     virtual bool toolbarsVisible() { return false; }
117 
setStatusbarVisible(bool)118     virtual void setStatusbarVisible(bool) { }
statusbarVisible()119     virtual bool statusbarVisible() { return false; }
120 
setScrollbarsVisible(bool)121     virtual void setScrollbarsVisible(bool) { }
scrollbarsVisible()122     virtual bool scrollbarsVisible() { return false; }
123 
setMenubarVisible(bool)124     virtual void setMenubarVisible(bool) { }
menubarVisible()125     virtual bool menubarVisible() { return false; }
126 
setResizable(bool)127     virtual void setResizable(bool) { }
128 
addMessageToConsole(MessageSource,MessageType,MessageLevel,const String &,unsigned,const String &)129     virtual void addMessageToConsole(MessageSource, MessageType, MessageLevel, const String&, unsigned, const String&) { }
130 
canRunBeforeUnloadConfirmPanel()131     virtual bool canRunBeforeUnloadConfirmPanel() { return false; }
runBeforeUnloadConfirmPanel(const String &,Frame *)132     virtual bool runBeforeUnloadConfirmPanel(const String&, Frame*) { return true; }
133 
closeWindowSoon()134     virtual void closeWindowSoon() { }
135 
runJavaScriptAlert(Frame *,const String &)136     virtual void runJavaScriptAlert(Frame*, const String&) { }
runJavaScriptConfirm(Frame *,const String &)137     virtual bool runJavaScriptConfirm(Frame*, const String&) { return false; }
runJavaScriptPrompt(Frame *,const String &,const String &,String &)138     virtual bool runJavaScriptPrompt(Frame*, const String&, const String&, String&) { return false; }
shouldInterruptJavaScript()139     virtual bool shouldInterruptJavaScript() { return false; }
140 
selectItemWritingDirectionIsNatural()141     virtual bool selectItemWritingDirectionIsNatural() { return false; }
selectItemAlignmentFollowsMenuWritingDirection()142     virtual bool selectItemAlignmentFollowsMenuWritingDirection() { return false; }
createPopupMenu(PopupMenuClient *)143     virtual PassRefPtr<PopupMenu> createPopupMenu(PopupMenuClient*) const { return adoptRef(new EmptyPopupMenu()); }
createSearchPopupMenu(PopupMenuClient *)144     virtual PassRefPtr<SearchPopupMenu> createSearchPopupMenu(PopupMenuClient*) const { return adoptRef(new EmptySearchPopupMenu()); }
145 
146 #if ENABLE(CONTEXT_MENUS)
showContextMenu()147     virtual void showContextMenu() { }
148 #endif
149 
150 #if ENABLE(REGISTER_PROTOCOL_HANDLER)
registerProtocolHandler(const String &,const String &,const String &,const String &)151     virtual void registerProtocolHandler(const String&, const String&, const String&, const String&) { }
152 #endif
153 
setStatusbarText(const String &)154     virtual void setStatusbarText(const String&) { }
155 
keyboardUIMode()156     virtual KeyboardUIMode keyboardUIMode() { return KeyboardAccessDefault; }
157 
windowResizerRect()158     virtual IntRect windowResizerRect() const { return IntRect(); }
159 
invalidateWindow(const IntRect &,bool)160     virtual void invalidateWindow(const IntRect&, bool) { }
invalidateContentsAndWindow(const IntRect &,bool)161     virtual void invalidateContentsAndWindow(const IntRect&, bool) { }
invalidateContentsForSlowScroll(const IntRect &,bool)162     virtual void invalidateContentsForSlowScroll(const IntRect&, bool) {};
scroll(const IntSize &,const IntRect &,const IntRect &)163     virtual void scroll(const IntSize&, const IntRect&, const IntRect&) { }
164 #if ENABLE(TILED_BACKING_STORE)
delegatedScrollRequested(const IntPoint &)165     virtual void delegatedScrollRequested(const IntPoint&) { }
166 #endif
167 #if ENABLE(REQUEST_ANIMATION_FRAME)
scheduleAnimation()168     virtual void scheduleAnimation() { }
169 #endif
170 
screenToWindow(const IntPoint & p)171     virtual IntPoint screenToWindow(const IntPoint& p) const { return p; }
windowToScreen(const IntRect & r)172     virtual IntRect windowToScreen(const IntRect& r) const { return r; }
platformPageClient()173     virtual PlatformPageClient platformPageClient() const { return 0; }
contentsSizeChanged(Frame *,const IntSize &)174     virtual void contentsSizeChanged(Frame*, const IntSize&) const { }
175 
scrollbarsModeDidChange()176     virtual void scrollbarsModeDidChange() const { }
mouseDidMoveOverElement(const HitTestResult &,unsigned)177     virtual void mouseDidMoveOverElement(const HitTestResult&, unsigned) { }
178 
setToolTip(const String &,TextDirection)179     virtual void setToolTip(const String&, TextDirection) { }
180 
print(Frame *)181     virtual void print(Frame*) { }
182 
183 #if ENABLE(DATABASE)
exceededDatabaseQuota(Frame *,const String &)184     virtual void exceededDatabaseQuota(Frame*, const String&) { }
185 #endif
186 
187 #if ENABLE(OFFLINE_WEB_APPLICATIONS)
reachedMaxAppCacheSize(int64_t)188     virtual void reachedMaxAppCacheSize(int64_t) { }
reachedApplicationCacheOriginQuota(SecurityOrigin *)189     virtual void reachedApplicationCacheOriginQuota(SecurityOrigin*) { }
190 #endif
191 
192 #if ENABLE(NOTIFICATIONS)
notificationPresenter()193     virtual NotificationPresenter* notificationPresenter() const { return 0; }
194 #endif
195 
196 #if ENABLE(DIRECTORY_UPLOAD)
enumerateChosenDirectory(const String &,FileChooser *)197     virtual void enumerateChosenDirectory(const String&, FileChooser*) { }
198 #endif
199 
runOpenPanel(Frame *,PassRefPtr<FileChooser>)200     virtual void runOpenPanel(Frame*, PassRefPtr<FileChooser>) { }
chooseIconForFiles(const Vector<String> &,FileChooser *)201     virtual void chooseIconForFiles(const Vector<String>&, FileChooser*) { }
202 
formStateDidChange(const Node *)203     virtual void formStateDidChange(const Node*) { }
204 
formDidFocus(const Node *)205     virtual void formDidFocus(const Node*) { }
formDidBlur(const Node *)206     virtual void formDidBlur(const Node*) { }
207 
setCursor(const Cursor &)208     virtual void setCursor(const Cursor&) { }
209 
scrollRectIntoView(const IntRect &,const ScrollView *)210     virtual void scrollRectIntoView(const IntRect&, const ScrollView*) const {}
211 
requestGeolocationPermissionForFrame(Frame *,Geolocation *)212     virtual void requestGeolocationPermissionForFrame(Frame*, Geolocation*) {}
cancelGeolocationPermissionRequestForFrame(Frame *,Geolocation *)213     virtual void cancelGeolocationPermissionRequestForFrame(Frame*, Geolocation*) {}
214 
215 #if USE(ACCELERATED_COMPOSITING)
attachRootGraphicsLayer(Frame *,GraphicsLayer *)216     virtual void attachRootGraphicsLayer(Frame*, GraphicsLayer*) {}
setNeedsOneShotDrawingSynchronization()217     virtual void setNeedsOneShotDrawingSynchronization() {}
scheduleCompositingLayerSync()218     virtual void scheduleCompositingLayerSync() {}
219 #endif
220 
221 #if PLATFORM(WIN)
setLastSetCursorToCurrentCursor()222     virtual void setLastSetCursorToCurrentCursor() { }
223 #endif
224 #if ENABLE(TOUCH_EVENTS)
needTouchEvents(bool)225     virtual void needTouchEvents(bool) { }
226 #endif
227 };
228 
229 class EmptyFrameLoaderClient : public FrameLoaderClient {
230     WTF_MAKE_NONCOPYABLE(EmptyFrameLoaderClient); WTF_MAKE_FAST_ALLOCATED;
231 public:
EmptyFrameLoaderClient()232     EmptyFrameLoaderClient() { }
~EmptyFrameLoaderClient()233     virtual ~EmptyFrameLoaderClient() {  }
frameLoaderDestroyed()234     virtual void frameLoaderDestroyed() { }
235 
hasWebView()236     virtual bool hasWebView() const { return true; } // mainly for assertions
237 
makeRepresentation(DocumentLoader *)238     virtual void makeRepresentation(DocumentLoader*) { }
forceLayout()239     virtual void forceLayout() { }
forceLayoutForNonHTML()240     virtual void forceLayoutForNonHTML() { }
241 
setCopiesOnScroll()242     virtual void setCopiesOnScroll() { }
243 
detachedFromParent2()244     virtual void detachedFromParent2() { }
detachedFromParent3()245     virtual void detachedFromParent3() { }
246 
download(ResourceHandle *,const ResourceRequest &,const ResourceRequest &,const ResourceResponse &)247     virtual void download(ResourceHandle*, const ResourceRequest&, const ResourceRequest&, const ResourceResponse&) { }
248 
assignIdentifierToInitialRequest(unsigned long,DocumentLoader *,const ResourceRequest &)249     virtual void assignIdentifierToInitialRequest(unsigned long, DocumentLoader*, const ResourceRequest&) { }
shouldUseCredentialStorage(DocumentLoader *,unsigned long)250     virtual bool shouldUseCredentialStorage(DocumentLoader*, unsigned long) { return false; }
dispatchWillSendRequest(DocumentLoader *,unsigned long,ResourceRequest &,const ResourceResponse &)251     virtual void dispatchWillSendRequest(DocumentLoader*, unsigned long, ResourceRequest&, const ResourceResponse&) { }
dispatchDidReceiveAuthenticationChallenge(DocumentLoader *,unsigned long,const AuthenticationChallenge &)252     virtual void dispatchDidReceiveAuthenticationChallenge(DocumentLoader*, unsigned long, const AuthenticationChallenge&) { }
dispatchDidCancelAuthenticationChallenge(DocumentLoader *,unsigned long,const AuthenticationChallenge &)253     virtual void dispatchDidCancelAuthenticationChallenge(DocumentLoader*, unsigned long, const AuthenticationChallenge&) { }
254 #if USE(PROTECTION_SPACE_AUTH_CALLBACK)
canAuthenticateAgainstProtectionSpace(DocumentLoader *,unsigned long,const ProtectionSpace &)255     virtual bool canAuthenticateAgainstProtectionSpace(DocumentLoader*, unsigned long, const ProtectionSpace&) { return false; }
256 #endif
dispatchDidReceiveResponse(DocumentLoader *,unsigned long,const ResourceResponse &)257     virtual void dispatchDidReceiveResponse(DocumentLoader*, unsigned long, const ResourceResponse&) { }
dispatchDidReceiveContentLength(DocumentLoader *,unsigned long,int)258     virtual void dispatchDidReceiveContentLength(DocumentLoader*, unsigned long, int) { }
dispatchDidFinishLoading(DocumentLoader *,unsigned long)259     virtual void dispatchDidFinishLoading(DocumentLoader*, unsigned long) { }
dispatchDidFailLoading(DocumentLoader *,unsigned long,const ResourceError &)260     virtual void dispatchDidFailLoading(DocumentLoader*, unsigned long, const ResourceError&) { }
dispatchDidLoadResourceFromMemoryCache(DocumentLoader *,const ResourceRequest &,const ResourceResponse &,int)261     virtual bool dispatchDidLoadResourceFromMemoryCache(DocumentLoader*, const ResourceRequest&, const ResourceResponse&, int) { return false; }
262 
dispatchDidHandleOnloadEvents()263     virtual void dispatchDidHandleOnloadEvents() { }
dispatchDidReceiveServerRedirectForProvisionalLoad()264     virtual void dispatchDidReceiveServerRedirectForProvisionalLoad() { }
dispatchDidCancelClientRedirect()265     virtual void dispatchDidCancelClientRedirect() { }
dispatchWillPerformClientRedirect(const KURL &,double,double)266     virtual void dispatchWillPerformClientRedirect(const KURL&, double, double) { }
dispatchDidChangeLocationWithinPage()267     virtual void dispatchDidChangeLocationWithinPage() { }
dispatchDidPushStateWithinPage()268     virtual void dispatchDidPushStateWithinPage() { }
dispatchDidReplaceStateWithinPage()269     virtual void dispatchDidReplaceStateWithinPage() { }
dispatchDidPopStateWithinPage()270     virtual void dispatchDidPopStateWithinPage() { }
dispatchWillClose()271     virtual void dispatchWillClose() { }
dispatchDidReceiveIcon()272     virtual void dispatchDidReceiveIcon() { }
dispatchDidStartProvisionalLoad()273     virtual void dispatchDidStartProvisionalLoad() { }
dispatchDidReceiveTitle(const StringWithDirection &)274     virtual void dispatchDidReceiveTitle(const StringWithDirection&) { }
dispatchDidChangeIcons()275     virtual void dispatchDidChangeIcons() { }
dispatchDidCommitLoad()276     virtual void dispatchDidCommitLoad() { }
dispatchDidFailProvisionalLoad(const ResourceError &)277     virtual void dispatchDidFailProvisionalLoad(const ResourceError&) { }
dispatchDidFailLoad(const ResourceError &)278     virtual void dispatchDidFailLoad(const ResourceError&) { }
dispatchDidFinishDocumentLoad()279     virtual void dispatchDidFinishDocumentLoad() { }
dispatchDidFinishLoad()280     virtual void dispatchDidFinishLoad() { }
dispatchDidFirstLayout()281     virtual void dispatchDidFirstLayout() { }
dispatchDidFirstVisuallyNonEmptyLayout()282     virtual void dispatchDidFirstVisuallyNonEmptyLayout() { }
283 
dispatchCreatePage(const NavigationAction &)284     virtual Frame* dispatchCreatePage(const NavigationAction&) { return 0; }
dispatchShow()285     virtual void dispatchShow() { }
286 
dispatchDecidePolicyForResponse(FramePolicyFunction,const ResourceResponse &,const ResourceRequest &)287     virtual void dispatchDecidePolicyForResponse(FramePolicyFunction, const ResourceResponse&, const ResourceRequest&) { }
dispatchDecidePolicyForNewWindowAction(FramePolicyFunction,const NavigationAction &,const ResourceRequest &,PassRefPtr<FormState>,const String &)288     virtual void dispatchDecidePolicyForNewWindowAction(FramePolicyFunction, const NavigationAction&, const ResourceRequest&, PassRefPtr<FormState>, const String&) { }
dispatchDecidePolicyForNavigationAction(FramePolicyFunction,const NavigationAction &,const ResourceRequest &,PassRefPtr<FormState>)289     virtual void dispatchDecidePolicyForNavigationAction(FramePolicyFunction, const NavigationAction&, const ResourceRequest&, PassRefPtr<FormState>) { }
cancelPolicyCheck()290     virtual void cancelPolicyCheck() { }
291 
dispatchUnableToImplementPolicy(const ResourceError &)292     virtual void dispatchUnableToImplementPolicy(const ResourceError&) { }
293 
dispatchWillSendSubmitEvent(HTMLFormElement *)294     virtual void dispatchWillSendSubmitEvent(HTMLFormElement*) { }
dispatchWillSubmitForm(FramePolicyFunction,PassRefPtr<FormState>)295     virtual void dispatchWillSubmitForm(FramePolicyFunction, PassRefPtr<FormState>) { }
296 
dispatchDidLoadMainResource(DocumentLoader *)297     virtual void dispatchDidLoadMainResource(DocumentLoader*) { }
revertToProvisionalState(DocumentLoader *)298     virtual void revertToProvisionalState(DocumentLoader*) { }
setMainDocumentError(DocumentLoader *,const ResourceError &)299     virtual void setMainDocumentError(DocumentLoader*, const ResourceError&) { }
300 
willChangeEstimatedProgress()301     virtual void willChangeEstimatedProgress() { }
didChangeEstimatedProgress()302     virtual void didChangeEstimatedProgress() { }
postProgressStartedNotification()303     virtual void postProgressStartedNotification() { }
postProgressEstimateChangedNotification()304     virtual void postProgressEstimateChangedNotification() { }
postProgressFinishedNotification()305     virtual void postProgressFinishedNotification() { }
306 
setMainFrameDocumentReady(bool)307     virtual void setMainFrameDocumentReady(bool) { }
308 
startDownload(const ResourceRequest &)309     virtual void startDownload(const ResourceRequest&) { }
310 
willChangeTitle(DocumentLoader *)311     virtual void willChangeTitle(DocumentLoader*) { }
didChangeTitle(DocumentLoader *)312     virtual void didChangeTitle(DocumentLoader*) { }
313 
committedLoad(DocumentLoader *,const char *,int)314     virtual void committedLoad(DocumentLoader*, const char*, int) { }
finishedLoading(DocumentLoader *)315     virtual void finishedLoading(DocumentLoader*) { }
316 
cancelledError(const ResourceRequest &)317     virtual ResourceError cancelledError(const ResourceRequest&) { ResourceError error("", 0, "", ""); error.setIsCancellation(true); return error; }
blockedError(const ResourceRequest &)318     virtual ResourceError blockedError(const ResourceRequest&) { return ResourceError("", 0, "", ""); }
cannotShowURLError(const ResourceRequest &)319     virtual ResourceError cannotShowURLError(const ResourceRequest&) { return ResourceError("", 0, "", ""); }
interruptForPolicyChangeError(const ResourceRequest &)320     virtual ResourceError interruptForPolicyChangeError(const ResourceRequest&) { return ResourceError("", 0, "", ""); }
321 
cannotShowMIMETypeError(const ResourceResponse &)322     virtual ResourceError cannotShowMIMETypeError(const ResourceResponse&) { return ResourceError("", 0, "", ""); }
fileDoesNotExistError(const ResourceResponse &)323     virtual ResourceError fileDoesNotExistError(const ResourceResponse&) { return ResourceError("", 0, "", ""); }
pluginWillHandleLoadError(const ResourceResponse &)324     virtual ResourceError pluginWillHandleLoadError(const ResourceResponse&) { return ResourceError("", 0, "", ""); }
325 
shouldFallBack(const ResourceError &)326     virtual bool shouldFallBack(const ResourceError&) { return false; }
327 
canHandleRequest(const ResourceRequest &)328     virtual bool canHandleRequest(const ResourceRequest&) const { return false; }
canShowMIMEType(const String &)329     virtual bool canShowMIMEType(const String&) const { return false; }
canShowMIMETypeAsHTML(const String &)330     virtual bool canShowMIMETypeAsHTML(const String&) const { return false; }
representationExistsForURLScheme(const String &)331     virtual bool representationExistsForURLScheme(const String&) const { return false; }
generatedMIMETypeForURLScheme(const String &)332     virtual String generatedMIMETypeForURLScheme(const String&) const { return ""; }
333 
frameLoadCompleted()334     virtual void frameLoadCompleted() { }
restoreViewState()335     virtual void restoreViewState() { }
provisionalLoadStarted()336     virtual void provisionalLoadStarted() { }
shouldTreatURLAsSameAsCurrent(const KURL &)337     virtual bool shouldTreatURLAsSameAsCurrent(const KURL&) const { return false; }
didFinishLoad()338     virtual void didFinishLoad() { }
prepareForDataSourceReplacement()339     virtual void prepareForDataSourceReplacement() { }
340 
createDocumentLoader(const ResourceRequest & request,const SubstituteData & substituteData)341     virtual PassRefPtr<DocumentLoader> createDocumentLoader(const ResourceRequest& request, const SubstituteData& substituteData) { return DocumentLoader::create(request, substituteData); }
setTitle(const StringWithDirection &,const KURL &)342     virtual void setTitle(const StringWithDirection&, const KURL&) { }
343 
userAgent(const KURL &)344     virtual String userAgent(const KURL&) { return ""; }
345 
savePlatformDataToCachedFrame(CachedFrame *)346     virtual void savePlatformDataToCachedFrame(CachedFrame*) { }
transitionToCommittedFromCachedFrame(CachedFrame *)347     virtual void transitionToCommittedFromCachedFrame(CachedFrame*) { }
transitionToCommittedForNewPage()348     virtual void transitionToCommittedForNewPage() { }
349 
didSaveToPageCache()350     virtual void didSaveToPageCache() { }
didRestoreFromPageCache()351     virtual void didRestoreFromPageCache() { }
352 
dispatchDidBecomeFrameset(bool)353     virtual void dispatchDidBecomeFrameset(bool) { }
354 
updateGlobalHistory()355     virtual void updateGlobalHistory() { }
updateGlobalHistoryRedirectLinks()356     virtual void updateGlobalHistoryRedirectLinks() { }
shouldGoToHistoryItem(HistoryItem *)357     virtual bool shouldGoToHistoryItem(HistoryItem*) const { return false; }
shouldStopLoadingForHistoryItem(HistoryItem *)358     virtual bool shouldStopLoadingForHistoryItem(HistoryItem*) const { return false; }
dispatchDidAddBackForwardItem(HistoryItem *)359     virtual void dispatchDidAddBackForwardItem(HistoryItem*) const { }
dispatchDidRemoveBackForwardItem(HistoryItem *)360     virtual void dispatchDidRemoveBackForwardItem(HistoryItem*) const { }
dispatchDidChangeBackForwardIndex()361     virtual void dispatchDidChangeBackForwardIndex() const { }
updateGlobalHistoryItemForPage()362     virtual void updateGlobalHistoryItemForPage() { }
saveViewStateToItem(HistoryItem *)363     virtual void saveViewStateToItem(HistoryItem*) { }
canCachePage()364     virtual bool canCachePage() const { return false; }
didDisplayInsecureContent()365     virtual void didDisplayInsecureContent() { }
didRunInsecureContent(SecurityOrigin *,const KURL &)366     virtual void didRunInsecureContent(SecurityOrigin*, const KURL&) { }
createFrame(const KURL &,const String &,HTMLFrameOwnerElement *,const String &,bool,int,int)367     virtual PassRefPtr<Frame> createFrame(const KURL&, const String&, HTMLFrameOwnerElement*, const String&, bool, int, int) { return 0; }
didTransferChildFrameToNewDocument(Page *)368     virtual void didTransferChildFrameToNewDocument(Page*) { }
transferLoadingResourceFromPage(unsigned long,DocumentLoader *,const ResourceRequest &,Page *)369     virtual void transferLoadingResourceFromPage(unsigned long, DocumentLoader*, const ResourceRequest&, Page*) { }
createPlugin(const IntSize &,HTMLPlugInElement *,const KURL &,const Vector<String> &,const Vector<String> &,const String &,bool)370     virtual PassRefPtr<Widget> createPlugin(const IntSize&, HTMLPlugInElement*, const KURL&, const Vector<String>&, const Vector<String>&, const String&, bool) { return 0; }
createJavaAppletWidget(const IntSize &,HTMLAppletElement *,const KURL &,const Vector<String> &,const Vector<String> &)371     virtual PassRefPtr<Widget> createJavaAppletWidget(const IntSize&, HTMLAppletElement*, const KURL&, const Vector<String>&, const Vector<String>&) { return 0; }
372 #if ENABLE(PLUGIN_PROXY_FOR_VIDEO)
createMediaPlayerProxyPlugin(const IntSize &,HTMLMediaElement *,const KURL &,const Vector<String> &,const Vector<String> &,const String &)373     virtual PassRefPtr<Widget> createMediaPlayerProxyPlugin(const IntSize&, HTMLMediaElement*, const KURL&, const Vector<String>&, const Vector<String>&, const String&) { return 0; }
hideMediaPlayerProxyPlugin(Widget *)374     virtual void hideMediaPlayerProxyPlugin(Widget*) { }
showMediaPlayerProxyPlugin(Widget *)375     virtual void showMediaPlayerProxyPlugin(Widget*) { }
376 #endif
377 
objectContentType(const KURL &,const String &,bool)378     virtual ObjectContentType objectContentType(const KURL&, const String&, bool) { return ObjectContentType(); }
overrideMediaType()379     virtual String overrideMediaType() const { return String(); }
380 
redirectDataToPlugin(Widget *)381     virtual void redirectDataToPlugin(Widget*) { }
dispatchDidClearWindowObjectInWorld(DOMWrapperWorld *)382     virtual void dispatchDidClearWindowObjectInWorld(DOMWrapperWorld*) { }
documentElementAvailable()383     virtual void documentElementAvailable() { }
didPerformFirstNavigation()384     virtual void didPerformFirstNavigation() const { }
385 
386 #if USE(V8)
didCreateScriptContextForFrame()387     virtual void didCreateScriptContextForFrame() { }
didDestroyScriptContextForFrame()388     virtual void didDestroyScriptContextForFrame() { }
didCreateIsolatedScriptContext()389     virtual void didCreateIsolatedScriptContext() { }
allowScriptExtension(const String & extensionName,int extensionGroup)390     virtual bool allowScriptExtension(const String& extensionName, int extensionGroup) { return false; }
391 #endif
392 
registerForIconNotification(bool)393     virtual void registerForIconNotification(bool) { }
394 
395 #ifdef ANDROID_APPLE_TOUCH_ICON
dispatchDidReceiveTouchIconURL(const String & url,bool precomposed)396     virtual void dispatchDidReceiveTouchIconURL(const String& url, bool precomposed) { }
397 #endif
398 
399 #if PLATFORM(MAC)
accessibilityRemoteObject()400     virtual RemoteAXObjectRef accessibilityRemoteObject() { return 0; }
willCacheResponse(DocumentLoader *,unsigned long,NSCachedURLResponse * response)401     virtual NSCachedURLResponse* willCacheResponse(DocumentLoader*, unsigned long, NSCachedURLResponse* response) const { return response; }
402 #endif
403 #if USE(CFNETWORK)
shouldCacheResponse(DocumentLoader *,unsigned long,const ResourceResponse &,const unsigned char *,unsigned long long)404     virtual bool shouldCacheResponse(DocumentLoader*, unsigned long, const ResourceResponse&, const unsigned char*, unsigned long long) { return true; }
405 #endif
406 
createNetworkingContext()407     virtual PassRefPtr<FrameNetworkingContext> createNetworkingContext() { return PassRefPtr<FrameNetworkingContext>(); }
408 };
409 
410 class EmptyTextCheckerClient : public TextCheckerClient {
411 public:
ignoreWordInSpellDocument(const String &)412     virtual void ignoreWordInSpellDocument(const String&) { }
learnWord(const String &)413     virtual void learnWord(const String&) { }
checkSpellingOfString(const UChar *,int,int *,int *)414     virtual void checkSpellingOfString(const UChar*, int, int*, int*) { }
getAutoCorrectSuggestionForMisspelledWord(const String &)415     virtual String getAutoCorrectSuggestionForMisspelledWord(const String&) { return String(); }
checkGrammarOfString(const UChar *,int,Vector<GrammarDetail> &,int *,int *)416     virtual void checkGrammarOfString(const UChar*, int, Vector<GrammarDetail>&, int*, int*) { }
417 
418 #if USE(UNIFIED_TEXT_CHECKING)
checkTextOfParagraph(const UChar *,int,TextCheckingTypeMask,Vector<TextCheckingResult> &)419     virtual void checkTextOfParagraph(const UChar*, int, TextCheckingTypeMask, Vector<TextCheckingResult>&) { };
420 #endif
421 
getGuessesForWord(const String &,const String &,Vector<String> &)422     virtual void getGuessesForWord(const String&, const String&, Vector<String>&) { }
requestCheckingOfString(SpellChecker *,int,TextCheckingTypeMask,const String &)423     virtual void requestCheckingOfString(SpellChecker*, int, TextCheckingTypeMask, const String&) { }
424 };
425 
426 class EmptyEditorClient : public EditorClient {
427     WTF_MAKE_NONCOPYABLE(EmptyEditorClient); WTF_MAKE_FAST_ALLOCATED;
428 public:
EmptyEditorClient()429     EmptyEditorClient() { }
~EmptyEditorClient()430     virtual ~EmptyEditorClient() { }
pageDestroyed()431     virtual void pageDestroyed() { }
432 
shouldDeleteRange(Range *)433     virtual bool shouldDeleteRange(Range*) { return false; }
shouldShowDeleteInterface(HTMLElement *)434     virtual bool shouldShowDeleteInterface(HTMLElement*) { return false; }
smartInsertDeleteEnabled()435     virtual bool smartInsertDeleteEnabled() { return false; }
isSelectTrailingWhitespaceEnabled()436     virtual bool isSelectTrailingWhitespaceEnabled() { return false; }
isContinuousSpellCheckingEnabled()437     virtual bool isContinuousSpellCheckingEnabled() { return false; }
toggleContinuousSpellChecking()438     virtual void toggleContinuousSpellChecking() { }
isGrammarCheckingEnabled()439     virtual bool isGrammarCheckingEnabled() { return false; }
toggleGrammarChecking()440     virtual void toggleGrammarChecking() { }
spellCheckerDocumentTag()441     virtual int spellCheckerDocumentTag() { return -1; }
442 
selectWordBeforeMenuEvent()443     virtual bool selectWordBeforeMenuEvent() { return false; }
isEditable()444     virtual bool isEditable() { return false; }
445 
shouldBeginEditing(Range *)446     virtual bool shouldBeginEditing(Range*) { return false; }
shouldEndEditing(Range *)447     virtual bool shouldEndEditing(Range*) { return false; }
shouldInsertNode(Node *,Range *,EditorInsertAction)448     virtual bool shouldInsertNode(Node*, Range*, EditorInsertAction) { return false; }
449     //  virtual bool shouldInsertNode(Node*, Range* replacingRange, WebViewInsertAction) { return false; }
shouldInsertText(const String &,Range *,EditorInsertAction)450     virtual bool shouldInsertText(const String&, Range*, EditorInsertAction) { return false; }
shouldChangeSelectedRange(Range *,Range *,EAffinity,bool)451     virtual bool shouldChangeSelectedRange(Range*, Range*, EAffinity, bool) { return false; }
452 
shouldApplyStyle(CSSStyleDeclaration *,Range *)453     virtual bool shouldApplyStyle(CSSStyleDeclaration*, Range*) { return false; }
shouldMoveRangeAfterDelete(Range *,Range *)454     virtual bool shouldMoveRangeAfterDelete(Range*, Range*) { return false; }
455     //  virtual bool shouldChangeTypingStyle(CSSStyleDeclaration* fromStyle, CSSStyleDeclaration* toStyle) { return false; }
456     //  virtual bool doCommandBySelector(SEL selector) { return false; }
457     //
didBeginEditing()458     virtual void didBeginEditing() { }
respondToChangedContents()459     virtual void respondToChangedContents() { }
respondToChangedSelection()460     virtual void respondToChangedSelection() { }
didEndEditing()461     virtual void didEndEditing() { }
didWriteSelectionToPasteboard()462     virtual void didWriteSelectionToPasteboard() { }
didSetSelectionTypesForPasteboard()463     virtual void didSetSelectionTypesForPasteboard() { }
464     //  virtual void webViewDidChangeTypingStyle:(NSNotification *)notification { }
465     //  virtual void webViewDidChangeSelection:(NSNotification *)notification { }
466     //  virtual NSUndoManager* undoManagerForWebView:(WebView *)webView { return 0; }
467 
registerCommandForUndo(PassRefPtr<EditCommand>)468     virtual void registerCommandForUndo(PassRefPtr<EditCommand>) { }
registerCommandForRedo(PassRefPtr<EditCommand>)469     virtual void registerCommandForRedo(PassRefPtr<EditCommand>) { }
clearUndoRedoOperations()470     virtual void clearUndoRedoOperations() { }
471 
canCopyCut(bool defaultValue)472     virtual bool canCopyCut(bool defaultValue) const { return defaultValue; }
canPaste(bool defaultValue)473     virtual bool canPaste(bool defaultValue) const { return defaultValue; }
canUndo()474     virtual bool canUndo() const { return false; }
canRedo()475     virtual bool canRedo() const { return false; }
476 
undo()477     virtual void undo() { }
redo()478     virtual void redo() { }
479 
handleKeyboardEvent(KeyboardEvent *)480     virtual void handleKeyboardEvent(KeyboardEvent*) { }
handleInputMethodKeydown(KeyboardEvent *)481     virtual void handleInputMethodKeydown(KeyboardEvent*) { }
482 
textFieldDidBeginEditing(Element *)483     virtual void textFieldDidBeginEditing(Element*) { }
textFieldDidEndEditing(Element *)484     virtual void textFieldDidEndEditing(Element*) { }
textDidChangeInTextField(Element *)485     virtual void textDidChangeInTextField(Element*) { }
doTextFieldCommandFromEvent(Element *,KeyboardEvent *)486     virtual bool doTextFieldCommandFromEvent(Element*, KeyboardEvent*) { return false; }
textWillBeDeletedInTextField(Element *)487     virtual void textWillBeDeletedInTextField(Element*) { }
textDidChangeInTextArea(Element *)488     virtual void textDidChangeInTextArea(Element*) { }
489 
490 #if PLATFORM(MAC)
markedTextAbandoned(Frame *)491     virtual void markedTextAbandoned(Frame*) { }
492 
userVisibleString(NSURL *)493     virtual NSString* userVisibleString(NSURL*) { return 0; }
documentFragmentFromAttributedString(NSAttributedString *,Vector<RefPtr<ArchiveResource>> &)494     virtual DocumentFragment* documentFragmentFromAttributedString(NSAttributedString*, Vector<RefPtr<ArchiveResource> >&) { return 0; };
setInsertionPasteboard(NSPasteboard *)495     virtual void setInsertionPasteboard(NSPasteboard*) { };
canonicalizeURL(NSURL *)496     virtual NSURL* canonicalizeURL(NSURL*) { return 0; }
canonicalizeURLString(NSString *)497     virtual NSURL* canonicalizeURLString(NSString*) { return 0; }
498 #ifdef BUILDING_ON_TIGER
pasteboardTypesForSelection(Frame *)499     virtual NSArray* pasteboardTypesForSelection(Frame*) { return 0; }
500 #endif
501 #endif
502 #if PLATFORM(MAC) && !defined(BUILDING_ON_TIGER) && !defined(BUILDING_ON_LEOPARD)
uppercaseWord()503     virtual void uppercaseWord() { }
lowercaseWord()504     virtual void lowercaseWord() { }
capitalizeWord()505     virtual void capitalizeWord() { }
showSubstitutionsPanel(bool)506     virtual void showSubstitutionsPanel(bool) { }
substitutionsPanelIsShowing()507     virtual bool substitutionsPanelIsShowing() { return false; }
toggleSmartInsertDelete()508     virtual void toggleSmartInsertDelete() { }
isAutomaticQuoteSubstitutionEnabled()509     virtual bool isAutomaticQuoteSubstitutionEnabled() { return false; }
toggleAutomaticQuoteSubstitution()510     virtual void toggleAutomaticQuoteSubstitution() { }
isAutomaticLinkDetectionEnabled()511     virtual bool isAutomaticLinkDetectionEnabled() { return false; }
toggleAutomaticLinkDetection()512     virtual void toggleAutomaticLinkDetection() { }
isAutomaticDashSubstitutionEnabled()513     virtual bool isAutomaticDashSubstitutionEnabled() { return false; }
toggleAutomaticDashSubstitution()514     virtual void toggleAutomaticDashSubstitution() { }
isAutomaticTextReplacementEnabled()515     virtual bool isAutomaticTextReplacementEnabled() { return false; }
toggleAutomaticTextReplacement()516     virtual void toggleAutomaticTextReplacement() { }
isAutomaticSpellingCorrectionEnabled()517     virtual bool isAutomaticSpellingCorrectionEnabled() { return false; }
toggleAutomaticSpellingCorrection()518     virtual void toggleAutomaticSpellingCorrection() { }
519 #endif
textChecker()520     TextCheckerClient* textChecker() { return &m_textCheckerClient; }
521 
522 #if SUPPORT_AUTOCORRECTION_PANEL
showCorrectionPanel(CorrectionPanelInfo::PanelType,const FloatRect &,const String &,const String &,const Vector<String> &)523     virtual void showCorrectionPanel(CorrectionPanelInfo::PanelType, const FloatRect&, const String&, const String&, const Vector<String>&) { }
dismissCorrectionPanel(ReasonForDismissingCorrectionPanel)524     virtual void dismissCorrectionPanel(ReasonForDismissingCorrectionPanel) { }
dismissCorrectionPanelSoon(ReasonForDismissingCorrectionPanel)525     virtual String dismissCorrectionPanelSoon(ReasonForDismissingCorrectionPanel) { return String(); }
recordAutocorrectionResponse(AutocorrectionResponseType,const String &,const String &)526     virtual void recordAutocorrectionResponse(AutocorrectionResponseType, const String&, const String&) { }
527 #endif
updateSpellingUIWithGrammarString(const String &,const GrammarDetail &)528     virtual void updateSpellingUIWithGrammarString(const String&, const GrammarDetail&) { }
updateSpellingUIWithMisspelledWord(const String &)529     virtual void updateSpellingUIWithMisspelledWord(const String&) { }
showSpellingUI(bool)530     virtual void showSpellingUI(bool) { }
spellingUIIsShowing()531     virtual bool spellingUIIsShowing() { return false; }
532 
willSetInputMethodState()533     virtual void willSetInputMethodState() { }
setInputMethodState(bool)534     virtual void setInputMethodState(bool) { }
535 
536 private:
537     EmptyTextCheckerClient m_textCheckerClient;
538 };
539 
540 #if ENABLE(CONTEXT_MENUS)
541 class EmptyContextMenuClient : public ContextMenuClient {
542     WTF_MAKE_NONCOPYABLE(EmptyContextMenuClient); WTF_MAKE_FAST_ALLOCATED;
543 public:
EmptyContextMenuClient()544     EmptyContextMenuClient() { }
~EmptyContextMenuClient()545     virtual ~EmptyContextMenuClient() {  }
contextMenuDestroyed()546     virtual void contextMenuDestroyed() { }
547 
548 #if USE(CROSS_PLATFORM_CONTEXT_MENUS)
customizeMenu(PassOwnPtr<ContextMenu>)549     virtual PassOwnPtr<ContextMenu> customizeMenu(PassOwnPtr<ContextMenu>) { return 0; }
550 #else
getCustomMenuFromDefaultItems(ContextMenu *)551     virtual PlatformMenuDescription getCustomMenuFromDefaultItems(ContextMenu*) { return 0; }
552 #endif
contextMenuItemSelected(ContextMenuItem *,const ContextMenu *)553     virtual void contextMenuItemSelected(ContextMenuItem*, const ContextMenu*) { }
554 
downloadURL(const KURL &)555     virtual void downloadURL(const KURL&) { }
copyImageToClipboard(const HitTestResult &)556     virtual void copyImageToClipboard(const HitTestResult&) { }
searchWithGoogle(const Frame *)557     virtual void searchWithGoogle(const Frame*) { }
lookUpInDictionary(Frame *)558     virtual void lookUpInDictionary(Frame*) { }
isSpeaking()559     virtual bool isSpeaking() { return false; }
speak(const String &)560     virtual void speak(const String&) { }
stopSpeaking()561     virtual void stopSpeaking() { }
562 
563 #if PLATFORM(MAC)
searchWithSpotlight()564     virtual void searchWithSpotlight() { }
565 #endif
566 };
567 #endif // ENABLE(CONTEXT_MENUS)
568 
569 #if ENABLE(DRAG_SUPPORT)
570 class EmptyDragClient : public DragClient {
571     WTF_MAKE_NONCOPYABLE(EmptyDragClient); WTF_MAKE_FAST_ALLOCATED;
572 public:
EmptyDragClient()573     EmptyDragClient() { }
~EmptyDragClient()574     virtual ~EmptyDragClient() {}
willPerformDragDestinationAction(DragDestinationAction,DragData *)575     virtual void willPerformDragDestinationAction(DragDestinationAction, DragData*) { }
willPerformDragSourceAction(DragSourceAction,const IntPoint &,Clipboard *)576     virtual void willPerformDragSourceAction(DragSourceAction, const IntPoint&, Clipboard*) { }
actionMaskForDrag(DragData *)577     virtual DragDestinationAction actionMaskForDrag(DragData*) { return DragDestinationActionNone; }
dragSourceActionMaskForPoint(const IntPoint &)578     virtual DragSourceAction dragSourceActionMaskForPoint(const IntPoint&) { return DragSourceActionNone; }
startDrag(DragImageRef,const IntPoint &,const IntPoint &,Clipboard *,Frame *,bool)579     virtual void startDrag(DragImageRef, const IntPoint&, const IntPoint&, Clipboard*, Frame*, bool) { }
dragControllerDestroyed()580     virtual void dragControllerDestroyed() { }
581 };
582 #endif // ENABLE(DRAG_SUPPORT)
583 
584 class EmptyInspectorClient : public InspectorClient {
585     WTF_MAKE_NONCOPYABLE(EmptyInspectorClient); WTF_MAKE_FAST_ALLOCATED;
586 public:
EmptyInspectorClient()587     EmptyInspectorClient() { }
~EmptyInspectorClient()588     virtual ~EmptyInspectorClient() { }
589 
inspectorDestroyed()590     virtual void inspectorDestroyed() { }
591 
openInspectorFrontend(InspectorController *)592     virtual void openInspectorFrontend(InspectorController*) { }
593 
highlight(Node *)594     virtual void highlight(Node*) { }
hideHighlight()595     virtual void hideHighlight() { }
596 
sendMessageToFrontend(const String &)597     virtual bool sendMessageToFrontend(const String&) { return false; }
598 };
599 
600 class EmptyDeviceMotionClient : public DeviceMotionClient {
601 public:
setController(DeviceMotionController *)602     virtual void setController(DeviceMotionController*) { }
startUpdating()603     virtual void startUpdating() { }
stopUpdating()604     virtual void stopUpdating() { }
currentDeviceMotion()605     virtual DeviceMotionData* currentDeviceMotion() const { return 0; }
deviceMotionControllerDestroyed()606     virtual void deviceMotionControllerDestroyed() { }
607 };
608 
609 class EmptyDeviceOrientationClient : public DeviceOrientationClient {
610 public:
setController(DeviceOrientationController *)611     virtual void setController(DeviceOrientationController*) { }
startUpdating()612     virtual void startUpdating() { }
stopUpdating()613     virtual void stopUpdating() { }
lastOrientation()614     virtual DeviceOrientation* lastOrientation() const { return 0; }
deviceOrientationControllerDestroyed()615     virtual void deviceOrientationControllerDestroyed() { }
616 };
617 
618 }
619 
620 #endif // EmptyClients_h
621