• 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 
100 #if ENABLE(ANDROID_INSTALLABLE_WEB_APPS)
webAppCanBeInstalled()101     virtual void webAppCanBeInstalled() { }
102 #endif
103 
focus()104     virtual void focus() { }
unfocus()105     virtual void unfocus() { }
106 
canTakeFocus(FocusDirection)107     virtual bool canTakeFocus(FocusDirection) { return false; }
takeFocus(FocusDirection)108     virtual void takeFocus(FocusDirection) { }
109 
focusedNodeChanged(Node *)110     virtual void focusedNodeChanged(Node*) { }
focusedFrameChanged(Frame *)111     virtual void focusedFrameChanged(Frame*) { }
112 
createWindow(Frame *,const FrameLoadRequest &,const WindowFeatures &,const NavigationAction &)113     virtual Page* createWindow(Frame*, const FrameLoadRequest&, const WindowFeatures&, const NavigationAction&) { return 0; }
show()114     virtual void show() { }
115 
canRunModal()116     virtual bool canRunModal() { return false; }
runModal()117     virtual void runModal() { }
118 
setToolbarsVisible(bool)119     virtual void setToolbarsVisible(bool) { }
toolbarsVisible()120     virtual bool toolbarsVisible() { return false; }
121 
setStatusbarVisible(bool)122     virtual void setStatusbarVisible(bool) { }
statusbarVisible()123     virtual bool statusbarVisible() { return false; }
124 
setScrollbarsVisible(bool)125     virtual void setScrollbarsVisible(bool) { }
scrollbarsVisible()126     virtual bool scrollbarsVisible() { return false; }
127 
setMenubarVisible(bool)128     virtual void setMenubarVisible(bool) { }
menubarVisible()129     virtual bool menubarVisible() { return false; }
130 
setResizable(bool)131     virtual void setResizable(bool) { }
132 
addMessageToConsole(MessageSource,MessageType,MessageLevel,const String &,unsigned,const String &)133     virtual void addMessageToConsole(MessageSource, MessageType, MessageLevel, const String&, unsigned, const String&) { }
134 
canRunBeforeUnloadConfirmPanel()135     virtual bool canRunBeforeUnloadConfirmPanel() { return false; }
runBeforeUnloadConfirmPanel(const String &,Frame *)136     virtual bool runBeforeUnloadConfirmPanel(const String&, Frame*) { return true; }
137 
closeWindowSoon()138     virtual void closeWindowSoon() { }
139 
runJavaScriptAlert(Frame *,const String &)140     virtual void runJavaScriptAlert(Frame*, const String&) { }
runJavaScriptConfirm(Frame *,const String &)141     virtual bool runJavaScriptConfirm(Frame*, const String&) { return false; }
runJavaScriptPrompt(Frame *,const String &,const String &,String &)142     virtual bool runJavaScriptPrompt(Frame*, const String&, const String&, String&) { return false; }
shouldInterruptJavaScript()143     virtual bool shouldInterruptJavaScript() { return false; }
144 
selectItemWritingDirectionIsNatural()145     virtual bool selectItemWritingDirectionIsNatural() { return false; }
selectItemAlignmentFollowsMenuWritingDirection()146     virtual bool selectItemAlignmentFollowsMenuWritingDirection() { return false; }
createPopupMenu(PopupMenuClient *)147     virtual PassRefPtr<PopupMenu> createPopupMenu(PopupMenuClient*) const { return adoptRef(new EmptyPopupMenu()); }
createSearchPopupMenu(PopupMenuClient *)148     virtual PassRefPtr<SearchPopupMenu> createSearchPopupMenu(PopupMenuClient*) const { return adoptRef(new EmptySearchPopupMenu()); }
149 
150 #if ENABLE(CONTEXT_MENUS)
showContextMenu()151     virtual void showContextMenu() { }
152 #endif
153 
154 #if ENABLE(REGISTER_PROTOCOL_HANDLER)
registerProtocolHandler(const String &,const String &,const String &,const String &)155     virtual void registerProtocolHandler(const String&, const String&, const String&, const String&) { }
156 #endif
157 
setStatusbarText(const String &)158     virtual void setStatusbarText(const String&) { }
159 
keyboardUIMode()160     virtual KeyboardUIMode keyboardUIMode() { return KeyboardAccessDefault; }
161 
windowResizerRect()162     virtual IntRect windowResizerRect() const { return IntRect(); }
163 
invalidateWindow(const IntRect &,bool)164     virtual void invalidateWindow(const IntRect&, bool) { }
invalidateContentsAndWindow(const IntRect &,bool)165     virtual void invalidateContentsAndWindow(const IntRect&, bool) { }
invalidateContentsForSlowScroll(const IntRect &,bool)166     virtual void invalidateContentsForSlowScroll(const IntRect&, bool) {};
scroll(const IntSize &,const IntRect &,const IntRect &)167     virtual void scroll(const IntSize&, const IntRect&, const IntRect&) { }
168 #if ENABLE(TILED_BACKING_STORE)
delegatedScrollRequested(const IntPoint &)169     virtual void delegatedScrollRequested(const IntPoint&) { }
170 #endif
171 #if ENABLE(REQUEST_ANIMATION_FRAME)
scheduleAnimation()172     virtual void scheduleAnimation() { }
173 #endif
174 
screenToWindow(const IntPoint & p)175     virtual IntPoint screenToWindow(const IntPoint& p) const { return p; }
windowToScreen(const IntRect & r)176     virtual IntRect windowToScreen(const IntRect& r) const { return r; }
platformPageClient()177     virtual PlatformPageClient platformPageClient() const { return 0; }
contentsSizeChanged(Frame *,const IntSize &)178     virtual void contentsSizeChanged(Frame*, const IntSize&) const { }
179 
scrollbarsModeDidChange()180     virtual void scrollbarsModeDidChange() const { }
mouseDidMoveOverElement(const HitTestResult &,unsigned)181     virtual void mouseDidMoveOverElement(const HitTestResult&, unsigned) { }
182 
setToolTip(const String &,TextDirection)183     virtual void setToolTip(const String&, TextDirection) { }
184 
print(Frame *)185     virtual void print(Frame*) { }
186 
187 #if ENABLE(DATABASE)
exceededDatabaseQuota(Frame *,const String &)188     virtual void exceededDatabaseQuota(Frame*, const String&) { }
189 #endif
190 
191 #if ENABLE(OFFLINE_WEB_APPLICATIONS)
reachedMaxAppCacheSize(int64_t)192     virtual void reachedMaxAppCacheSize(int64_t) { }
reachedApplicationCacheOriginQuota(SecurityOrigin *)193     virtual void reachedApplicationCacheOriginQuota(SecurityOrigin*) { }
194 #endif
195 
196 #if ENABLE(NOTIFICATIONS)
notificationPresenter()197     virtual NotificationPresenter* notificationPresenter() const { return 0; }
198 #endif
199 
200 #if ENABLE(DIRECTORY_UPLOAD)
enumerateChosenDirectory(const String &,FileChooser *)201     virtual void enumerateChosenDirectory(const String&, FileChooser*) { }
202 #endif
203 
runOpenPanel(Frame *,PassRefPtr<FileChooser>)204     virtual void runOpenPanel(Frame*, PassRefPtr<FileChooser>) { }
chooseIconForFiles(const Vector<String> &,FileChooser *)205     virtual void chooseIconForFiles(const Vector<String>&, FileChooser*) { }
206 
formStateDidChange(const Node *)207     virtual void formStateDidChange(const Node*) { }
208 
formDidFocus(const Node *)209     virtual void formDidFocus(const Node*) { }
formDidBlur(const Node *)210     virtual void formDidBlur(const Node*) { }
211 
setCursor(const Cursor &)212     virtual void setCursor(const Cursor&) { }
213 
scrollRectIntoView(const IntRect &,const ScrollView *)214     virtual void scrollRectIntoView(const IntRect&, const ScrollView*) const {}
215 
requestGeolocationPermissionForFrame(Frame *,Geolocation *)216     virtual void requestGeolocationPermissionForFrame(Frame*, Geolocation*) {}
cancelGeolocationPermissionRequestForFrame(Frame *,Geolocation *)217     virtual void cancelGeolocationPermissionRequestForFrame(Frame*, Geolocation*) {}
218 
219 #if USE(ACCELERATED_COMPOSITING)
attachRootGraphicsLayer(Frame *,GraphicsLayer *)220     virtual void attachRootGraphicsLayer(Frame*, GraphicsLayer*) {}
setNeedsOneShotDrawingSynchronization()221     virtual void setNeedsOneShotDrawingSynchronization() {}
scheduleCompositingLayerSync()222     virtual void scheduleCompositingLayerSync() {}
223 #endif
224 
225 #if PLATFORM(WIN)
setLastSetCursorToCurrentCursor()226     virtual void setLastSetCursorToCurrentCursor() { }
227 #endif
228 #if ENABLE(TOUCH_EVENTS)
needTouchEvents(bool)229     virtual void needTouchEvents(bool) { }
230 #endif
231 };
232 
233 class EmptyFrameLoaderClient : public FrameLoaderClient {
234     WTF_MAKE_NONCOPYABLE(EmptyFrameLoaderClient); WTF_MAKE_FAST_ALLOCATED;
235 public:
EmptyFrameLoaderClient()236     EmptyFrameLoaderClient() { }
~EmptyFrameLoaderClient()237     virtual ~EmptyFrameLoaderClient() {  }
frameLoaderDestroyed()238     virtual void frameLoaderDestroyed() { }
239 
hasWebView()240     virtual bool hasWebView() const { return true; } // mainly for assertions
241 
makeRepresentation(DocumentLoader *)242     virtual void makeRepresentation(DocumentLoader*) { }
forceLayout()243     virtual void forceLayout() { }
forceLayoutForNonHTML()244     virtual void forceLayoutForNonHTML() { }
245 
setCopiesOnScroll()246     virtual void setCopiesOnScroll() { }
247 
detachedFromParent2()248     virtual void detachedFromParent2() { }
detachedFromParent3()249     virtual void detachedFromParent3() { }
250 
download(ResourceHandle *,const ResourceRequest &,const ResourceRequest &,const ResourceResponse &)251     virtual void download(ResourceHandle*, const ResourceRequest&, const ResourceRequest&, const ResourceResponse&) { }
252 
assignIdentifierToInitialRequest(unsigned long,DocumentLoader *,const ResourceRequest &)253     virtual void assignIdentifierToInitialRequest(unsigned long, DocumentLoader*, const ResourceRequest&) { }
shouldUseCredentialStorage(DocumentLoader *,unsigned long)254     virtual bool shouldUseCredentialStorage(DocumentLoader*, unsigned long) { return false; }
dispatchWillSendRequest(DocumentLoader *,unsigned long,ResourceRequest &,const ResourceResponse &)255     virtual void dispatchWillSendRequest(DocumentLoader*, unsigned long, ResourceRequest&, const ResourceResponse&) { }
dispatchDidReceiveAuthenticationChallenge(DocumentLoader *,unsigned long,const AuthenticationChallenge &)256     virtual void dispatchDidReceiveAuthenticationChallenge(DocumentLoader*, unsigned long, const AuthenticationChallenge&) { }
dispatchDidCancelAuthenticationChallenge(DocumentLoader *,unsigned long,const AuthenticationChallenge &)257     virtual void dispatchDidCancelAuthenticationChallenge(DocumentLoader*, unsigned long, const AuthenticationChallenge&) { }
258 #if USE(PROTECTION_SPACE_AUTH_CALLBACK)
canAuthenticateAgainstProtectionSpace(DocumentLoader *,unsigned long,const ProtectionSpace &)259     virtual bool canAuthenticateAgainstProtectionSpace(DocumentLoader*, unsigned long, const ProtectionSpace&) { return false; }
260 #endif
dispatchDidReceiveResponse(DocumentLoader *,unsigned long,const ResourceResponse &)261     virtual void dispatchDidReceiveResponse(DocumentLoader*, unsigned long, const ResourceResponse&) { }
dispatchDidReceiveContentLength(DocumentLoader *,unsigned long,int)262     virtual void dispatchDidReceiveContentLength(DocumentLoader*, unsigned long, int) { }
dispatchDidFinishLoading(DocumentLoader *,unsigned long)263     virtual void dispatchDidFinishLoading(DocumentLoader*, unsigned long) { }
dispatchDidFailLoading(DocumentLoader *,unsigned long,const ResourceError &)264     virtual void dispatchDidFailLoading(DocumentLoader*, unsigned long, const ResourceError&) { }
dispatchDidLoadResourceFromMemoryCache(DocumentLoader *,const ResourceRequest &,const ResourceResponse &,int)265     virtual bool dispatchDidLoadResourceFromMemoryCache(DocumentLoader*, const ResourceRequest&, const ResourceResponse&, int) { return false; }
266 
dispatchDidHandleOnloadEvents()267     virtual void dispatchDidHandleOnloadEvents() { }
dispatchDidReceiveServerRedirectForProvisionalLoad()268     virtual void dispatchDidReceiveServerRedirectForProvisionalLoad() { }
dispatchDidCancelClientRedirect()269     virtual void dispatchDidCancelClientRedirect() { }
dispatchWillPerformClientRedirect(const KURL &,double,double)270     virtual void dispatchWillPerformClientRedirect(const KURL&, double, double) { }
dispatchDidChangeLocationWithinPage()271     virtual void dispatchDidChangeLocationWithinPage() { }
dispatchDidPushStateWithinPage()272     virtual void dispatchDidPushStateWithinPage() { }
dispatchDidReplaceStateWithinPage()273     virtual void dispatchDidReplaceStateWithinPage() { }
dispatchDidPopStateWithinPage()274     virtual void dispatchDidPopStateWithinPage() { }
dispatchWillClose()275     virtual void dispatchWillClose() { }
dispatchDidReceiveIcon()276     virtual void dispatchDidReceiveIcon() { }
dispatchDidStartProvisionalLoad()277     virtual void dispatchDidStartProvisionalLoad() { }
dispatchDidReceiveTitle(const StringWithDirection &)278     virtual void dispatchDidReceiveTitle(const StringWithDirection&) { }
dispatchDidChangeIcons()279     virtual void dispatchDidChangeIcons() { }
dispatchDidCommitLoad()280     virtual void dispatchDidCommitLoad() { }
dispatchDidFailProvisionalLoad(const ResourceError &)281     virtual void dispatchDidFailProvisionalLoad(const ResourceError&) { }
dispatchDidFailLoad(const ResourceError &)282     virtual void dispatchDidFailLoad(const ResourceError&) { }
dispatchDidFinishDocumentLoad()283     virtual void dispatchDidFinishDocumentLoad() { }
dispatchDidFinishLoad()284     virtual void dispatchDidFinishLoad() { }
dispatchDidFirstLayout()285     virtual void dispatchDidFirstLayout() { }
dispatchDidFirstVisuallyNonEmptyLayout()286     virtual void dispatchDidFirstVisuallyNonEmptyLayout() { }
287 
dispatchCreatePage(const NavigationAction &)288     virtual Frame* dispatchCreatePage(const NavigationAction&) { return 0; }
dispatchShow()289     virtual void dispatchShow() { }
290 
dispatchDecidePolicyForResponse(FramePolicyFunction,const ResourceResponse &,const ResourceRequest &)291     virtual void dispatchDecidePolicyForResponse(FramePolicyFunction, const ResourceResponse&, const ResourceRequest&) { }
dispatchDecidePolicyForNewWindowAction(FramePolicyFunction,const NavigationAction &,const ResourceRequest &,PassRefPtr<FormState>,const String &)292     virtual void dispatchDecidePolicyForNewWindowAction(FramePolicyFunction, const NavigationAction&, const ResourceRequest&, PassRefPtr<FormState>, const String&) { }
dispatchDecidePolicyForNavigationAction(FramePolicyFunction,const NavigationAction &,const ResourceRequest &,PassRefPtr<FormState>)293     virtual void dispatchDecidePolicyForNavigationAction(FramePolicyFunction, const NavigationAction&, const ResourceRequest&, PassRefPtr<FormState>) { }
cancelPolicyCheck()294     virtual void cancelPolicyCheck() { }
295 
dispatchUnableToImplementPolicy(const ResourceError &)296     virtual void dispatchUnableToImplementPolicy(const ResourceError&) { }
297 
dispatchWillSendSubmitEvent(HTMLFormElement *)298     virtual void dispatchWillSendSubmitEvent(HTMLFormElement*) { }
dispatchWillSubmitForm(FramePolicyFunction,PassRefPtr<FormState>)299     virtual void dispatchWillSubmitForm(FramePolicyFunction, PassRefPtr<FormState>) { }
300 
dispatchDidLoadMainResource(DocumentLoader *)301     virtual void dispatchDidLoadMainResource(DocumentLoader*) { }
revertToProvisionalState(DocumentLoader *)302     virtual void revertToProvisionalState(DocumentLoader*) { }
setMainDocumentError(DocumentLoader *,const ResourceError &)303     virtual void setMainDocumentError(DocumentLoader*, const ResourceError&) { }
304 
willChangeEstimatedProgress()305     virtual void willChangeEstimatedProgress() { }
didChangeEstimatedProgress()306     virtual void didChangeEstimatedProgress() { }
postProgressStartedNotification()307     virtual void postProgressStartedNotification() { }
postProgressEstimateChangedNotification()308     virtual void postProgressEstimateChangedNotification() { }
postProgressFinishedNotification()309     virtual void postProgressFinishedNotification() { }
310 
setMainFrameDocumentReady(bool)311     virtual void setMainFrameDocumentReady(bool) { }
312 
startDownload(const ResourceRequest &)313     virtual void startDownload(const ResourceRequest&) { }
314 
willChangeTitle(DocumentLoader *)315     virtual void willChangeTitle(DocumentLoader*) { }
didChangeTitle(DocumentLoader *)316     virtual void didChangeTitle(DocumentLoader*) { }
317 
committedLoad(DocumentLoader *,const char *,int)318     virtual void committedLoad(DocumentLoader*, const char*, int) { }
finishedLoading(DocumentLoader *)319     virtual void finishedLoading(DocumentLoader*) { }
320 
cancelledError(const ResourceRequest &)321     virtual ResourceError cancelledError(const ResourceRequest&) { ResourceError error("", 0, "", ""); error.setIsCancellation(true); return error; }
blockedError(const ResourceRequest &)322     virtual ResourceError blockedError(const ResourceRequest&) { return ResourceError("", 0, "", ""); }
cannotShowURLError(const ResourceRequest &)323     virtual ResourceError cannotShowURLError(const ResourceRequest&) { return ResourceError("", 0, "", ""); }
interruptForPolicyChangeError(const ResourceRequest &)324     virtual ResourceError interruptForPolicyChangeError(const ResourceRequest&) { return ResourceError("", 0, "", ""); }
325 
cannotShowMIMETypeError(const ResourceResponse &)326     virtual ResourceError cannotShowMIMETypeError(const ResourceResponse&) { return ResourceError("", 0, "", ""); }
fileDoesNotExistError(const ResourceResponse &)327     virtual ResourceError fileDoesNotExistError(const ResourceResponse&) { return ResourceError("", 0, "", ""); }
pluginWillHandleLoadError(const ResourceResponse &)328     virtual ResourceError pluginWillHandleLoadError(const ResourceResponse&) { return ResourceError("", 0, "", ""); }
329 
shouldFallBack(const ResourceError &)330     virtual bool shouldFallBack(const ResourceError&) { return false; }
331 
canHandleRequest(const ResourceRequest &)332     virtual bool canHandleRequest(const ResourceRequest&) const { return false; }
canShowMIMEType(const String &)333     virtual bool canShowMIMEType(const String&) const { return false; }
canShowMIMETypeAsHTML(const String &)334     virtual bool canShowMIMETypeAsHTML(const String&) const { return false; }
representationExistsForURLScheme(const String &)335     virtual bool representationExistsForURLScheme(const String&) const { return false; }
generatedMIMETypeForURLScheme(const String &)336     virtual String generatedMIMETypeForURLScheme(const String&) const { return ""; }
337 
frameLoadCompleted()338     virtual void frameLoadCompleted() { }
restoreViewState()339     virtual void restoreViewState() { }
provisionalLoadStarted()340     virtual void provisionalLoadStarted() { }
shouldTreatURLAsSameAsCurrent(const KURL &)341     virtual bool shouldTreatURLAsSameAsCurrent(const KURL&) const { return false; }
didFinishLoad()342     virtual void didFinishLoad() { }
prepareForDataSourceReplacement()343     virtual void prepareForDataSourceReplacement() { }
344 
createDocumentLoader(const ResourceRequest & request,const SubstituteData & substituteData)345     virtual PassRefPtr<DocumentLoader> createDocumentLoader(const ResourceRequest& request, const SubstituteData& substituteData) { return DocumentLoader::create(request, substituteData); }
setTitle(const StringWithDirection &,const KURL &)346     virtual void setTitle(const StringWithDirection&, const KURL&) { }
347 
userAgent(const KURL &)348     virtual String userAgent(const KURL&) { return ""; }
349 
savePlatformDataToCachedFrame(CachedFrame *)350     virtual void savePlatformDataToCachedFrame(CachedFrame*) { }
transitionToCommittedFromCachedFrame(CachedFrame *)351     virtual void transitionToCommittedFromCachedFrame(CachedFrame*) { }
transitionToCommittedForNewPage()352     virtual void transitionToCommittedForNewPage() { }
353 
didSaveToPageCache()354     virtual void didSaveToPageCache() { }
didRestoreFromPageCache()355     virtual void didRestoreFromPageCache() { }
356 
dispatchDidBecomeFrameset(bool)357     virtual void dispatchDidBecomeFrameset(bool) { }
358 
updateGlobalHistory()359     virtual void updateGlobalHistory() { }
updateGlobalHistoryRedirectLinks()360     virtual void updateGlobalHistoryRedirectLinks() { }
shouldGoToHistoryItem(HistoryItem *)361     virtual bool shouldGoToHistoryItem(HistoryItem*) const { return false; }
shouldStopLoadingForHistoryItem(HistoryItem *)362     virtual bool shouldStopLoadingForHistoryItem(HistoryItem*) const { return false; }
dispatchDidAddBackForwardItem(HistoryItem *)363     virtual void dispatchDidAddBackForwardItem(HistoryItem*) const { }
dispatchDidRemoveBackForwardItem(HistoryItem *)364     virtual void dispatchDidRemoveBackForwardItem(HistoryItem*) const { }
dispatchDidChangeBackForwardIndex()365     virtual void dispatchDidChangeBackForwardIndex() const { }
updateGlobalHistoryItemForPage()366     virtual void updateGlobalHistoryItemForPage() { }
saveViewStateToItem(HistoryItem *)367     virtual void saveViewStateToItem(HistoryItem*) { }
canCachePage()368     virtual bool canCachePage() const { return false; }
didDisplayInsecureContent()369     virtual void didDisplayInsecureContent() { }
didRunInsecureContent(SecurityOrigin *,const KURL &)370     virtual void didRunInsecureContent(SecurityOrigin*, const KURL&) { }
createFrame(const KURL &,const String &,HTMLFrameOwnerElement *,const String &,bool,int,int)371     virtual PassRefPtr<Frame> createFrame(const KURL&, const String&, HTMLFrameOwnerElement*, const String&, bool, int, int) { return 0; }
didTransferChildFrameToNewDocument(Page *)372     virtual void didTransferChildFrameToNewDocument(Page*) { }
transferLoadingResourceFromPage(unsigned long,DocumentLoader *,const ResourceRequest &,Page *)373     virtual void transferLoadingResourceFromPage(unsigned long, DocumentLoader*, const ResourceRequest&, Page*) { }
createPlugin(const IntSize &,HTMLPlugInElement *,const KURL &,const Vector<String> &,const Vector<String> &,const String &,bool)374     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> &)375     virtual PassRefPtr<Widget> createJavaAppletWidget(const IntSize&, HTMLAppletElement*, const KURL&, const Vector<String>&, const Vector<String>&) { return 0; }
376 #if ENABLE(PLUGIN_PROXY_FOR_VIDEO)
createMediaPlayerProxyPlugin(const IntSize &,HTMLMediaElement *,const KURL &,const Vector<String> &,const Vector<String> &,const String &)377     virtual PassRefPtr<Widget> createMediaPlayerProxyPlugin(const IntSize&, HTMLMediaElement*, const KURL&, const Vector<String>&, const Vector<String>&, const String&) { return 0; }
hideMediaPlayerProxyPlugin(Widget *)378     virtual void hideMediaPlayerProxyPlugin(Widget*) { }
showMediaPlayerProxyPlugin(Widget *)379     virtual void showMediaPlayerProxyPlugin(Widget*) { }
380 #endif
381 
objectContentType(const KURL &,const String &,bool)382     virtual ObjectContentType objectContentType(const KURL&, const String&, bool) { return ObjectContentType(); }
overrideMediaType()383     virtual String overrideMediaType() const { return String(); }
384 
redirectDataToPlugin(Widget *)385     virtual void redirectDataToPlugin(Widget*) { }
dispatchDidClearWindowObjectInWorld(DOMWrapperWorld *)386     virtual void dispatchDidClearWindowObjectInWorld(DOMWrapperWorld*) { }
documentElementAvailable()387     virtual void documentElementAvailable() { }
didPerformFirstNavigation()388     virtual void didPerformFirstNavigation() const { }
389 
390 #if USE(V8)
didCreateScriptContextForFrame()391     virtual void didCreateScriptContextForFrame() { }
didDestroyScriptContextForFrame()392     virtual void didDestroyScriptContextForFrame() { }
didCreateIsolatedScriptContext()393     virtual void didCreateIsolatedScriptContext() { }
allowScriptExtension(const String & extensionName,int extensionGroup)394     virtual bool allowScriptExtension(const String& extensionName, int extensionGroup) { return false; }
395 #endif
396 
registerForIconNotification(bool)397     virtual void registerForIconNotification(bool) { }
398 
399 #ifdef ANDROID_APPLE_TOUCH_ICON
dispatchDidReceiveTouchIconURL(const String & url,bool precomposed)400     virtual void dispatchDidReceiveTouchIconURL(const String& url, bool precomposed) { }
401 #endif
402 
403 #if PLATFORM(MAC)
accessibilityRemoteObject()404     virtual RemoteAXObjectRef accessibilityRemoteObject() { return 0; }
willCacheResponse(DocumentLoader *,unsigned long,NSCachedURLResponse * response)405     virtual NSCachedURLResponse* willCacheResponse(DocumentLoader*, unsigned long, NSCachedURLResponse* response) const { return response; }
406 #endif
407 #if USE(CFNETWORK)
shouldCacheResponse(DocumentLoader *,unsigned long,const ResourceResponse &,const unsigned char *,unsigned long long)408     virtual bool shouldCacheResponse(DocumentLoader*, unsigned long, const ResourceResponse&, const unsigned char*, unsigned long long) { return true; }
409 #endif
410 
createNetworkingContext()411     virtual PassRefPtr<FrameNetworkingContext> createNetworkingContext() { return PassRefPtr<FrameNetworkingContext>(); }
412 };
413 
414 class EmptyTextCheckerClient : public TextCheckerClient {
415 public:
ignoreWordInSpellDocument(const String &)416     virtual void ignoreWordInSpellDocument(const String&) { }
learnWord(const String &)417     virtual void learnWord(const String&) { }
checkSpellingOfString(const UChar *,int,int *,int *)418     virtual void checkSpellingOfString(const UChar*, int, int*, int*) { }
getAutoCorrectSuggestionForMisspelledWord(const String &)419     virtual String getAutoCorrectSuggestionForMisspelledWord(const String&) { return String(); }
checkGrammarOfString(const UChar *,int,Vector<GrammarDetail> &,int *,int *)420     virtual void checkGrammarOfString(const UChar*, int, Vector<GrammarDetail>&, int*, int*) { }
421 
422 #if USE(UNIFIED_TEXT_CHECKING)
checkTextOfParagraph(const UChar *,int,TextCheckingTypeMask,Vector<TextCheckingResult> &)423     virtual void checkTextOfParagraph(const UChar*, int, TextCheckingTypeMask, Vector<TextCheckingResult>&) { };
424 #endif
425 
getGuessesForWord(const String &,const String &,Vector<String> &)426     virtual void getGuessesForWord(const String&, const String&, Vector<String>&) { }
requestCheckingOfString(SpellChecker *,int,TextCheckingTypeMask,const String &)427     virtual void requestCheckingOfString(SpellChecker*, int, TextCheckingTypeMask, const String&) { }
428 };
429 
430 class EmptyEditorClient : public EditorClient {
431     WTF_MAKE_NONCOPYABLE(EmptyEditorClient); WTF_MAKE_FAST_ALLOCATED;
432 public:
EmptyEditorClient()433     EmptyEditorClient() { }
~EmptyEditorClient()434     virtual ~EmptyEditorClient() { }
pageDestroyed()435     virtual void pageDestroyed() { }
436 
shouldDeleteRange(Range *)437     virtual bool shouldDeleteRange(Range*) { return false; }
shouldShowDeleteInterface(HTMLElement *)438     virtual bool shouldShowDeleteInterface(HTMLElement*) { return false; }
smartInsertDeleteEnabled()439     virtual bool smartInsertDeleteEnabled() { return false; }
isSelectTrailingWhitespaceEnabled()440     virtual bool isSelectTrailingWhitespaceEnabled() { return false; }
isContinuousSpellCheckingEnabled()441     virtual bool isContinuousSpellCheckingEnabled() { return false; }
toggleContinuousSpellChecking()442     virtual void toggleContinuousSpellChecking() { }
isGrammarCheckingEnabled()443     virtual bool isGrammarCheckingEnabled() { return false; }
toggleGrammarChecking()444     virtual void toggleGrammarChecking() { }
spellCheckerDocumentTag()445     virtual int spellCheckerDocumentTag() { return -1; }
446 
selectWordBeforeMenuEvent()447     virtual bool selectWordBeforeMenuEvent() { return false; }
isEditable()448     virtual bool isEditable() { return false; }
449 
shouldBeginEditing(Range *)450     virtual bool shouldBeginEditing(Range*) { return false; }
shouldEndEditing(Range *)451     virtual bool shouldEndEditing(Range*) { return false; }
shouldInsertNode(Node *,Range *,EditorInsertAction)452     virtual bool shouldInsertNode(Node*, Range*, EditorInsertAction) { return false; }
453     //  virtual bool shouldInsertNode(Node*, Range* replacingRange, WebViewInsertAction) { return false; }
shouldInsertText(const String &,Range *,EditorInsertAction)454     virtual bool shouldInsertText(const String&, Range*, EditorInsertAction) { return false; }
shouldChangeSelectedRange(Range *,Range *,EAffinity,bool)455     virtual bool shouldChangeSelectedRange(Range*, Range*, EAffinity, bool) { return false; }
456 
shouldApplyStyle(CSSStyleDeclaration *,Range *)457     virtual bool shouldApplyStyle(CSSStyleDeclaration*, Range*) { return false; }
shouldMoveRangeAfterDelete(Range *,Range *)458     virtual bool shouldMoveRangeAfterDelete(Range*, Range*) { return false; }
459     //  virtual bool shouldChangeTypingStyle(CSSStyleDeclaration* fromStyle, CSSStyleDeclaration* toStyle) { return false; }
460     //  virtual bool doCommandBySelector(SEL selector) { return false; }
461     //
didBeginEditing()462     virtual void didBeginEditing() { }
respondToChangedContents()463     virtual void respondToChangedContents() { }
respondToChangedSelection()464     virtual void respondToChangedSelection() { }
didEndEditing()465     virtual void didEndEditing() { }
didWriteSelectionToPasteboard()466     virtual void didWriteSelectionToPasteboard() { }
didSetSelectionTypesForPasteboard()467     virtual void didSetSelectionTypesForPasteboard() { }
468     //  virtual void webViewDidChangeTypingStyle:(NSNotification *)notification { }
469     //  virtual void webViewDidChangeSelection:(NSNotification *)notification { }
470     //  virtual NSUndoManager* undoManagerForWebView:(WebView *)webView { return 0; }
471 
registerCommandForUndo(PassRefPtr<EditCommand>)472     virtual void registerCommandForUndo(PassRefPtr<EditCommand>) { }
registerCommandForRedo(PassRefPtr<EditCommand>)473     virtual void registerCommandForRedo(PassRefPtr<EditCommand>) { }
clearUndoRedoOperations()474     virtual void clearUndoRedoOperations() { }
475 
canCopyCut(bool defaultValue)476     virtual bool canCopyCut(bool defaultValue) const { return defaultValue; }
canPaste(bool defaultValue)477     virtual bool canPaste(bool defaultValue) const { return defaultValue; }
canUndo()478     virtual bool canUndo() const { return false; }
canRedo()479     virtual bool canRedo() const { return false; }
480 
undo()481     virtual void undo() { }
redo()482     virtual void redo() { }
483 
handleKeyboardEvent(KeyboardEvent *)484     virtual void handleKeyboardEvent(KeyboardEvent*) { }
handleInputMethodKeydown(KeyboardEvent *)485     virtual void handleInputMethodKeydown(KeyboardEvent*) { }
486 
textFieldDidBeginEditing(Element *)487     virtual void textFieldDidBeginEditing(Element*) { }
textFieldDidEndEditing(Element *)488     virtual void textFieldDidEndEditing(Element*) { }
textDidChangeInTextField(Element *)489     virtual void textDidChangeInTextField(Element*) { }
doTextFieldCommandFromEvent(Element *,KeyboardEvent *)490     virtual bool doTextFieldCommandFromEvent(Element*, KeyboardEvent*) { return false; }
textWillBeDeletedInTextField(Element *)491     virtual void textWillBeDeletedInTextField(Element*) { }
textDidChangeInTextArea(Element *)492     virtual void textDidChangeInTextArea(Element*) { }
493 
494 #if PLATFORM(MAC)
markedTextAbandoned(Frame *)495     virtual void markedTextAbandoned(Frame*) { }
496 
userVisibleString(NSURL *)497     virtual NSString* userVisibleString(NSURL*) { return 0; }
documentFragmentFromAttributedString(NSAttributedString *,Vector<RefPtr<ArchiveResource>> &)498     virtual DocumentFragment* documentFragmentFromAttributedString(NSAttributedString*, Vector<RefPtr<ArchiveResource> >&) { return 0; };
setInsertionPasteboard(NSPasteboard *)499     virtual void setInsertionPasteboard(NSPasteboard*) { };
canonicalizeURL(NSURL *)500     virtual NSURL* canonicalizeURL(NSURL*) { return 0; }
canonicalizeURLString(NSString *)501     virtual NSURL* canonicalizeURLString(NSString*) { return 0; }
502 #ifdef BUILDING_ON_TIGER
pasteboardTypesForSelection(Frame *)503     virtual NSArray* pasteboardTypesForSelection(Frame*) { return 0; }
504 #endif
505 #endif
506 #if PLATFORM(MAC) && !defined(BUILDING_ON_TIGER) && !defined(BUILDING_ON_LEOPARD)
uppercaseWord()507     virtual void uppercaseWord() { }
lowercaseWord()508     virtual void lowercaseWord() { }
capitalizeWord()509     virtual void capitalizeWord() { }
showSubstitutionsPanel(bool)510     virtual void showSubstitutionsPanel(bool) { }
substitutionsPanelIsShowing()511     virtual bool substitutionsPanelIsShowing() { return false; }
toggleSmartInsertDelete()512     virtual void toggleSmartInsertDelete() { }
isAutomaticQuoteSubstitutionEnabled()513     virtual bool isAutomaticQuoteSubstitutionEnabled() { return false; }
toggleAutomaticQuoteSubstitution()514     virtual void toggleAutomaticQuoteSubstitution() { }
isAutomaticLinkDetectionEnabled()515     virtual bool isAutomaticLinkDetectionEnabled() { return false; }
toggleAutomaticLinkDetection()516     virtual void toggleAutomaticLinkDetection() { }
isAutomaticDashSubstitutionEnabled()517     virtual bool isAutomaticDashSubstitutionEnabled() { return false; }
toggleAutomaticDashSubstitution()518     virtual void toggleAutomaticDashSubstitution() { }
isAutomaticTextReplacementEnabled()519     virtual bool isAutomaticTextReplacementEnabled() { return false; }
toggleAutomaticTextReplacement()520     virtual void toggleAutomaticTextReplacement() { }
isAutomaticSpellingCorrectionEnabled()521     virtual bool isAutomaticSpellingCorrectionEnabled() { return false; }
toggleAutomaticSpellingCorrection()522     virtual void toggleAutomaticSpellingCorrection() { }
523 #endif
textChecker()524     TextCheckerClient* textChecker() { return &m_textCheckerClient; }
525 
526 #if SUPPORT_AUTOCORRECTION_PANEL
showCorrectionPanel(CorrectionPanelInfo::PanelType,const FloatRect &,const String &,const String &,const Vector<String> &)527     virtual void showCorrectionPanel(CorrectionPanelInfo::PanelType, const FloatRect&, const String&, const String&, const Vector<String>&) { }
dismissCorrectionPanel(ReasonForDismissingCorrectionPanel)528     virtual void dismissCorrectionPanel(ReasonForDismissingCorrectionPanel) { }
dismissCorrectionPanelSoon(ReasonForDismissingCorrectionPanel)529     virtual String dismissCorrectionPanelSoon(ReasonForDismissingCorrectionPanel) { return String(); }
recordAutocorrectionResponse(AutocorrectionResponseType,const String &,const String &)530     virtual void recordAutocorrectionResponse(AutocorrectionResponseType, const String&, const String&) { }
531 #endif
updateSpellingUIWithGrammarString(const String &,const GrammarDetail &)532     virtual void updateSpellingUIWithGrammarString(const String&, const GrammarDetail&) { }
updateSpellingUIWithMisspelledWord(const String &)533     virtual void updateSpellingUIWithMisspelledWord(const String&) { }
showSpellingUI(bool)534     virtual void showSpellingUI(bool) { }
spellingUIIsShowing()535     virtual bool spellingUIIsShowing() { return false; }
536 
willSetInputMethodState()537     virtual void willSetInputMethodState() { }
setInputMethodState(bool)538     virtual void setInputMethodState(bool) { }
539 
540 private:
541     EmptyTextCheckerClient m_textCheckerClient;
542 };
543 
544 #if ENABLE(CONTEXT_MENUS)
545 class EmptyContextMenuClient : public ContextMenuClient {
546     WTF_MAKE_NONCOPYABLE(EmptyContextMenuClient); WTF_MAKE_FAST_ALLOCATED;
547 public:
EmptyContextMenuClient()548     EmptyContextMenuClient() { }
~EmptyContextMenuClient()549     virtual ~EmptyContextMenuClient() {  }
contextMenuDestroyed()550     virtual void contextMenuDestroyed() { }
551 
552 #if USE(CROSS_PLATFORM_CONTEXT_MENUS)
customizeMenu(PassOwnPtr<ContextMenu>)553     virtual PassOwnPtr<ContextMenu> customizeMenu(PassOwnPtr<ContextMenu>) { return 0; }
554 #else
getCustomMenuFromDefaultItems(ContextMenu *)555     virtual PlatformMenuDescription getCustomMenuFromDefaultItems(ContextMenu*) { return 0; }
556 #endif
contextMenuItemSelected(ContextMenuItem *,const ContextMenu *)557     virtual void contextMenuItemSelected(ContextMenuItem*, const ContextMenu*) { }
558 
downloadURL(const KURL &)559     virtual void downloadURL(const KURL&) { }
copyImageToClipboard(const HitTestResult &)560     virtual void copyImageToClipboard(const HitTestResult&) { }
searchWithGoogle(const Frame *)561     virtual void searchWithGoogle(const Frame*) { }
lookUpInDictionary(Frame *)562     virtual void lookUpInDictionary(Frame*) { }
isSpeaking()563     virtual bool isSpeaking() { return false; }
speak(const String &)564     virtual void speak(const String&) { }
stopSpeaking()565     virtual void stopSpeaking() { }
566 
567 #if PLATFORM(MAC)
searchWithSpotlight()568     virtual void searchWithSpotlight() { }
569 #endif
570 };
571 #endif // ENABLE(CONTEXT_MENUS)
572 
573 #if ENABLE(DRAG_SUPPORT)
574 class EmptyDragClient : public DragClient {
575     WTF_MAKE_NONCOPYABLE(EmptyDragClient); WTF_MAKE_FAST_ALLOCATED;
576 public:
EmptyDragClient()577     EmptyDragClient() { }
~EmptyDragClient()578     virtual ~EmptyDragClient() {}
willPerformDragDestinationAction(DragDestinationAction,DragData *)579     virtual void willPerformDragDestinationAction(DragDestinationAction, DragData*) { }
willPerformDragSourceAction(DragSourceAction,const IntPoint &,Clipboard *)580     virtual void willPerformDragSourceAction(DragSourceAction, const IntPoint&, Clipboard*) { }
actionMaskForDrag(DragData *)581     virtual DragDestinationAction actionMaskForDrag(DragData*) { return DragDestinationActionNone; }
dragSourceActionMaskForPoint(const IntPoint &)582     virtual DragSourceAction dragSourceActionMaskForPoint(const IntPoint&) { return DragSourceActionNone; }
startDrag(DragImageRef,const IntPoint &,const IntPoint &,Clipboard *,Frame *,bool)583     virtual void startDrag(DragImageRef, const IntPoint&, const IntPoint&, Clipboard*, Frame*, bool) { }
dragControllerDestroyed()584     virtual void dragControllerDestroyed() { }
585 };
586 #endif // ENABLE(DRAG_SUPPORT)
587 
588 class EmptyInspectorClient : public InspectorClient {
589     WTF_MAKE_NONCOPYABLE(EmptyInspectorClient); WTF_MAKE_FAST_ALLOCATED;
590 public:
EmptyInspectorClient()591     EmptyInspectorClient() { }
~EmptyInspectorClient()592     virtual ~EmptyInspectorClient() { }
593 
inspectorDestroyed()594     virtual void inspectorDestroyed() { }
595 
openInspectorFrontend(InspectorController *)596     virtual void openInspectorFrontend(InspectorController*) { }
597 
highlight(Node *)598     virtual void highlight(Node*) { }
hideHighlight()599     virtual void hideHighlight() { }
600 
sendMessageToFrontend(const String &)601     virtual bool sendMessageToFrontend(const String&) { return false; }
602 };
603 
604 class EmptyDeviceMotionClient : public DeviceMotionClient {
605 public:
setController(DeviceMotionController *)606     virtual void setController(DeviceMotionController*) { }
startUpdating()607     virtual void startUpdating() { }
stopUpdating()608     virtual void stopUpdating() { }
currentDeviceMotion()609     virtual DeviceMotionData* currentDeviceMotion() const { return 0; }
deviceMotionControllerDestroyed()610     virtual void deviceMotionControllerDestroyed() { }
611 };
612 
613 class EmptyDeviceOrientationClient : public DeviceOrientationClient {
614 public:
setController(DeviceOrientationController *)615     virtual void setController(DeviceOrientationController*) { }
startUpdating()616     virtual void startUpdating() { }
stopUpdating()617     virtual void stopUpdating() { }
lastOrientation()618     virtual DeviceOrientation* lastOrientation() const { return 0; }
deviceOrientationControllerDestroyed()619     virtual void deviceOrientationControllerDestroyed() { }
620 };
621 
622 }
623 
624 #endif // EmptyClients_h
625