18e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/* 28e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Copyright 2007, The Android Open Source Project 38e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 48e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Redistribution and use in source and binary forms, with or without 58e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * modification, are permitted provided that the following conditions 68e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * are met: 78e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * * Redistributions of source code must retain the above copyright 88e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * notice, this list of conditions and the following disclaimer. 98e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * * Redistributions in binary form must reproduce the above copyright 108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * notice, this list of conditions and the following disclaimer in the 118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * documentation and/or other materials provided with the distribution. 128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY 148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 163298a7d84b96ade73c6b170671711a8f2792ae59Steve Block * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR 178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */ 258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#ifndef ChromeClientAndroid_h 278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define ChromeClientAndroid_h 288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "ChromeClient.h" 308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 319e4593fcc93d1bf0b5d5aa00b17ed2177c8eed06Steve Block#include "PopupMenu.h" 329e4593fcc93d1bf0b5d5aa00b17ed2177c8eed06Steve Block#include "SearchPopupMenu.h" 33fe55045391147883a38ed161b0c80f4e356bd9e0Steve Block#include "Timer.h" 349e4593fcc93d1bf0b5d5aa00b17ed2177c8eed06Steve Block#include <wtf/PassRefPtr.h> 359ca5793315e248418a353cc1443f3803ae0adfe6Steve Block#include <wtf/Threading.h> 36fe55045391147883a38ed161b0c80f4e356bd9e0Steve Block 37fe55045391147883a38ed161b0c80f4e356bd9e0Steve Blocknamespace WebCore { 389e4593fcc93d1bf0b5d5aa00b17ed2177c8eed06Steve Blockclass PopupMenuClient; 399e4593fcc93d1bf0b5d5aa00b17ed2177c8eed06Steve Blockclass Geolocation; 40fe55045391147883a38ed161b0c80f4e356bd9e0Steve Block} 416172bff036b26f8ea852196733426c6ff608ed8aBen Murdoch 428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectusing namespace WebCore; 438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectnamespace android { 458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project class WebFrame; 468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project class ChromeClientAndroid : public ChromeClient { 488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project public: 495c36c4ca9214cbbe65d12f6b138aef9618d41a99Steve Block ChromeClientAndroid() : m_webFrame(0) 50797e4f1087e408060f2812c79bddcd2b73a3830dNicolas Roard#if USE(ACCELERATED_COMPOSITING) 515c36c4ca9214cbbe65d12f6b138aef9618d41a99Steve Block , m_rootGraphicsLayer(0) 525c36c4ca9214cbbe65d12f6b138aef9618d41a99Steve Block , m_needsLayerSync(false) 53797e4f1087e408060f2812c79bddcd2b73a3830dNicolas Roard#endif 545c36c4ca9214cbbe65d12f6b138aef9618d41a99Steve Block , m_triedToReclaimDBQuota(false) 555c36c4ca9214cbbe65d12f6b138aef9618d41a99Steve Block { } 568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void chromeDestroyed(); 578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void setWindowRect(const FloatRect&); 598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual FloatRect windowRect(); 608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual FloatRect pageRect(); 628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual float scaleFactor(); 648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void focus(); 668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void unfocus(); 67192a29b13c95d88f942791ab92ebb0efb9fe369cLeon Scroggins virtual void formDidBlur(const WebCore::Node*); 688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual bool canTakeFocus(FocusDirection); 698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void takeFocus(FocusDirection); 70d5340bbd847b3fabb04f28f1aa8425f1874b0bb3Steve Block 71d5340bbd847b3fabb04f28f1aa8425f1874b0bb3Steve Block virtual void focusedNodeChanged(Node*); 7297349b6656c58e631c13b8552b077870a6a32ebaTeng-Hui Zhu virtual void focusedFrameChanged(Frame*); 73d5340bbd847b3fabb04f28f1aa8425f1874b0bb3Steve Block 748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // The Frame pointer provides the ChromeClient with context about which 758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // Frame wants to create the new Page. Also, the newly created window 768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // should not be shown to the user until the ChromeClient of the newly 778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // created Page has its show method called. 78f1f796b0c3a725a520ac41959a0db7855480e9deJohn Reck virtual Page* createWindow(Frame*, const FrameLoadRequest&, const WindowFeatures&, const NavigationAction&); 798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void show(); 808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual bool canRunModal(); 828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void runModal(); 838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void setToolbarsVisible(bool); 858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual bool toolbarsVisible(); 868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void setStatusbarVisible(bool); 888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual bool statusbarVisible(); 898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void setScrollbarsVisible(bool); 918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual bool scrollbarsVisible(); 928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void setMenubarVisible(bool); 948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual bool menubarVisible(); 958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void setResizable(bool); 972eef744339814ace28e6835115e7e389fb8b7962Andrei Popescu 982eef744339814ace28e6835115e7e389fb8b7962Andrei Popescu virtual void addMessageToConsole(MessageSource, MessageType, MessageLevel, const String& message, unsigned int lineNumber, const String& sourceID); 998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual bool canRunBeforeUnloadConfirmPanel(); 1018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual bool runBeforeUnloadConfirmPanel(const String& message, Frame* frame); 1028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void closeWindowSoon(); 1048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void runJavaScriptAlert(Frame*, const String&); 1068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual bool runJavaScriptConfirm(Frame*, const String&); 1078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual bool runJavaScriptPrompt(Frame*, const String& message, const String& defaultValue, String& result); 1088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void setStatusbarText(const String&); 1098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual bool shouldInterruptJavaScript(); 110fe73b6358fa742d943e85ba9a90544a7b6ba8d9dBen Murdoch virtual KeyboardUIMode keyboardUIMode(); 1118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual IntRect windowResizerRect() const; 1138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // Methods used by HostWindow. 11501eb58e0c8da43223275f0eb2a1e4691125405d1Steve Block virtual void invalidateWindow(const WebCore::IntRect&, bool); 11601eb58e0c8da43223275f0eb2a1e4691125405d1Steve Block virtual void invalidateContentsAndWindow(const WebCore::IntRect&, bool); 11701eb58e0c8da43223275f0eb2a1e4691125405d1Steve Block virtual void invalidateContentsForSlowScroll(const WebCore::IntRect&, bool); 1188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void scroll(const IntSize& scrollDelta, const IntRect& rectToScroll, const IntRect& clipRect); 1198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual IntPoint screenToWindow(const IntPoint&) const; 1208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual IntRect windowToScreen(const IntRect&) const; 121d060767c4de6a275194ee9a58f151b82b17013bfSteve Block virtual PlatformPageClient platformPageClient() const; 122635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project virtual void contentsSizeChanged(Frame*, const IntSize&) const; 1235f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian virtual void scrollRectIntoView(const IntRect&, const ScrollView*) const; 1248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // End methods used by HostWindow. 1258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1268db9f9e9e78973e25adf06722ce8f9126e92c60bShimeng (Simon) Wang virtual void dispatchViewportDataDidChange(const ViewportArguments&) const; 1278db9f9e9e78973e25adf06722ce8f9126e92c60bShimeng (Simon) Wang 128f08b6f6172b9dd1defce51b868f951bcbf6c61c7Steve Block virtual void scrollbarsModeDidChange() const; 1298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void mouseDidMoveOverElement(const HitTestResult&, unsigned int); 1302eef744339814ace28e6835115e7e389fb8b7962Andrei Popescu 1312eef744339814ace28e6835115e7e389fb8b7962Andrei Popescu virtual void setToolTip(const String&, TextDirection); 1328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void print(Frame*); 1348ccf722629b08f2a06b2cadbdc3d0c9dc885e25dBen Murdoch#if ENABLE(DATABASE) 1358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void exceededDatabaseQuota(Frame*, const String&); 1368ccf722629b08f2a06b2cadbdc3d0c9dc885e25dBen Murdoch#endif 137c60802dd50f86c37e0596d41c3ef6fc2c8804da4Andrei Popescu#if ENABLE(OFFLINE_WEB_APPLICATIONS) 138c60802dd50f86c37e0596d41c3ef6fc2c8804da4Andrei Popescu virtual void reachedMaxAppCacheSize(int64_t spaceNeeded); 139c4daefab2bd7617afd2562dad5353da63d239428Steve Block virtual void reachedApplicationCacheOriginQuota(SecurityOrigin*); 140c60802dd50f86c37e0596d41c3ef6fc2c8804da4Andrei Popescu#endif 1417e7a0fd96b7d18fa3562af3b2bb4c7516fe9babeLeon Clarke 1427e7a0fd96b7d18fa3562af3b2bb4c7516fe9babeLeon Clarke virtual void populateVisitedLinks(); 1437e7a0fd96b7d18fa3562af3b2bb4c7516fe9babeLeon Clarke 144f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch#if ENABLE(TOUCH_EVENTS) 145d1919980a4bbb7f3aa73a6a83110fbec0c220e59Ben Murdoch virtual void needTouchEvents(bool); 146f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch#endif 147f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch 148fe55045391147883a38ed161b0c80f4e356bd9e0Steve Block // Methods used to request and provide Geolocation permissions. 1495c36c4ca9214cbbe65d12f6b138aef9618d41a99Steve Block // Not used with client-based Geolocation 1505c36c4ca9214cbbe65d12f6b138aef9618d41a99Steve Block virtual void requestGeolocationPermissionForFrame(Frame*, Geolocation*) { ASSERT_NOT_REACHED(); } 1515c36c4ca9214cbbe65d12f6b138aef9618d41a99Steve Block virtual void cancelGeolocationPermissionRequestForFrame(WebCore::Frame*, WebCore::Geolocation*) { ASSERT_NOT_REACHED(); } 152fe55045391147883a38ed161b0c80f4e356bd9e0Steve Block 1538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void runOpenPanel(Frame*, PassRefPtr<FileChooser>); 1546c58635db69329cd8c46dc17dd670bdcbf1a889aBen Murdoch virtual void setCursor(const Cursor&); 15545b64f60af3cbfa8c78388e35e9b669a0c284bdcBen Murdoch virtual void chooseIconForFiles(const WTF::Vector<WTF::String>&, FileChooser*); 1568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 157635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project // Notification that the given form element has changed. This function 158635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project // will be called frequently, so handling should be very fast. 159635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project virtual void formStateDidChange(const Node*); 160635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project 1616172bff036b26f8ea852196733426c6ff608ed8aBen Murdoch // Android-specific 1628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setWebFrame(android::WebFrame* webframe); 1635b71639dd156f6224bbb25ed257ac70374641f6bSteve Block android::WebFrame* webFrame() { return m_webFrame; } 16463da3f053ab8a3590e4dcd4a51056cb2d277a7d8Steve Block void wakeUpMainThreadWithNewQuota(long long newQuota); 165797e4f1087e408060f2812c79bddcd2b73a3830dNicolas Roard 166797e4f1087e408060f2812c79bddcd2b73a3830dNicolas Roard#if USE(ACCELERATED_COMPOSITING) 167797e4f1087e408060f2812c79bddcd2b73a3830dNicolas Roard virtual void attachRootGraphicsLayer(WebCore::Frame*, WebCore::GraphicsLayer* g); 168797e4f1087e408060f2812c79bddcd2b73a3830dNicolas Roard virtual void setNeedsOneShotDrawingSynchronization(); 169797e4f1087e408060f2812c79bddcd2b73a3830dNicolas Roard virtual void scheduleCompositingLayerSync(); 170211482b53e73a386e2aabb0d3acb92e0e7ea22d4Nicolas Roard virtual bool allowsAcceleratedCompositing() const { return true; } 1716d43b9ceb777071c088fe12ee94af80e34816bcfGrace Kloba WebCore::GraphicsLayer* layersSync(); 172797e4f1087e408060f2812c79bddcd2b73a3830dNicolas Roard#endif 173797e4f1087e408060f2812c79bddcd2b73a3830dNicolas Roard 1749e4593fcc93d1bf0b5d5aa00b17ed2177c8eed06Steve Block virtual bool selectItemWritingDirectionIsNatural(); 17589ff5bedced41f7901101fa36064aa99b78aa3f4Steve Block virtual bool selectItemAlignmentFollowsMenuWritingDirection(); 1769e4593fcc93d1bf0b5d5aa00b17ed2177c8eed06Steve Block virtual PassRefPtr<WebCore::PopupMenu> createPopupMenu(WebCore::PopupMenuClient*) const; 1779e4593fcc93d1bf0b5d5aa00b17ed2177c8eed06Steve Block virtual PassRefPtr<WebCore::SearchPopupMenu> createSearchPopupMenu(WebCore::PopupMenuClient*) const; 1789e4593fcc93d1bf0b5d5aa00b17ed2177c8eed06Steve Block 17902f88d26cf0763bd684a752045695aaf902844bcTeng-Hui Zhu#if ENABLE(CONTEXT_MENUS) 18002f88d26cf0763bd684a752045695aaf902844bcTeng-Hui Zhu virtual void showContextMenu(); 18102f88d26cf0763bd684a752045695aaf902844bcTeng-Hui Zhu#endif 18202f88d26cf0763bd684a752045695aaf902844bcTeng-Hui Zhu 183bb6c037d4178a0b35e964651e09323c8d714f435Teng-Hui Zhu#if ENABLE(FULLSCREEN_API) 184bb6c037d4178a0b35e964651e09323c8d714f435Teng-Hui Zhu virtual void exitFullScreenForElement(Element*); 185bb6c037d4178a0b35e964651e09323c8d714f435Teng-Hui Zhu#endif 186bb6c037d4178a0b35e964651e09323c8d714f435Teng-Hui Zhu 187cc2679391d89b57997f78365d54d99c9ae062db3Nicolas Roard#if ENABLE(VIDEO) 188cc2679391d89b57997f78365d54d99c9ae062db3Nicolas Roard virtual bool supportsFullscreenForNode(const WebCore::Node*); 189cc2679391d89b57997f78365d54d99c9ae062db3Nicolas Roard virtual void enterFullscreenForNode(WebCore::Node*); 190cc2679391d89b57997f78365d54d99c9ae062db3Nicolas Roard virtual void exitFullscreenForNode(WebCore::Node*); 191cc2679391d89b57997f78365d54d99c9ae062db3Nicolas Roard#endif 192cc2679391d89b57997f78365d54d99c9ae062db3Nicolas Roard 193ee694a26d2441be3e10fa2d66232ec3d3a07f5c7Steve Block virtual void* webView() const { return 0; } 194ee694a26d2441be3e10fa2d66232ec3d3a07f5c7Steve Block 1958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project private: 1968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project android::WebFrame* m_webFrame; 197797e4f1087e408060f2812c79bddcd2b73a3830dNicolas Roard#if USE(ACCELERATED_COMPOSITING) 198797e4f1087e408060f2812c79bddcd2b73a3830dNicolas Roard WebCore::GraphicsLayer* m_rootGraphicsLayer; 199bad8b91f026f7b63252113590bab4c73a7092214Nicolas Roard bool m_needsLayerSync; 200797e4f1087e408060f2812c79bddcd2b73a3830dNicolas Roard#endif 2016172bff036b26f8ea852196733426c6ff608ed8aBen Murdoch WTF::ThreadCondition m_quotaThreadCondition; 2026172bff036b26f8ea852196733426c6ff608ed8aBen Murdoch WTF::Mutex m_quotaThreadLock; 20363da3f053ab8a3590e4dcd4a51056cb2d277a7d8Steve Block unsigned long long m_newQuota; 20463da3f053ab8a3590e4dcd4a51056cb2d277a7d8Steve Block bool m_isNewQuotaSet; 205fd1655b631e1deeaf68e31673486b66e707b6f36Ben Murdoch bool m_triedToReclaimDBQuota; 2068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project }; 2078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 2098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 211