1/* 2 * Copyright (C) 2006 Eric Seidel <eric@webkit.org> 3 * Copyright (C) 2008, 2009, 2012 Apple Inc. All rights reserved. 4 * Copyright (C) Research In Motion Limited 2011. All rights reserved. 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 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 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#include "config.h" 29#include "core/loader/EmptyClients.h" 30 31#include "core/html/HTMLFormElement.h" 32#include "core/loader/DocumentLoader.h" 33#include "core/loader/FormState.h" 34#include "core/page/Frame.h" 35#include "core/platform/ColorChooser.h" 36#include "core/platform/DateTimeChooser.h" 37#include "core/platform/FileChooser.h" 38 39namespace WebCore { 40 41void fillWithEmptyClients(Page::PageClients& pageClients) 42{ 43 static ChromeClient* dummyChromeClient = adoptPtr(new EmptyChromeClient).leakPtr(); 44 pageClients.chromeClient = dummyChromeClient; 45 46 static ContextMenuClient* dummyContextMenuClient = adoptPtr(new EmptyContextMenuClient).leakPtr(); 47 pageClients.contextMenuClient = dummyContextMenuClient; 48 49 static DragClient* dummyDragClient = adoptPtr(new EmptyDragClient).leakPtr(); 50 pageClients.dragClient = dummyDragClient; 51 52 static EditorClient* dummyEditorClient = adoptPtr(new EmptyEditorClient).leakPtr(); 53 pageClients.editorClient = dummyEditorClient; 54 55 static InspectorClient* dummyInspectorClient = adoptPtr(new EmptyInspectorClient).leakPtr(); 56 pageClients.inspectorClient = dummyInspectorClient; 57 58 static BackForwardClient* dummyBackForwardClient = adoptPtr(new EmptyBackForwardClient).leakPtr(); 59 pageClients.backForwardClient = dummyBackForwardClient; 60} 61 62class EmptyPopupMenu : public PopupMenu { 63public: 64 virtual void show(const FloatQuad&, const IntSize&, int) OVERRIDE { } 65 virtual void hide() OVERRIDE { } 66 virtual void updateFromElement() OVERRIDE { } 67 virtual void disconnectClient() OVERRIDE { } 68}; 69 70PassRefPtr<PopupMenu> EmptyChromeClient::createPopupMenu(Frame&, PopupMenuClient*) const 71{ 72 return adoptRef(new EmptyPopupMenu()); 73} 74 75PassOwnPtr<ColorChooser> EmptyChromeClient::createColorChooser(ColorChooserClient*, const Color&) 76{ 77 return nullptr; 78} 79 80PassRefPtr<DateTimeChooser> EmptyChromeClient::openDateTimeChooser(DateTimeChooserClient*, const DateTimeChooserParameters&) 81{ 82 return PassRefPtr<DateTimeChooser>(); 83} 84 85void EmptyChromeClient::runOpenPanel(Frame*, PassRefPtr<FileChooser>) 86{ 87} 88 89String EmptyChromeClient::acceptLanguages() 90{ 91 return String(); 92} 93 94NavigationPolicy EmptyFrameLoaderClient::decidePolicyForNavigation(const ResourceRequest&, DocumentLoader*, NavigationPolicy) 95{ 96 return NavigationPolicyIgnore; 97} 98 99bool EmptyFrameLoaderClient::shouldAbortNavigationAfterUrlResolve(const KURL& base, const String& fragment, const KURL& result) { 100 return false; 101} 102 103void EmptyFrameLoaderClient::dispatchWillSendSubmitEvent(PassRefPtr<FormState>) 104{ 105} 106 107void EmptyFrameLoaderClient::dispatchWillSubmitForm(PassRefPtr<FormState>) 108{ 109} 110 111PassRefPtr<DocumentLoader> EmptyFrameLoaderClient::createDocumentLoader(const ResourceRequest& request, const SubstituteData& substituteData) 112{ 113 return DocumentLoader::create(request, substituteData); 114} 115 116PassRefPtr<Frame> EmptyFrameLoaderClient::createFrame(const KURL&, const String&, HTMLFrameOwnerElement*, const String&, bool, int, int) 117{ 118 return 0; 119} 120 121PassRefPtr<Widget> EmptyFrameLoaderClient::createPlugin(const IntSize&, HTMLPlugInElement*, const KURL&, const Vector<String>&, const Vector<String>&, const String&, bool) 122{ 123 return 0; 124} 125 126PassRefPtr<Widget> EmptyFrameLoaderClient::createJavaAppletWidget(const IntSize&, HTMLAppletElement*, const KURL&, const Vector<String>&, const Vector<String>&) 127{ 128 return 0; 129} 130 131void EmptyTextCheckerClient::requestCheckingOfString(PassRefPtr<TextCheckingRequest>) 132{ 133} 134 135void EmptyEditorClient::registerUndoStep(PassRefPtr<UndoStep>) 136{ 137} 138 139void EmptyEditorClient::registerRedoStep(PassRefPtr<UndoStep>) 140{ 141} 142 143void EmptyFrameLoaderClient::didRequestAutocomplete(PassRefPtr<FormState>) 144{ 145} 146 147} 148