| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2009 Google Inc. All rights reserved. | 2 * Copyright (C) 2009 Google Inc. All rights reserved. |
| 3 * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). | 3 * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). |
| 4 * | 4 * |
| 5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
| 6 * modification, are permitted provided that the following conditions are | 6 * modification, are permitted provided that the following conditions are |
| 7 * met: | 7 * met: |
| 8 * | 8 * |
| 9 * * Redistributions of source code must retain the above copyright | 9 * * Redistributions of source code must retain the above copyright |
| 10 * notice, this list of conditions and the following disclaimer. | 10 * notice, this list of conditions and the following disclaimer. |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 58 } | 58 } |
| 59 | 59 |
| 60 namespace blink { | 60 namespace blink { |
| 61 class WebColorChooser; | 61 class WebColorChooser; |
| 62 class WebColorChooserClient; | 62 class WebColorChooserClient; |
| 63 class WebViewImpl; | 63 class WebViewImpl; |
| 64 struct WebCursorInfo; | 64 struct WebCursorInfo; |
| 65 struct WebPopupMenuInfo; | 65 struct WebPopupMenuInfo; |
| 66 | 66 |
| 67 // Handles window-level notifications from WebCore on behalf of a WebView. | 67 // Handles window-level notifications from WebCore on behalf of a WebView. |
| 68 class ChromeClientImpl : public WebCore::ChromeClient { | 68 class ChromeClientImpl FINAL : public WebCore::ChromeClient { |
| 69 public: | 69 public: |
| 70 explicit ChromeClientImpl(WebViewImpl* webView); | 70 explicit ChromeClientImpl(WebViewImpl* webView); |
| 71 virtual ~ChromeClientImpl(); | 71 virtual ~ChromeClientImpl(); |
| 72 | 72 |
| 73 virtual void* webView() const; | 73 virtual void* webView() const OVERRIDE; |
| 74 | 74 |
| 75 // ChromeClient methods: | 75 // ChromeClient methods: |
| 76 virtual void chromeDestroyed(); | 76 virtual void chromeDestroyed() OVERRIDE; |
| 77 virtual void setWindowRect(const WebCore::FloatRect&); | 77 virtual void setWindowRect(const WebCore::FloatRect&) OVERRIDE; |
| 78 virtual WebCore::FloatRect windowRect(); | 78 virtual WebCore::FloatRect windowRect() OVERRIDE; |
| 79 virtual WebCore::FloatRect pageRect(); | 79 virtual WebCore::FloatRect pageRect() OVERRIDE; |
| 80 virtual void focus(); | 80 virtual void focus() OVERRIDE; |
| 81 virtual void unfocus(); | 81 virtual void unfocus() OVERRIDE; |
| 82 virtual bool canTakeFocus(WebCore::FocusDirection); | 82 virtual bool canTakeFocus(WebCore::FocusDirection) OVERRIDE; |
| 83 virtual void takeFocus(WebCore::FocusDirection); | 83 virtual void takeFocus(WebCore::FocusDirection) OVERRIDE; |
| 84 virtual void focusedNodeChanged(WebCore::Node*); | 84 virtual void focusedNodeChanged(WebCore::Node*) OVERRIDE; |
| 85 virtual WebCore::Page* createWindow( | 85 virtual WebCore::Page* createWindow( |
| 86 WebCore::Frame*, const WebCore::FrameLoadRequest&, const WebCore::Window
Features&, WebCore::NavigationPolicy, WebCore::ShouldSendReferrer); | 86 WebCore::Frame*, const WebCore::FrameLoadRequest&, const WebCore::Window
Features&, WebCore::NavigationPolicy, WebCore::ShouldSendReferrer) OVERRIDE; |
| 87 virtual void show(WebCore::NavigationPolicy); | 87 virtual void show(WebCore::NavigationPolicy) OVERRIDE; |
| 88 virtual bool canRunModal(); | 88 virtual bool canRunModal() OVERRIDE; |
| 89 virtual void runModal(); | 89 virtual void runModal() OVERRIDE; |
| 90 virtual void setToolbarsVisible(bool); | 90 virtual void setToolbarsVisible(bool) OVERRIDE; |
| 91 virtual bool toolbarsVisible(); | 91 virtual bool toolbarsVisible() OVERRIDE; |
| 92 virtual void setStatusbarVisible(bool); | 92 virtual void setStatusbarVisible(bool) OVERRIDE; |
| 93 virtual bool statusbarVisible(); | 93 virtual bool statusbarVisible() OVERRIDE; |
| 94 virtual void setScrollbarsVisible(bool); | 94 virtual void setScrollbarsVisible(bool) OVERRIDE; |
| 95 virtual bool scrollbarsVisible(); | 95 virtual bool scrollbarsVisible() OVERRIDE; |
| 96 virtual void setMenubarVisible(bool); | 96 virtual void setMenubarVisible(bool) OVERRIDE; |
| 97 virtual bool menubarVisible(); | 97 virtual bool menubarVisible() OVERRIDE; |
| 98 virtual void setResizable(bool); | 98 virtual void setResizable(bool) OVERRIDE; |
| 99 virtual bool shouldReportDetailedMessageForSource(const WTF::String&); | 99 virtual bool shouldReportDetailedMessageForSource(const WTF::String&) OVERRI
DE; |
| 100 virtual void addMessageToConsole( | 100 virtual void addMessageToConsole( |
| 101 WebCore::MessageSource, WebCore::MessageLevel, | 101 WebCore::MessageSource, WebCore::MessageLevel, |
| 102 const WTF::String& message, unsigned lineNumber, | 102 const WTF::String& message, unsigned lineNumber, |
| 103 const WTF::String& sourceID, const WTF::String& stackTrace); | 103 const WTF::String& sourceID, const WTF::String& stackTrace) OVERRIDE; |
| 104 virtual bool canRunBeforeUnloadConfirmPanel(); | 104 virtual bool canRunBeforeUnloadConfirmPanel() OVERRIDE; |
| 105 virtual bool runBeforeUnloadConfirmPanel( | 105 virtual bool runBeforeUnloadConfirmPanel( |
| 106 const WTF::String& message, WebCore::Frame*); | 106 const WTF::String& message, WebCore::Frame*) OVERRIDE; |
| 107 virtual void closeWindowSoon(); | 107 virtual void closeWindowSoon() OVERRIDE; |
| 108 virtual void runJavaScriptAlert(WebCore::Frame*, const WTF::String&); | 108 virtual void runJavaScriptAlert(WebCore::Frame*, const WTF::String&) OVERRID
E; |
| 109 virtual bool runJavaScriptConfirm(WebCore::Frame*, const WTF::String&); | 109 virtual bool runJavaScriptConfirm(WebCore::Frame*, const WTF::String&) OVERR
IDE; |
| 110 virtual bool runJavaScriptPrompt( | 110 virtual bool runJavaScriptPrompt( |
| 111 WebCore::Frame*, const WTF::String& message, | 111 WebCore::Frame*, const WTF::String& message, |
| 112 const WTF::String& defaultValue, WTF::String& result); | 112 const WTF::String& defaultValue, WTF::String& result) OVERRIDE; |
| 113 virtual void setStatusbarText(const WTF::String& message); | 113 virtual void setStatusbarText(const WTF::String& message) OVERRIDE; |
| 114 virtual bool tabsToLinks(); | 114 virtual bool tabsToLinks() OVERRIDE; |
| 115 virtual WebCore::IntRect windowResizerRect() const; | 115 virtual WebCore::IntRect windowResizerRect() const OVERRIDE; |
| 116 virtual void invalidateContentsAndRootView(const WebCore::IntRect&); | 116 virtual void invalidateContentsAndRootView(const WebCore::IntRect&) OVERRIDE
; |
| 117 virtual void invalidateContentsForSlowScroll(const WebCore::IntRect&); | 117 virtual void invalidateContentsForSlowScroll(const WebCore::IntRect&) OVERRI
DE; |
| 118 virtual void scheduleAnimation(); | 118 virtual void scheduleAnimation() OVERRIDE; |
| 119 virtual void scroll( | 119 virtual void scroll( |
| 120 const WebCore::IntSize& scrollDelta, const WebCore::IntRect& rectToScrol
l, | 120 const WebCore::IntSize& scrollDelta, const WebCore::IntRect& rectToScrol
l, |
| 121 const WebCore::IntRect& clipRect); | 121 const WebCore::IntRect& clipRect) OVERRIDE; |
| 122 virtual WebCore::IntPoint screenToRootView(const WebCore::IntPoint&) const; | 122 virtual WebCore::IntPoint screenToRootView(const WebCore::IntPoint&) const O
VERRIDE; |
| 123 virtual WebCore::IntRect rootViewToScreen(const WebCore::IntRect&) const; | 123 virtual WebCore::IntRect rootViewToScreen(const WebCore::IntRect&) const OVE
RRIDE; |
| 124 virtual WebScreenInfo screenInfo() const; | 124 virtual WebScreenInfo screenInfo() const OVERRIDE; |
| 125 virtual void contentsSizeChanged(WebCore::Frame*, const WebCore::IntSize&) c
onst; | 125 virtual void contentsSizeChanged(WebCore::Frame*, const WebCore::IntSize&) c
onst OVERRIDE; |
| 126 virtual void deviceOrPageScaleFactorChanged() const; | 126 virtual void deviceOrPageScaleFactorChanged() const OVERRIDE; |
| 127 virtual void layoutUpdated(WebCore::Frame*) const; | 127 virtual void layoutUpdated(WebCore::Frame*) const OVERRIDE; |
| 128 virtual void mouseDidMoveOverElement( | 128 virtual void mouseDidMoveOverElement( |
| 129 const WebCore::HitTestResult& result, unsigned modifierFlags); | 129 const WebCore::HitTestResult&, unsigned modifierFlags) OVERRIDE; |
| 130 virtual void setToolTip(const WTF::String& tooltipText, WebCore::TextDirecti
on); | 130 virtual void setToolTip(const WTF::String& tooltipText, WebCore::TextDirecti
on) OVERRIDE; |
| 131 virtual void dispatchViewportPropertiesDidChange(const WebCore::ViewportDesc
ription&) const; | 131 virtual void dispatchViewportPropertiesDidChange(const WebCore::ViewportDesc
ription&) const OVERRIDE; |
| 132 virtual void print(WebCore::Frame*); | 132 virtual void print(WebCore::Frame*) OVERRIDE; |
| 133 virtual void annotatedRegionsChanged(); | 133 virtual void annotatedRegionsChanged() OVERRIDE; |
| 134 virtual bool paintCustomOverhangArea(WebCore::GraphicsContext*, const WebCor
e::IntRect&, const WebCore::IntRect&, const WebCore::IntRect&); | 134 virtual bool paintCustomOverhangArea(WebCore::GraphicsContext*, const WebCor
e::IntRect&, const WebCore::IntRect&, const WebCore::IntRect&) OVERRIDE; |
| 135 virtual PassOwnPtr<WebCore::ColorChooser> createColorChooser(WebCore::ColorC
hooserClient*, const WebCore::Color&) OVERRIDE; | 135 virtual PassOwnPtr<WebCore::ColorChooser> createColorChooser(WebCore::ColorC
hooserClient*, const WebCore::Color&) OVERRIDE; |
| 136 virtual PassRefPtr<WebCore::DateTimeChooser> openDateTimeChooser(WebCore::Da
teTimeChooserClient*, const WebCore::DateTimeChooserParameters&) OVERRIDE; | 136 virtual PassRefPtr<WebCore::DateTimeChooser> openDateTimeChooser(WebCore::Da
teTimeChooserClient*, const WebCore::DateTimeChooserParameters&) OVERRIDE; |
| 137 virtual void openTextDataListChooser(WebCore::HTMLInputElement&) OVERRIDE; | 137 virtual void openTextDataListChooser(WebCore::HTMLInputElement&) OVERRIDE; |
| 138 virtual void runOpenPanel(WebCore::Frame*, PassRefPtr<WebCore::FileChooser>)
; | 138 virtual void runOpenPanel(WebCore::Frame*, PassRefPtr<WebCore::FileChooser>)
OVERRIDE; |
| 139 virtual void enumerateChosenDirectory(WebCore::FileChooser*); | 139 virtual void enumerateChosenDirectory(WebCore::FileChooser*) OVERRIDE; |
| 140 virtual void setCursor(const WebCore::Cursor&); | 140 virtual void setCursor(const WebCore::Cursor&) OVERRIDE; |
| 141 virtual void formStateDidChange(const WebCore::Node*); | 141 virtual void formStateDidChange(const WebCore::Node*) OVERRIDE; |
| 142 virtual void needTouchEvents(bool needTouchEvents) OVERRIDE; | 142 virtual void needTouchEvents(bool needTouchEvents) OVERRIDE; |
| 143 virtual void setTouchAction(WebCore::TouchAction) OVERRIDE; | 143 virtual void setTouchAction(WebCore::TouchAction) OVERRIDE; |
| 144 | 144 |
| 145 virtual WebCore::GraphicsLayerFactory* graphicsLayerFactory() const OVERRIDE
; | 145 virtual WebCore::GraphicsLayerFactory* graphicsLayerFactory() const OVERRIDE
; |
| 146 | 146 |
| 147 // Pass 0 as the GraphicsLayer to detatch the root layer. | 147 // Pass 0 as the GraphicsLayer to detatch the root layer. |
| 148 virtual void attachRootGraphicsLayer(WebCore::Frame*, WebCore::GraphicsLayer
*); | 148 virtual void attachRootGraphicsLayer(WebCore::Frame*, WebCore::GraphicsLayer
*) OVERRIDE; |
| 149 | 149 |
| 150 // Sets a flag to specify that the view needs to be updated, so we need | 150 // Sets a flag to specify that the view needs to be updated, so we need |
| 151 // to do an eager layout before the drawing. | 151 // to do an eager layout before the drawing. |
| 152 virtual void scheduleCompositingLayerFlush(); | 152 virtual void scheduleCompositingLayerFlush() OVERRIDE; |
| 153 | 153 |
| 154 virtual CompositingTriggerFlags allowedCompositingTriggers() const; | 154 virtual CompositingTriggerFlags allowedCompositingTriggers() const OVERRIDE; |
| 155 | 155 |
| 156 virtual void enterFullScreenForElement(WebCore::Element*); | 156 virtual void enterFullScreenForElement(WebCore::Element*) OVERRIDE; |
| 157 virtual void exitFullScreenForElement(WebCore::Element*); | 157 virtual void exitFullScreenForElement(WebCore::Element*) OVERRIDE; |
| 158 | 158 |
| 159 // ChromeClient methods: | 159 // ChromeClient methods: |
| 160 virtual void popupOpened(WebCore::PopupContainer* popupContainer, | 160 virtual void popupOpened(WebCore::PopupContainer* popupContainer, |
| 161 const WebCore::IntRect& bounds, | 161 const WebCore::IntRect& bounds, |
| 162 bool handleExternally); | 162 bool handleExternally) OVERRIDE; |
| 163 virtual void popupClosed(WebCore::PopupContainer* popupContainer); | 163 virtual void popupClosed(WebCore::PopupContainer*) OVERRIDE; |
| 164 virtual void postAccessibilityNotification(WebCore::AXObject*, WebCore::AXOb
jectCache::AXNotification); | 164 virtual void postAccessibilityNotification(WebCore::AXObject*, WebCore::AXOb
jectCache::AXNotification) OVERRIDE; |
| 165 virtual String acceptLanguages() OVERRIDE; | 165 virtual String acceptLanguages() OVERRIDE; |
| 166 | 166 |
| 167 // ChromeClientImpl: | 167 // ChromeClientImpl: |
| 168 void setCursorForPlugin(const WebCursorInfo&); | 168 void setCursorForPlugin(const WebCursorInfo&); |
| 169 void setNewWindowNavigationPolicy(WebNavigationPolicy); | 169 void setNewWindowNavigationPolicy(WebNavigationPolicy); |
| 170 | 170 |
| 171 virtual bool hasOpenedPopup() const OVERRIDE; | 171 virtual bool hasOpenedPopup() const OVERRIDE; |
| 172 virtual PassRefPtr<WebCore::PopupMenu> createPopupMenu(WebCore::Frame&, WebC
ore::PopupMenuClient*) const; | 172 virtual PassRefPtr<WebCore::PopupMenu> createPopupMenu(WebCore::Frame&, WebC
ore::PopupMenuClient*) const OVERRIDE; |
| 173 virtual WebCore::PagePopup* openPagePopup(WebCore::PagePopupClient*, const W
ebCore::IntRect&) OVERRIDE; | 173 virtual WebCore::PagePopup* openPagePopup(WebCore::PagePopupClient*, const W
ebCore::IntRect&) OVERRIDE; |
| 174 virtual void closePagePopup(WebCore::PagePopup*) OVERRIDE; | 174 virtual void closePagePopup(WebCore::PagePopup*) OVERRIDE; |
| 175 virtual void setPagePopupDriver(WebCore::PagePopupDriver*) OVERRIDE; | 175 virtual void setPagePopupDriver(WebCore::PagePopupDriver*) OVERRIDE; |
| 176 virtual void resetPagePopupDriver() OVERRIDE; | 176 virtual void resetPagePopupDriver() OVERRIDE; |
| 177 | 177 |
| 178 virtual bool isPasswordGenerationEnabled() const OVERRIDE; | 178 virtual bool isPasswordGenerationEnabled() const OVERRIDE; |
| 179 virtual void openPasswordGenerator(WebCore::HTMLInputElement*) OVERRIDE; | 179 virtual void openPasswordGenerator(WebCore::HTMLInputElement*) OVERRIDE; |
| 180 | 180 |
| 181 virtual bool shouldRunModalDialogDuringPageDismissal(const DialogType&, cons
t String& dialogMessage, WebCore::Document::PageDismissalType) const; | 181 virtual bool shouldRunModalDialogDuringPageDismissal(const DialogType&, cons
t String& dialogMessage, WebCore::Document::PageDismissalType) const OVERRIDE; |
| 182 | 182 |
| 183 virtual bool shouldRubberBandInDirection(WebCore::ScrollDirection) const; | 183 virtual bool shouldRubberBandInDirection(WebCore::ScrollDirection) const OVE
RRIDE; |
| 184 virtual void numWheelEventHandlersChanged(unsigned); | 184 virtual void numWheelEventHandlersChanged(unsigned) OVERRIDE; |
| 185 | 185 |
| 186 virtual bool requestPointerLock(); | 186 virtual bool requestPointerLock() OVERRIDE; |
| 187 virtual void requestPointerUnlock(); | 187 virtual void requestPointerUnlock() OVERRIDE; |
| 188 virtual bool isPointerLocked(); | 188 virtual bool isPointerLocked() OVERRIDE; |
| 189 | 189 |
| 190 virtual void didAssociateFormControls(const Vector<RefPtr<WebCore::Element>
>&) OVERRIDE; | 190 virtual void didAssociateFormControls(const Vector<RefPtr<WebCore::Element>
>&) OVERRIDE; |
| 191 virtual void didChangeValueInTextField(WebCore::HTMLInputElement&) OVERRIDE; | 191 virtual void didChangeValueInTextField(WebCore::HTMLInputElement&) OVERRIDE; |
| 192 virtual void didEndEditingOnTextField(WebCore::HTMLInputElement&) OVERRIDE; | 192 virtual void didEndEditingOnTextField(WebCore::HTMLInputElement&) OVERRIDE; |
| 193 virtual void handleKeyboardEventOnTextField(WebCore::HTMLInputElement&, WebC
ore::KeyboardEvent&) OVERRIDE; | 193 virtual void handleKeyboardEventOnTextField(WebCore::HTMLInputElement&, WebC
ore::KeyboardEvent&) OVERRIDE; |
| 194 | 194 |
| 195 virtual void didCancelCompositionOnSelectionChange() OVERRIDE; | 195 virtual void didCancelCompositionOnSelectionChange() OVERRIDE; |
| 196 virtual void willSetInputMethodState() OVERRIDE; | 196 virtual void willSetInputMethodState() OVERRIDE; |
| 197 | 197 |
| 198 private: | 198 private: |
| 199 virtual bool isChromeClientImpl() const OVERRIDE { return true; } | 199 virtual bool isChromeClientImpl() const OVERRIDE { return true; } |
| 200 | 200 |
| 201 WebNavigationPolicy getNavigationPolicy(); | 201 WebNavigationPolicy getNavigationPolicy(); |
| 202 void getPopupMenuInfo(WebCore::PopupContainer*, WebPopupMenuInfo*); | 202 void getPopupMenuInfo(WebCore::PopupContainer*, WebPopupMenuInfo*); |
| 203 void setCursor(const WebCursorInfo&); | 203 void setCursor(const WebCursorInfo&); |
| 204 | 204 |
| 205 WebViewImpl* m_webView; // weak pointer | 205 WebViewImpl* m_webView; // weak pointer |
| 206 bool m_toolbarsVisible; | 206 bool m_toolbarsVisible; |
| 207 bool m_statusbarVisible; | 207 bool m_statusbarVisible; |
| 208 bool m_scrollbarsVisible; | 208 bool m_scrollbarsVisible; |
| 209 bool m_menubarVisible; | 209 bool m_menubarVisible; |
| 210 bool m_resizable; | 210 bool m_resizable; |
| 211 | 211 |
| 212 WebCore::PagePopupDriver* m_pagePopupDriver; | 212 WebCore::PagePopupDriver* m_pagePopupDriver; |
| 213 }; | 213 }; |
| 214 | 214 |
| 215 class NavigatorContentUtilsClientImpl : public WebCore::NavigatorContentUtilsCli
ent { | 215 class NavigatorContentUtilsClientImpl FINAL : public WebCore::NavigatorContentUt
ilsClient { |
| 216 public: | 216 public: |
| 217 static PassOwnPtr<NavigatorContentUtilsClientImpl> create(WebViewImpl*); | 217 static PassOwnPtr<NavigatorContentUtilsClientImpl> create(WebViewImpl*); |
| 218 ~NavigatorContentUtilsClientImpl() { } | 218 virtual ~NavigatorContentUtilsClientImpl() { } |
| 219 | 219 |
| 220 virtual void registerProtocolHandler(const String& scheme, const String& bas
eURL, const String& url, const String& title) OVERRIDE; | 220 virtual void registerProtocolHandler(const String& scheme, const String& bas
eURL, const String& url, const String& title) OVERRIDE; |
| 221 virtual CustomHandlersState isProtocolHandlerRegistered(const String& scheme
, const String& baseURL, const String& url) OVERRIDE; | 221 virtual CustomHandlersState isProtocolHandlerRegistered(const String& scheme
, const String& baseURL, const String& url) OVERRIDE; |
| 222 virtual void unregisterProtocolHandler(const String& scheme, const String& b
aseURL, const String& url) OVERRIDE; | 222 virtual void unregisterProtocolHandler(const String& scheme, const String& b
aseURL, const String& url) OVERRIDE; |
| 223 | 223 |
| 224 private: | 224 private: |
| 225 explicit NavigatorContentUtilsClientImpl(WebViewImpl*); | 225 explicit NavigatorContentUtilsClientImpl(WebViewImpl*); |
| 226 | 226 |
| 227 WebViewImpl* m_webView; | 227 WebViewImpl* m_webView; |
| 228 }; | 228 }; |
| 229 | 229 |
| 230 DEFINE_TYPE_CASTS(ChromeClientImpl, WebCore::ChromeClient, client, client->isChr
omeClientImpl(), client.isChromeClientImpl()); | 230 DEFINE_TYPE_CASTS(ChromeClientImpl, WebCore::ChromeClient, client, client->isChr
omeClientImpl(), client.isChromeClientImpl()); |
| 231 | 231 |
| 232 } // namespace blink | 232 } // namespace blink |
| 233 | 233 |
| 234 #endif | 234 #endif |
| OLD | NEW |