1bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen/* 265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * Copyright (C) 2010 Apple Inc. All rights reserved. 365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). 4bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen * 5bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen * Redistribution and use in source and binary forms, with or without 6bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen * modification, are permitted provided that the following conditions 7bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen * are met: 8bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen * 1. Redistributions of source code must retain the above copyright 9bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen * notice, this list of conditions and the following disclaimer. 10bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen * 2. Redistributions in binary form must reproduce the above copyright 11bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen * notice, this list of conditions and the following disclaimer in the 12bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen * documentation and/or other materials provided with the distribution. 13bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen * 1465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' 1565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 1665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 1765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS 1865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 1965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 2065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 2165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 2265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 2365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF 2465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * THE POSSIBILITY OF SUCH DAMAGE. 25bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen */ 26bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen 2765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#ifndef WebChromeClient_h 2865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#define WebChromeClient_h 29bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen 3065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#include <WebCore/ChromeClient.h> 3165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#include <WebCore/ViewportArguments.h> 3265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#include <wtf/text/WTFString.h> 33bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen 34bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsennamespace WebKit { 35bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen 3665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochclass WebFrame; 3765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochclass WebPage; 38bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen 3965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochclass WebChromeClient : public WebCore::ChromeClient { 4065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochpublic: 4165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch WebChromeClient(WebPage* page) 422fc2651226baac27029e38c9d6ef883fa32084dbSteve Block : m_cachedMainFrameHasHorizontalScrollbar(false) 432fc2651226baac27029e38c9d6ef883fa32084dbSteve Block , m_cachedMainFrameHasVerticalScrollbar(false) 442fc2651226baac27029e38c9d6ef883fa32084dbSteve Block , m_page(page) 4565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch { 4665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch } 4765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 4865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch WebPage* page() const { return m_page; } 492fc2651226baac27029e38c9d6ef883fa32084dbSteve Block 5054cdeeebc7adcbcd900e8b6a141a8cae27d9a631Steve Block virtual void* webView() const { return 0; } 5154cdeeebc7adcbcd900e8b6a141a8cae27d9a631Steve Block 5265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochprivate: 53bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen virtual void chromeDestroyed(); 5465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 55bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen virtual void setWindowRect(const WebCore::FloatRect&); 56bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen virtual WebCore::FloatRect windowRect(); 5765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 58bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen virtual WebCore::FloatRect pageRect(); 5965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 60bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen virtual float scaleFactor(); 6165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 62bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen virtual void focus(); 63bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen virtual void unfocus(); 6465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 65bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen virtual bool canTakeFocus(WebCore::FocusDirection); 66bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen virtual void takeFocus(WebCore::FocusDirection); 67bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen 68bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen virtual void focusedNodeChanged(WebCore::Node*); 696b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner virtual void focusedFrameChanged(WebCore::Frame*); 70bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen 71bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen // The Frame pointer provides the ChromeClient with context about which 72bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen // Frame wants to create the new Page. Also, the newly created window 73bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen // should not be shown to the user until the ChromeClient of the newly 74bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen // created Page has its show method called. 75e14391e94c850b8bd03680c23b38978db68687a8John Reck virtual WebCore::Page* createWindow(WebCore::Frame*, const WebCore::FrameLoadRequest&, const WebCore::WindowFeatures&, const WebCore::NavigationAction&); 76bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen virtual void show(); 7765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 78bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen virtual bool canRunModal(); 79bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen virtual void runModal(); 8065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 81bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen virtual void setToolbarsVisible(bool); 82bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen virtual bool toolbarsVisible(); 8365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 84bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen virtual void setStatusbarVisible(bool); 85bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen virtual bool statusbarVisible(); 8665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 87bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen virtual void setScrollbarsVisible(bool); 88bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen virtual bool scrollbarsVisible(); 8965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 90bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen virtual void setMenubarVisible(bool); 91bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen virtual bool menubarVisible(); 9265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 93bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen virtual void setResizable(bool); 9465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 9565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch virtual void addMessageToConsole(WebCore::MessageSource, WebCore::MessageType, WebCore::MessageLevel, const String& message, unsigned int lineNumber, const String& sourceID); 9665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 97bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen virtual bool canRunBeforeUnloadConfirmPanel(); 9865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch virtual bool runBeforeUnloadConfirmPanel(const String& message, WebCore::Frame* frame); 9965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 100bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen virtual void closeWindowSoon(); 10165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 10265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch virtual void runJavaScriptAlert(WebCore::Frame*, const String&); 10365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch virtual bool runJavaScriptConfirm(WebCore::Frame*, const String&); 10465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch virtual bool runJavaScriptPrompt(WebCore::Frame*, const String& message, const String& defaultValue, String& result); 10565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch virtual void setStatusbarText(const String&); 106bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen virtual bool shouldInterruptJavaScript(); 10781bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch 10881bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch virtual WebCore::KeyboardUIMode keyboardUIMode(); 10981bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch 110bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen virtual WebCore::IntRect windowResizerRect() const; 11165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 112bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen // Methods used by HostWindow. 113bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen virtual void invalidateWindow(const WebCore::IntRect&, bool); 114bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen virtual void invalidateContentsAndWindow(const WebCore::IntRect&, bool); 115bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen virtual void invalidateContentsForSlowScroll(const WebCore::IntRect&, bool); 116ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch virtual void scroll(const WebCore::IntSize& scrollOffset, const WebCore::IntRect& scrollRect, const WebCore::IntRect& clipRect); 11765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#if ENABLE(TILED_BACKING_STORE) 1182bde8e466a4451c7319e3a072d118917957d6554Steve Block virtual void delegatedScrollRequested(const WebCore::IntPoint& scrollOffset); 11965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#endif 120bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen virtual WebCore::IntPoint screenToWindow(const WebCore::IntPoint&) const; 121bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen virtual WebCore::IntRect windowToScreen(const WebCore::IntRect&) const; 122bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen virtual PlatformPageClient platformPageClient() const; 123bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen virtual void contentsSizeChanged(WebCore::Frame*, const WebCore::IntSize&) const; 124bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen virtual void scrollRectIntoView(const WebCore::IntRect&, const WebCore::ScrollView*) const; // Currently only Mac has a non empty implementation. 125bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen // End methods used by HostWindow. 126bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen 12765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch virtual bool shouldMissingPluginMessageBeButton() const; 12865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch virtual void missingPluginButtonClicked(WebCore::Element*) const; 129bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen 13065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch virtual void scrollbarsModeDidChange() const; 13165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch virtual void mouseDidMoveOverElement(const WebCore::HitTestResult&, unsigned modifierFlags); 13265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 13365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch virtual void setToolTip(const String&, WebCore::TextDirection); 13465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 135bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen virtual void print(WebCore::Frame*); 13665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 137bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen#if ENABLE(DATABASE) 13865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch virtual void exceededDatabaseQuota(WebCore::Frame*, const String& databaseName); 139bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen#endif 140bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen 141bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen#if ENABLE(OFFLINE_WEB_APPLICATIONS) 142cad810f21b803229eb11403f9209855525a25d57Steve Block virtual void reachedMaxAppCacheSize(int64_t spaceNeeded); 143cad810f21b803229eb11403f9209855525a25d57Steve Block virtual void reachedApplicationCacheOriginQuota(WebCore::SecurityOrigin*); 144bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen#endif 145bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen 14665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#if ENABLE(DASHBOARD_SUPPORT) 14765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch virtual void dashboardRegionsChanged(); 148bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen#endif 149bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen 15065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch virtual void populateVisitedLinks(); 15165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 15265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch virtual WebCore::FloatRect customHighlightRect(WebCore::Node*, const WTF::AtomicString& type, const WebCore::FloatRect& lineRect); 15365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch virtual void paintCustomHighlight(WebCore::Node*, const WTF::AtomicString& type, const WebCore::FloatRect& boxRect, const WebCore::FloatRect& lineRect, 15465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch bool behindText, bool entireLine); 15565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 15665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch virtual bool shouldReplaceWithGeneratedFileForUpload(const String& path, String& generatedFilename); 15765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch virtual String generateReplacementFile(const String& path); 15865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 15965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch virtual bool paintCustomScrollbar(WebCore::GraphicsContext*, const WebCore::FloatRect&, WebCore::ScrollbarControlSize, 16065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch WebCore::ScrollbarControlState, WebCore::ScrollbarPart pressedPart, bool vertical, 16165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch float value, float proportion, WebCore::ScrollbarControlPartMask); 16265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch virtual bool paintCustomScrollCorner(WebCore::GraphicsContext*, const WebCore::FloatRect&); 1632fc2651226baac27029e38c9d6ef883fa32084dbSteve Block 1642fc2651226baac27029e38c9d6ef883fa32084dbSteve Block virtual bool paintCustomOverhangArea(WebCore::GraphicsContext*, const WebCore::IntRect&, const WebCore::IntRect&, const WebCore::IntRect&); 1652fc2651226baac27029e38c9d6ef883fa32084dbSteve Block 16665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch // This is an asynchronous call. The ChromeClient can display UI asking the user for permission 16765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch // to use Geolococation. The ChromeClient must call Geolocation::setShouldClearCache() appropriately. 168bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen virtual void requestGeolocationPermissionForFrame(WebCore::Frame*, WebCore::Geolocation*); 169bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen virtual void cancelGeolocationPermissionRequestForFrame(WebCore::Frame*, WebCore::Geolocation*); 1702fc2651226baac27029e38c9d6ef883fa32084dbSteve Block 171bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen virtual void runOpenPanel(WebCore::Frame*, PassRefPtr<WebCore::FileChooser>); 17265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch virtual void chooseIconForFiles(const Vector<String>&, WebCore::FileChooser*); 173bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen 17465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch virtual void setCursor(const WebCore::Cursor&); 1752fc2651226baac27029e38c9d6ef883fa32084dbSteve Block 176bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen // Notification that the given form element has changed. This function 177bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen // will be called frequently, so handling should be very fast. 178bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen virtual void formStateDidChange(const WebCore::Node*); 1792fc2651226baac27029e38c9d6ef883fa32084dbSteve Block 18065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch virtual void formDidFocus(const WebCore::Node*); 18165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch virtual void formDidBlur(const WebCore::Node*); 182bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen 18365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch virtual bool selectItemWritingDirectionIsNatural(); 1842fc2651226baac27029e38c9d6ef883fa32084dbSteve Block virtual bool selectItemAlignmentFollowsMenuWritingDirection(); 18565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch virtual PassRefPtr<WebCore::PopupMenu> createPopupMenu(WebCore::PopupMenuClient*) const; 18665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch virtual PassRefPtr<WebCore::SearchPopupMenu> createSearchPopupMenu(WebCore::PopupMenuClient*) const; 18765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 18865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#if ENABLE(CONTEXT_MENUS) 18965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch virtual void showContextMenu(); 19065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#endif 19165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 192bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen#if USE(ACCELERATED_COMPOSITING) 193bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen virtual void attachRootGraphicsLayer(WebCore::Frame*, WebCore::GraphicsLayer*); 194bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen virtual void setNeedsOneShotDrawingSynchronization(); 195bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen virtual void scheduleCompositingLayerSync(); 196bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen#endif 197bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen 19865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#if ENABLE(NOTIFICATIONS) 19965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch virtual WebCore::NotificationPresenter* notificationPresenter() const; 20065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#endif 201bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen 202bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen#if ENABLE(TOUCH_EVENTS) 203bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen virtual void needTouchEvents(bool); 204bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen#endif 205bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen 20665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#if PLATFORM(WIN) 20765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch virtual void setLastSetCursorToCurrentCursor(); 20865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#endif 209bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen 2102bde8e466a4451c7319e3a072d118917957d6554Steve Block#if ENABLE(FULLSCREEN_API) 2112bde8e466a4451c7319e3a072d118917957d6554Steve Block virtual bool supportsFullScreenForElement(const WebCore::Element*, bool withKeyboard); 2122bde8e466a4451c7319e3a072d118917957d6554Steve Block virtual void enterFullScreenForElement(WebCore::Element*); 2132bde8e466a4451c7319e3a072d118917957d6554Steve Block virtual void exitFullScreenForElement(WebCore::Element*); 2142bde8e466a4451c7319e3a072d118917957d6554Steve Block virtual void setRootFullScreenLayer(WebCore::GraphicsLayer*); 2152bde8e466a4451c7319e3a072d118917957d6554Steve Block#endif 2162bde8e466a4451c7319e3a072d118917957d6554Steve Block 21765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch virtual void dispatchViewportDataDidChange(const WebCore::ViewportArguments&) const; 21865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 2192fc2651226baac27029e38c9d6ef883fa32084dbSteve Block virtual void didCompleteRubberBandForMainFrame(const WebCore::IntSize&) const; 2202fc2651226baac27029e38c9d6ef883fa32084dbSteve Block 22165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch String m_cachedToolTip; 22265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch mutable RefPtr<WebFrame> m_cachedFrameSetLargestFrame; 2232fc2651226baac27029e38c9d6ef883fa32084dbSteve Block mutable bool m_cachedMainFrameHasHorizontalScrollbar; 2242fc2651226baac27029e38c9d6ef883fa32084dbSteve Block mutable bool m_cachedMainFrameHasVerticalScrollbar; 2252fc2651226baac27029e38c9d6ef883fa32084dbSteve Block 22665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch WebPage* m_page; 227bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen}; 228bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen 229bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen} // namespace WebKit 230bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen 23165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#endif // WebChromeClient_h 232