Index: webkit/api/src/ChromeClientImpl.h |
=================================================================== |
--- webkit/api/src/ChromeClientImpl.h (revision 30163) |
+++ webkit/api/src/ChromeClientImpl.h (working copy) |
@@ -1,9 +1,35 @@ |
-// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
+/* |
+ * Copyright (C) 2009 Google Inc. All rights reserved. |
+ * |
+ * Redistribution and use in source and binary forms, with or without |
+ * modification, are permitted provided that the following conditions are |
+ * met: |
+ * |
+ * * Redistributions of source code must retain the above copyright |
+ * notice, this list of conditions and the following disclaimer. |
+ * * Redistributions in binary form must reproduce the above |
+ * copyright notice, this list of conditions and the following disclaimer |
+ * in the documentation and/or other materials provided with the |
+ * distribution. |
+ * * Neither the name of Google Inc. nor the names of its |
+ * contributors may be used to endorse or promote products derived from |
+ * this software without specific prior written permission. |
+ * |
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
+ */ |
-#ifndef WEBKIT_GLUE_CHROME_CLIENT_IMPL_H_ |
-#define WEBKIT_GLUE_CHROME_CLIENT_IMPL_H_ |
+#ifndef ChromeClientImpl_h |
+#define ChromeClientImpl_h |
#include "ChromeClientChromium.h" |
@@ -19,146 +45,111 @@ |
namespace WebKit { |
struct WebCursorInfo; |
struct WebPopupMenuInfo; |
-} |
// Handles window-level notifications from WebCore on behalf of a WebView. |
class ChromeClientImpl : public WebCore::ChromeClientChromium { |
- public: |
- explicit ChromeClientImpl(WebViewImpl* webview); |
- virtual ~ChromeClientImpl(); |
+public: |
+ explicit ChromeClientImpl(WebViewImpl* webView); |
+ virtual ~ChromeClientImpl(); |
- WebViewImpl* webview() const { return webview_; } |
+ WebViewImpl* webview() const { return m_webView; } |
- virtual void chromeDestroyed(); |
- |
- virtual void setWindowRect(const WebCore::FloatRect&); |
- virtual WebCore::FloatRect windowRect(); |
- |
- virtual WebCore::FloatRect pageRect(); |
- |
- virtual float scaleFactor(); |
- |
- virtual void focus(); |
- virtual void unfocus(); |
- |
- virtual bool canTakeFocus(WebCore::FocusDirection); |
- virtual void takeFocus(WebCore::FocusDirection); |
- |
- virtual WebCore::Page* createWindow(WebCore::Frame*, |
- const WebCore::FrameLoadRequest&, |
- const WebCore::WindowFeatures&); |
- virtual void show(); |
- |
- virtual bool canRunModal(); |
- virtual void runModal(); |
- |
- virtual void setToolbarsVisible(bool); |
- virtual bool toolbarsVisible(); |
- |
- virtual void setStatusbarVisible(bool); |
- virtual bool statusbarVisible(); |
- |
- virtual void setScrollbarsVisible(bool); |
- virtual bool scrollbarsVisible(); |
- |
- virtual void setMenubarVisible(bool); |
- virtual bool menubarVisible(); |
- |
- virtual void setResizable(bool); |
- |
- virtual void addMessageToConsole(WebCore::MessageSource source, |
- WebCore::MessageType type, |
- WebCore::MessageLevel level, |
- const WebCore::String& message, |
- unsigned int lineNumber, |
- const WebCore::String& sourceID); |
- |
- virtual bool canRunBeforeUnloadConfirmPanel(); |
- virtual bool runBeforeUnloadConfirmPanel(const WebCore::String& message, |
- WebCore::Frame* frame); |
- |
- virtual void closeWindowSoon(); |
- |
- virtual void runJavaScriptAlert(WebCore::Frame*, const WebCore::String&); |
- virtual bool runJavaScriptConfirm(WebCore::Frame*, const WebCore::String&); |
- virtual bool runJavaScriptPrompt(WebCore::Frame*, |
- const WebCore::String& message, |
- const WebCore::String& defaultValue, |
- WebCore::String& result); |
- |
- virtual void setStatusbarText(const WebCore::String& message); |
- virtual bool shouldInterruptJavaScript(); |
- |
- // Returns true if anchors should accept keyboard focus with the tab key. |
- // This method is used in a convoluted fashion by EventHandler::tabsToLinks. |
- // It's a twisted path (self-evident, but more complicated than seems |
- // necessary), but the net result is that returning true from here, on a |
- // platform other than MAC or QT, lets anchors get keyboard focus. |
- virtual bool tabsToLinks() const; |
- |
- virtual WebCore::IntRect windowResizerRect() const; |
- |
- virtual void repaint(const WebCore::IntRect&, bool contentChanged, |
- bool immediate = false, bool repaintContentOnly = false); |
- virtual void scroll(const WebCore::IntSize& scrollDelta, |
- const WebCore::IntRect& rectToScroll, |
- const WebCore::IntRect& clipRect); |
- virtual WebCore::IntPoint screenToWindow(const WebCore::IntPoint&) const; |
- virtual WebCore::IntRect windowToScreen(const WebCore::IntRect&) const; |
- virtual PlatformPageClient platformPageClient() const { return NULL; } |
- virtual void contentsSizeChanged(WebCore::Frame*, |
- const WebCore::IntSize&) const; |
- virtual void scrollRectIntoView(const WebCore::IntRect&, const WebCore::ScrollView*) const { } |
- |
- virtual void scrollbarsModeDidChange() const; |
- virtual void mouseDidMoveOverElement(const WebCore::HitTestResult& result, |
- unsigned modifierFlags); |
- |
- virtual void setToolTip(const WebCore::String& tooltip_text, |
- WebCore::TextDirection dir); |
- |
- virtual void print(WebCore::Frame*); |
- |
- virtual void exceededDatabaseQuota(WebCore::Frame*, |
- const WebCore::String& databaseName); |
- |
+ // ChromeClient methods: |
+ virtual void chromeDestroyed(); |
+ virtual void setWindowRect(const WebCore::FloatRect&); |
+ virtual WebCore::FloatRect windowRect(); |
+ virtual WebCore::FloatRect pageRect(); |
+ virtual float scaleFactor(); |
+ virtual void focus(); |
+ virtual void unfocus(); |
+ virtual bool canTakeFocus(WebCore::FocusDirection); |
+ virtual void takeFocus(WebCore::FocusDirection); |
+ virtual WebCore::Page* createWindow( |
+ WebCore::Frame*, const WebCore::FrameLoadRequest&, const WebCore::WindowFeatures&); |
+ virtual void show(); |
+ virtual bool canRunModal(); |
+ virtual void runModal(); |
+ virtual void setToolbarsVisible(bool); |
+ virtual bool toolbarsVisible(); |
+ virtual void setStatusbarVisible(bool); |
+ virtual bool statusbarVisible(); |
+ virtual void setScrollbarsVisible(bool); |
+ virtual bool scrollbarsVisible(); |
+ virtual void setMenubarVisible(bool); |
+ virtual bool menubarVisible(); |
+ virtual void setResizable(bool); |
+ virtual void addMessageToConsole( |
+ WebCore::MessageSource, WebCore::MessageType, WebCore::MessageLevel, |
+ const WebCore::String& message, unsigned lineNumber, |
+ const WebCore::String& sourceID); |
+ virtual bool canRunBeforeUnloadConfirmPanel(); |
+ virtual bool runBeforeUnloadConfirmPanel( |
+ const WebCore::String& message, WebCore::Frame*); |
+ virtual void closeWindowSoon(); |
+ virtual void runJavaScriptAlert(WebCore::Frame*, const WebCore::String&); |
+ virtual bool runJavaScriptConfirm(WebCore::Frame*, const WebCore::String&); |
+ virtual bool runJavaScriptPrompt( |
+ WebCore::Frame*, const WebCore::String& message, |
+ const WebCore::String& defaultValue, WebCore::String& result); |
+ virtual void setStatusbarText(const WebCore::String& message); |
+ virtual bool shouldInterruptJavaScript(); |
+ virtual bool tabsToLinks() const; |
+ virtual WebCore::IntRect windowResizerRect() const; |
+ virtual void repaint( |
+ const WebCore::IntRect&, bool contentChanged, bool immediate = false, |
+ bool repaintContentOnly = false); |
+ virtual void scroll( |
+ const WebCore::IntSize& scrollDelta, const WebCore::IntRect& rectToScroll, |
+ const WebCore::IntRect& clipRect); |
+ virtual WebCore::IntPoint screenToWindow(const WebCore::IntPoint&) const; |
+ virtual WebCore::IntRect windowToScreen(const WebCore::IntRect&) const; |
+ virtual PlatformPageClient platformPageClient() const { return 0; } |
+ virtual void contentsSizeChanged(WebCore::Frame*, const WebCore::IntSize&) const; |
+ virtual void scrollRectIntoView( |
+ const WebCore::IntRect&, const WebCore::ScrollView*) const { } |
+ virtual void scrollbarsModeDidChange() const; |
+ virtual void mouseDidMoveOverElement( |
+ const WebCore::HitTestResult& result, unsigned modifierFlags); |
+ virtual void setToolTip(const WebCore::String& tooltipText, WebCore::TextDirection); |
+ virtual void print(WebCore::Frame*); |
+ virtual void exceededDatabaseQuota( |
+ WebCore::Frame*, const WebCore::String& databaseName); |
#if ENABLE(OFFLINE_WEB_APPLICATIONS) |
- virtual void reachedMaxAppCacheSize(int64_t space_needed); |
+ virtual void reachedMaxAppCacheSize(int64_t spaceNeeded); |
#endif |
+#if ENABLE(NOTIFICATIONS) |
+ virtual WebCore::NotificationPresenter* notificationPresenter() const; |
+#endif |
+ virtual void requestGeolocationPermissionForFrame( |
+ WebCore::Frame*, WebCore::Geolocation*) { } |
+ virtual void runOpenPanel(WebCore::Frame*, PassRefPtr<WebCore::FileChooser>); |
+ virtual bool setCursor(WebCore::PlatformCursorHandle) { return false; } |
+ virtual void formStateDidChange(const WebCore::Node*); |
+ virtual PassOwnPtr<WebCore::HTMLParserQuirks> createHTMLParserQuirks() { return 0; } |
- virtual void requestGeolocationPermissionForFrame(WebCore::Frame*, WebCore::Geolocation*) { } |
+ // ChromeClientChromium methods: |
+ virtual void popupOpened(WebCore::PopupContainer* popupContainer, |
+ const WebCore::IntRect& bounds, |
+ bool activatable, |
+ bool handleExternally); |
- virtual void runOpenPanel(WebCore::Frame*, |
- PassRefPtr<WebCore::FileChooser>); |
- virtual bool setCursor(WebCore::PlatformCursorHandle) { return false; } |
- virtual void popupOpened(WebCore::PopupContainer* popup_container, |
- const WebCore::IntRect& bounds, |
- bool activatable, |
- bool handle_externally); |
+ // ChromeClientImpl: |
+ void setCursor(const WebCursorInfo& cursor); |
+ void setCursorForPlugin(const WebCursorInfo& cursor); |
- void SetCursor(const WebKit::WebCursorInfo& cursor); |
- void SetCursorForPlugin(const WebKit::WebCursorInfo& cursor); |
+private: |
+ void getPopupMenuInfo(WebCore::PopupContainer*, WebPopupMenuInfo*); |
- virtual void formStateDidChange(const WebCore::Node*); |
+ WebViewImpl* m_webView; // weak pointer |
+ bool m_toolbarsVisible; |
+ bool m_statusbarVisible; |
+ bool m_scrollbarsVisible; |
+ bool m_menubarVisible; |
+ bool m_resizable; |
+ // Set to true if the next SetCursor is to be ignored. |
+ bool m_ignoreNextSetCursor; |
+}; |
- virtual PassOwnPtr<WebCore::HTMLParserQuirks> createHTMLParserQuirks() { return 0; } |
+} // namespace WebKit |
-#if ENABLE(NOTIFICATIONS) |
- virtual WebCore::NotificationPresenter* notificationPresenter() const; |
#endif |
- |
- private: |
- void GetPopupMenuInfo(WebCore::PopupContainer* popup_container, |
- WebKit::WebPopupMenuInfo* info); |
- |
- WebViewImpl* webview_; // weak pointer |
- bool toolbars_visible_; |
- bool statusbar_visible_; |
- bool scrollbars_visible_; |
- bool menubar_visible_; |
- bool resizable_; |
- // Set to true if the next SetCursor is to be ignored. |
- bool ignore_next_set_cursor_; |
-}; |
- |
-#endif // WEBKIT_GLUE_CHROME_CLIENT_IMPL_H_ |