15c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)/* 25c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * Copyright (C) 2006 Eric Seidel <eric@webkit.org> 35c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * Copyright (C) 2008, 2009, 2012 Apple Inc. All rights reserved. 45c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * Copyright (C) Research In Motion Limited 2011. All rights reserved. 55c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * 65c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * Redistribution and use in source and binary forms, with or without 75c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * modification, are permitted provided that the following conditions 85c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * are met: 95c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * 1. Redistributions of source code must retain the above copyright 105c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * notice, this list of conditions and the following disclaimer. 115c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * 2. Redistributions in binary form must reproduce the above copyright 125c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * notice, this list of conditions and the following disclaimer in the 135c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * documentation and/or other materials provided with the distribution. 145c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * 155c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY 165c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 175c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 185c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR 195c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 205c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 215c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 225c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 235c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 245c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 2502772c6a72f1ee0b226341a4f4439970c29fc861Ben Murdoch * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 265c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 275c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 285c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#include "config.h" 2953e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)#include "core/loader/EmptyClients.h" 305c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 3153e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)#include "core/html/HTMLFormElement.h" 3253e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)#include "core/loader/DocumentLoader.h" 3353e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)#include "core/loader/FormState.h" 341e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#include "core/frame/Frame.h" 3519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)#include "platform/ColorChooser.h" 3619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)#include "platform/DateTimeChooser.h" 371e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#include "platform/FileChooser.h" 381e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#include "public/platform/WebServiceWorkerProvider.h" 391e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#include "public/platform/WebServiceWorkerProviderClient.h" 405c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 415c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)namespace WebCore { 425c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 435c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)void fillWithEmptyClients(Page::PageClients& pageClients) 445c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles){ 455c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) static ChromeClient* dummyChromeClient = adoptPtr(new EmptyChromeClient).leakPtr(); 465c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) pageClients.chromeClient = dummyChromeClient; 475c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 485c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) static ContextMenuClient* dummyContextMenuClient = adoptPtr(new EmptyContextMenuClient).leakPtr(); 495c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) pageClients.contextMenuClient = dummyContextMenuClient; 505c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 515c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) static DragClient* dummyDragClient = adoptPtr(new EmptyDragClient).leakPtr(); 525c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) pageClients.dragClient = dummyDragClient; 535c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 545c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) static EditorClient* dummyEditorClient = adoptPtr(new EmptyEditorClient).leakPtr(); 555c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) pageClients.editorClient = dummyEditorClient; 565c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 575c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) static InspectorClient* dummyInspectorClient = adoptPtr(new EmptyInspectorClient).leakPtr(); 585c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) pageClients.inspectorClient = dummyInspectorClient; 5953e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles) 6053e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles) static BackForwardClient* dummyBackForwardClient = adoptPtr(new EmptyBackForwardClient).leakPtr(); 6153e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles) pageClients.backForwardClient = dummyBackForwardClient; 6251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles) 6351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles) static SpellCheckerClient* dummySpellCheckerClient = adoptPtr(new EmptySpellCheckerClient).leakPtr(); 6451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles) pageClients.spellCheckerClient = dummySpellCheckerClient; 655c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)} 665c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 675c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)class EmptyPopupMenu : public PopupMenu { 685c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)public: 6993ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) virtual void show(const FloatQuad&, const IntSize&, int) OVERRIDE { } 7093ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) virtual void hide() OVERRIDE { } 7193ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) virtual void updateFromElement() OVERRIDE { } 7293ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) virtual void disconnectClient() OVERRIDE { } 735c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)}; 745c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 7593ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles)PassRefPtr<PopupMenu> EmptyChromeClient::createPopupMenu(Frame&, PopupMenuClient*) const 765c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles){ 775c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return adoptRef(new EmptyPopupMenu()); 785c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)} 795c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 805c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)PassOwnPtr<ColorChooser> EmptyChromeClient::createColorChooser(ColorChooserClient*, const Color&) 815c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles){ 825c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return nullptr; 835c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)} 845c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 855c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)PassRefPtr<DateTimeChooser> EmptyChromeClient::openDateTimeChooser(DateTimeChooserClient*, const DateTimeChooserParameters&) 865c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles){ 875c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return PassRefPtr<DateTimeChooser>(); 885c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)} 895c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 90e08f70592b3fc0d5e68b9b914c9196e813720070Torne (Richard Coles)void EmptyChromeClient::openTextDataListChooser(HTMLInputElement&) 91e08f70592b3fc0d5e68b9b914c9196e813720070Torne (Richard Coles){ 92e08f70592b3fc0d5e68b9b914c9196e813720070Torne (Richard Coles)} 93e08f70592b3fc0d5e68b9b914c9196e813720070Torne (Richard Coles) 945c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)void EmptyChromeClient::runOpenPanel(Frame*, PassRefPtr<FileChooser>) 955c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles){ 965c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)} 975c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 98521d96ec04ace82590870fb04353ec4f82bb150fTorne (Richard Coles)String EmptyChromeClient::acceptLanguages() 99521d96ec04ace82590870fb04353ec4f82bb150fTorne (Richard Coles){ 100521d96ec04ace82590870fb04353ec4f82bb150fTorne (Richard Coles) return String(); 101521d96ec04ace82590870fb04353ec4f82bb150fTorne (Richard Coles)} 102521d96ec04ace82590870fb04353ec4f82bb150fTorne (Richard Coles) 103e1f1df5f01594c0e62e751e4b46e779b85c2faa5Torne (Richard Coles)NavigationPolicy EmptyFrameLoaderClient::decidePolicyForNavigation(const ResourceRequest&, DocumentLoader*, NavigationPolicy) 1045c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles){ 105e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch return NavigationPolicyIgnore; 1065c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)} 1075c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 1085c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)void EmptyFrameLoaderClient::dispatchWillSendSubmitEvent(PassRefPtr<FormState>) 1095c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles){ 1105c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)} 1115c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 11253e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)void EmptyFrameLoaderClient::dispatchWillSubmitForm(PassRefPtr<FormState>) 1135c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles){ 1145c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)} 1155c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 1165c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)PassRefPtr<DocumentLoader> EmptyFrameLoaderClient::createDocumentLoader(const ResourceRequest& request, const SubstituteData& substituteData) 1175c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles){ 1185c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return DocumentLoader::create(request, substituteData); 1195c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)} 1205c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 121c0e19a689c8ac22cdc96b291a8d33a5d3b0b34a4Torne (Richard Coles)PassRefPtr<Frame> EmptyFrameLoaderClient::createFrame(const KURL&, const String&, const String&, HTMLFrameOwnerElement*) 1225c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles){ 1235c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return 0; 1245c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)} 1255c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 1265c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)PassRefPtr<Widget> EmptyFrameLoaderClient::createPlugin(const IntSize&, HTMLPlugInElement*, const KURL&, const Vector<String>&, const Vector<String>&, const String&, bool) 1275c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles){ 1285c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return 0; 1295c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)} 1305c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 1315c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)PassRefPtr<Widget> EmptyFrameLoaderClient::createJavaAppletWidget(const IntSize&, HTMLAppletElement*, const KURL&, const Vector<String>&, const Vector<String>&) 1325c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles){ 1335c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return 0; 1345c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)} 1355c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 1365c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)void EmptyTextCheckerClient::requestCheckingOfString(PassRefPtr<TextCheckingRequest>) 1375c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles){ 1385c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)} 1395c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 1405c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)void EmptyFrameLoaderClient::didRequestAutocomplete(PassRefPtr<FormState>) 1415c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles){ 1425c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)} 1435c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 14451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)PassOwnPtr<blink::WebServiceWorkerProvider> EmptyFrameLoaderClient::createServiceWorkerProvider(PassOwnPtr<blink::WebServiceWorkerProviderClient>) 1451e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){ 1461e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) return nullptr; 1471e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)} 1481e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) 1495c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)} 150