Remove unused ChromeClient::formStateDidChange().
[WebKit-https.git] / Source / WebKit / win / WebCoreSupport / WebChromeClient.h
1 /*
2  * Copyright (C) 2006, 2007, 2008, 2009 Apple Inc. All rights reserved.
3  * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification, are permitted provided that the following conditions
7  * are met:
8  * 1. Redistributions of source code must retain the above copyright
9  *    notice, this list of conditions and the following disclaimer.
10  * 2. Redistributions in binary form must reproduce the above copyright
11  *    notice, this list of conditions and the following disclaimer in the
12  *    documentation and/or other materials provided with the distribution.
13  *
14  * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
15  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
17  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
18  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
19  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
20  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
21  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
22  * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
24  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
25  */
26
27 #include <WebCore/ChromeClient.h>
28 #include <WebCore/COMPtr.h>
29 #include <WebCore/GraphicsContext.h>
30 #include <WebCore/FocusDirection.h>
31 #include <WebCore/ScrollTypes.h>
32 #include <wtf/Forward.h>
33 #include <wtf/PassRefPtr.h>
34
35 class WebView;
36 class WebDesktopNotificationsDelegate;
37
38 interface IWebUIDelegate;
39
40 class WebChromeClient : public WebCore::ChromeClient {
41 public:
42     WebChromeClient(WebView*);
43
44     virtual void chromeDestroyed();
45
46     virtual void setWindowRect(const WebCore::FloatRect&);
47     virtual WebCore::FloatRect windowRect();
48     
49     virtual WebCore::FloatRect pageRect();
50
51     virtual void focus();
52     virtual void unfocus();
53
54     virtual bool canTakeFocus(WebCore::FocusDirection);
55     virtual void takeFocus(WebCore::FocusDirection);
56
57     virtual void focusedElementChanged(WebCore::Element*);
58     virtual void focusedFrameChanged(WebCore::Frame*);
59
60     virtual WebCore::Page* createWindow(WebCore::Frame*, const WebCore::FrameLoadRequest&, const WebCore::WindowFeatures&, const WebCore::NavigationAction&);
61     virtual void show();
62
63     virtual bool canRunModal();
64     virtual void runModal();
65
66     virtual void setToolbarsVisible(bool);
67     virtual bool toolbarsVisible();
68     
69     virtual void setStatusbarVisible(bool);
70     virtual bool statusbarVisible();
71     
72     virtual void setScrollbarsVisible(bool);
73     virtual bool scrollbarsVisible();
74     
75     virtual void setMenubarVisible(bool);
76     virtual bool menubarVisible();
77
78     virtual void setResizable(bool);
79
80     virtual void addMessageToConsole(Inspector::MessageSource, Inspector::MessageLevel, const WTF::String& message, unsigned lineNumber, unsigned columnNumber, const WTF::String& url);
81
82     virtual bool canRunBeforeUnloadConfirmPanel();
83     virtual bool runBeforeUnloadConfirmPanel(const WTF::String& message, WebCore::Frame* frame);
84
85     virtual void closeWindowSoon();
86
87     virtual void runJavaScriptAlert(WebCore::Frame*, const WTF::String&);
88     virtual bool runJavaScriptConfirm(WebCore::Frame*, const WTF::String&);
89     virtual bool runJavaScriptPrompt(WebCore::Frame*, const WTF::String& message, const WTF::String& defaultValue, WTF::String& result);
90     virtual void setStatusbarText(const WTF::String&);
91     virtual bool shouldInterruptJavaScript();
92
93     virtual WebCore::KeyboardUIMode keyboardUIMode();
94     virtual WebCore::IntRect windowResizerRect() const;
95
96     virtual void invalidateRootView(const WebCore::IntRect&, bool);
97     virtual void invalidateContentsAndRootView(const WebCore::IntRect&, bool);
98     virtual void invalidateContentsForSlowScroll(const WebCore::IntRect&, bool);
99     virtual void scroll(const WebCore::IntSize& scrollDelta, const WebCore::IntRect& rectToScroll, const WebCore::IntRect& clipRect);
100
101     virtual WebCore::IntPoint screenToRootView(const WebCore::IntPoint&) const;
102     virtual WebCore::IntRect rootViewToScreen(const WebCore::IntRect&) const;
103     virtual PlatformPageClient platformPageClient() const;
104     virtual void contentsSizeChanged(WebCore::Frame*, const WebCore::IntSize&) const;
105
106     virtual void scrollbarsModeDidChange() const { }
107     virtual void mouseDidMoveOverElement(const WebCore::HitTestResult&, unsigned modifierFlags);
108     virtual bool shouldUnavailablePluginMessageBeButton(WebCore::RenderEmbeddedObject::PluginUnavailabilityReason) const;
109     virtual void unavailablePluginButtonClicked(WebCore::Element*, WebCore::RenderEmbeddedObject::PluginUnavailabilityReason) const;
110
111     virtual void setToolTip(const WTF::String&, WebCore::TextDirection);
112
113     virtual void print(WebCore::Frame*);
114
115 #if ENABLE(SQL_DATABASE)
116     virtual void exceededDatabaseQuota(WebCore::Frame*, const WTF::String&, WebCore::DatabaseDetails);
117 #endif
118
119     virtual void reachedMaxAppCacheSize(int64_t spaceNeeded);
120     virtual void reachedApplicationCacheOriginQuota(WebCore::SecurityOrigin*, int64_t totalSpaceNeeded);
121
122     virtual void populateVisitedLinks();
123
124     virtual void runOpenPanel(WebCore::Frame*, PassRefPtr<WebCore::FileChooser>);
125     virtual void loadIconForFiles(const Vector<WTF::String>&, WebCore::FileIconLoader*);
126
127     virtual void setCursor(const WebCore::Cursor&);
128     virtual void setCursorHiddenUntilMouseMoves(bool);
129     virtual void setLastSetCursorToCurrentCursor();
130
131     // Pass 0 as the GraphicsLayer to detatch the root layer.
132     virtual void attachRootGraphicsLayer(WebCore::Frame*, WebCore::GraphicsLayer*);
133     // Sets a flag to specify that the next time content is drawn to the window,
134     // the changes appear on the screen in synchrony with updates to GraphicsLayers.
135     virtual void setNeedsOneShotDrawingSynchronization() { }
136     // Sets a flag to specify that the view needs to be updated, so we need
137     // to do an eager layout before the drawing.
138     virtual void scheduleCompositingLayerFlush();
139
140 #if USE(TILED_BACKING_STORE)
141     virtual void delegatedScrollRequested(const WebCore::IntPoint&) { }
142 #endif
143
144 #if PLATFORM(WIN) && USE(AVFOUNDATION)
145     virtual WebCore::GraphicsDeviceAdapter* graphicsDeviceAdapter() const override;
146 #endif
147
148     virtual void scrollRectIntoView(const WebCore::IntRect&) const { }
149
150 #if ENABLE(VIDEO)
151     virtual bool supportsFullscreenForNode(const WebCore::Node*);
152     virtual void enterFullscreenForNode(WebCore::Node*);
153     virtual void exitFullscreenForNode(WebCore::Node*);
154 #endif
155
156 #if ENABLE(NOTIFICATIONS) || ENABLE(LEGACY_NOTIFICATIONS)
157     virtual WebCore::NotificationClient* notificationPresenter() const { return reinterpret_cast<WebCore::NotificationClient*>(m_notificationsDelegate.get()); }
158 #endif
159
160     virtual bool selectItemWritingDirectionIsNatural();
161     virtual bool selectItemAlignmentFollowsMenuWritingDirection();
162     virtual bool hasOpenedPopup() const;
163     virtual PassRefPtr<WebCore::PopupMenu> createPopupMenu(WebCore::PopupMenuClient*) const;
164     virtual PassRefPtr<WebCore::SearchPopupMenu> createSearchPopupMenu(WebCore::PopupMenuClient*) const;
165
166 #if ENABLE(FULLSCREEN_API)
167     virtual bool supportsFullScreenForElement(const WebCore::Element*, bool withKeyboard);
168     virtual void enterFullScreenForElement(WebCore::Element*);
169     virtual void exitFullScreenForElement(WebCore::Element*);
170 #endif
171
172     virtual void numWheelEventHandlersChanged(unsigned) { }
173
174     WebView* webView() { return m_webView; }
175
176     virtual void AXStartFrameLoad();
177     virtual void AXFinishFrameLoad();
178
179 private:
180     COMPtr<IWebUIDelegate> uiDelegate();
181
182     WebView* m_webView;
183
184 #if ENABLE(NOTIFICATIONS) || ENABLE(LEGACY_NOTIFICATIONS)
185     OwnPtr<WebDesktopNotificationsDelegate> m_notificationsDelegate;
186 #endif
187 };