diff options
Diffstat (limited to 'WebKit/win/WebCoreSupport/WebChromeClient.cpp')
-rw-r--r-- | WebKit/win/WebCoreSupport/WebChromeClient.cpp | 62 |
1 files changed, 35 insertions, 27 deletions
diff --git a/WebKit/win/WebCoreSupport/WebChromeClient.cpp b/WebKit/win/WebCoreSupport/WebChromeClient.cpp index 1f0c09c..1c0401f 100644 --- a/WebKit/win/WebCoreSupport/WebChromeClient.cpp +++ b/WebKit/win/WebCoreSupport/WebChromeClient.cpp @@ -34,7 +34,9 @@ #include "WebView.h" #pragma warning(push, 0) #include <WebCore/BString.h> +#include <WebCore/Console.h> #include <WebCore/ContextMenu.h> +#include <WebCore/Cursor.h> #include <WebCore/FileChooser.h> #include <WebCore/FloatRect.h> #include <WebCore/FrameLoadRequest.h> @@ -151,7 +153,7 @@ void WebChromeClient::takeFocus(FocusDirection direction) Page* WebChromeClient::createWindow(Frame*, const FrameLoadRequest& frameLoadRequest, const WindowFeatures& features) { if (features.dialog) { - COMPtr<IWebUIDelegate3> delegate = uiDelegate3(); + COMPtr<IWebUIDelegate> delegate = uiDelegate(); if (!delegate) return 0; COMPtr<IWebMutableURLRequest> request(AdoptCOM, WebMutableURLRequest::createInstance(frameLoadRequest.resourceRequest())); @@ -191,14 +193,14 @@ void WebChromeClient::show() bool WebChromeClient::canRunModal() { BOOL result = FALSE; - if (COMPtr<IWebUIDelegate3> delegate = uiDelegate3()) + if (COMPtr<IWebUIDelegate> delegate = uiDelegate()) delegate->canRunModal(m_webView, &result); return result; } void WebChromeClient::runModal() { - if (COMPtr<IWebUIDelegate3> delegate = uiDelegate3()) + if (COMPtr<IWebUIDelegate> delegate = uiDelegate()) delegate->runModal(m_webView); } @@ -261,7 +263,7 @@ bool WebChromeClient::scrollbarsVisible() void WebChromeClient::setMenubarVisible(bool visible) { - COMPtr<IWebUIDelegate3> delegate = uiDelegate3(); + COMPtr<IWebUIDelegate> delegate = uiDelegate(); if (!delegate) return; delegate->setMenuBarVisible(m_webView, visible); @@ -269,7 +271,7 @@ void WebChromeClient::setMenubarVisible(bool visible) bool WebChromeClient::menubarVisible() { - COMPtr<IWebUIDelegate3> delegate = uiDelegate3(); + COMPtr<IWebUIDelegate> delegate = uiDelegate(); if (!delegate) return true; BOOL result = true; @@ -286,7 +288,7 @@ void WebChromeClient::setResizable(bool resizable) } } -void WebChromeClient::addMessageToConsole(const String& message, unsigned line, const String& url) +void WebChromeClient::addMessageToConsole(MessageSource source, MessageType type, MessageLevel level, const String& message, unsigned line, const String& url) { COMPtr<IWebUIDelegate> uiDelegate; if (SUCCEEDED(m_webView->uiDelegate(&uiDelegate))) { @@ -492,7 +494,7 @@ void WebChromeClient::mouseDidMoveOverElement(const HitTestResult& result, unsig uiDelegate->mouseDidMoveOverElement(m_webView, element.get(), modifierFlags); } -void WebChromeClient::setToolTip(const String& toolTip) +void WebChromeClient::setToolTip(const String& toolTip, TextDirection) { m_webView->setToolTip(toolTip); } @@ -500,10 +502,8 @@ void WebChromeClient::setToolTip(const String& toolTip) void WebChromeClient::print(Frame* frame) { COMPtr<IWebUIDelegate> uiDelegate; - COMPtr<IWebUIDelegate2> uiDelegate2; if (SUCCEEDED(m_webView->uiDelegate(&uiDelegate))) - if (SUCCEEDED(uiDelegate->QueryInterface(IID_IWebUIDelegate2, (void**)&uiDelegate2))) - uiDelegate2->printFrame(m_webView, kit(frame)); + uiDelegate->printFrame(m_webView, kit(frame)); } #if ENABLE(DATABASE) @@ -512,9 +512,9 @@ void WebChromeClient::exceededDatabaseQuota(Frame* frame, const String& database COMPtr<WebSecurityOrigin> origin(AdoptCOM, WebSecurityOrigin::createInstance(frame->document()->securityOrigin())); COMPtr<IWebUIDelegate> uiDelegate; if (SUCCEEDED(m_webView->uiDelegate(&uiDelegate))) { - COMPtr<IWebUIDelegatePrivate3> uiDelegatePrivate3(Query, uiDelegate); - if (uiDelegatePrivate3) - uiDelegatePrivate3->exceededDatabaseQuota(m_webView, kit(frame), origin.get(), BString(databaseIdentifier)); + COMPtr<IWebUIDelegatePrivate> uiDelegatePrivate(Query, uiDelegate); + if (uiDelegatePrivate) + uiDelegatePrivate->exceededDatabaseQuota(m_webView, kit(frame), origin.get(), BString(databaseIdentifier)); else { // FIXME: remove this workaround once shipping Safari has the necessary delegate implemented. TCHAR path[MAX_PATH]; @@ -567,7 +567,7 @@ bool WebChromeClient::paintCustomScrollbar(GraphicsContext* context, const Float if (context->paintingDisabled()) return false; - COMPtr<IWebUIDelegate4> delegate = uiDelegate4(); + COMPtr<IWebUIDelegate> delegate = uiDelegate(); if (!delegate) return false; @@ -634,7 +634,7 @@ bool WebChromeClient::paintCustomScrollCorner(GraphicsContext* context, const Fl if (context->paintingDisabled()) return false; - COMPtr<IWebUIDelegate4> delegate = uiDelegate4(); + COMPtr<IWebUIDelegate> delegate = uiDelegate(); if (!delegate) return false; @@ -703,24 +703,32 @@ void WebChromeClient::runOpenPanel(Frame*, PassRefPtr<FileChooser> prpFileChoose // FIXME: Show some sort of error if too many files are selected and the buffer is too small. For now, this will fail silently. } -COMPtr<IWebUIDelegate> WebChromeClient::uiDelegate() +bool WebChromeClient::setCursor(PlatformCursorHandle cursor) { - COMPtr<IWebUIDelegate> delegate; - m_webView->uiDelegate(&delegate); - return delegate; -} + if (!cursor) + return false; -COMPtr<IWebUIDelegate2> WebChromeClient::uiDelegate2() -{ - return COMPtr<IWebUIDelegate2>(Query, uiDelegate()); + if (COMPtr<IWebUIDelegate> delegate = uiDelegate()) { + COMPtr<IWebUIDelegatePrivate> delegatePrivate(Query, delegate); + if (delegatePrivate) { + if (SUCCEEDED(delegatePrivate->webViewSetCursor(m_webView, reinterpret_cast<OLE_HANDLE>(cursor)))) + return true; + } + } + + ::SetCursor(cursor); + return true; } -COMPtr<IWebUIDelegate3> WebChromeClient::uiDelegate3() +void WebChromeClient::requestGeolocationPermissionForFrame(Frame*, Geolocation*) { - return COMPtr<IWebUIDelegate3>(Query, uiDelegate()); + // See the comment in WebCore/page/ChromeClient.h + notImplemented(); } -COMPtr<IWebUIDelegate4> WebChromeClient::uiDelegate4() +COMPtr<IWebUIDelegate> WebChromeClient::uiDelegate() { - return COMPtr<IWebUIDelegate4>(Query, uiDelegate()); + COMPtr<IWebUIDelegate> delegate; + m_webView->uiDelegate(&delegate); + return delegate; } |