Index: webkit/tools/test_shell/test_webview_delegate_win.cc |
=================================================================== |
--- webkit/tools/test_shell/test_webview_delegate_win.cc (revision 25087) |
+++ webkit/tools/test_shell/test_webview_delegate_win.cc (working copy) |
@@ -39,66 +39,14 @@ |
using WebKit::WebNavigationPolicy; |
using WebKit::WebRect; |
-// WebViewDelegate ----------------------------------------------------------- |
+// WebViewDelegate ------------------------------------------------------------ |
-WebPluginDelegate* TestWebViewDelegate::CreatePluginDelegate( |
- WebView* webview, |
- const GURL& url, |
- const std::string& mime_type, |
- const std::string& clsid, |
- std::string* actual_mime_type) { |
- HWND hwnd = shell_->webViewHost()->view_handle(); |
- if (!hwnd) |
- return NULL; |
- |
- bool allow_wildcard = true; |
- WebPluginInfo info; |
- if (!NPAPI::PluginList::Singleton()->GetPluginInfo(url, mime_type, clsid, |
- allow_wildcard, &info, |
- actual_mime_type)) |
- return NULL; |
- |
- if (actual_mime_type && !actual_mime_type->empty()) |
- return WebPluginDelegateImpl::Create(info.path, *actual_mime_type, hwnd); |
- else |
- return WebPluginDelegateImpl::Create(info.path, mime_type, hwnd); |
-} |
- |
-void TestWebViewDelegate::DidMovePlugin(const WebPluginGeometry& move) { |
- unsigned long flags = 0; |
- |
- if (move.rects_valid) { |
- HRGN hrgn = ::CreateRectRgn(move.clip_rect.x(), |
- move.clip_rect.y(), |
- move.clip_rect.right(), |
- move.clip_rect.bottom()); |
- gfx::SubtractRectanglesFromRegion(hrgn, move.cutout_rects); |
- |
- // Note: System will own the hrgn after we call SetWindowRgn, |
- // so we don't need to call DeleteObject(hrgn) |
- ::SetWindowRgn(move.window, hrgn, FALSE); |
- } else { |
- flags |= (SWP_NOSIZE | SWP_NOMOVE); |
- } |
- |
- if (move.visible) |
- flags |= SWP_SHOWWINDOW; |
- else |
- flags |= SWP_HIDEWINDOW; |
- |
- ::SetWindowPos(move.window, |
- NULL, |
- move.window_rect.x(), |
- move.window_rect.y(), |
- move.window_rect.width(), |
- move.window_rect.height(), |
- flags); |
-} |
- |
void TestWebViewDelegate::ShowJavaScriptAlert(const std::wstring& message) { |
MessageBox(NULL, message.c_str(), L"JavaScript Alert", MB_OK); |
} |
+// WebWidgetClient ------------------------------------------------------------ |
+ |
void TestWebViewDelegate::show(WebNavigationPolicy) { |
if (WebWidgetHost* host = GetWidgetHost()) { |
HWND root = GetAncestor(host->view_handle(), GA_ROOT); |
@@ -176,11 +124,79 @@ |
EnableWindow(*i, TRUE); |
} |
+// WebPluginPageDelegate ------------------------------------------------------ |
+ |
+webkit_glue::WebPluginDelegate* TestWebViewDelegate::CreatePluginDelegate( |
+ const GURL& url, |
+ const std::string& mime_type, |
+ const std::string& clsid, |
+ std::string* actual_mime_type) { |
+ HWND hwnd = shell_->webViewHost()->view_handle(); |
+ if (!hwnd) |
+ return NULL; |
+ |
+ bool allow_wildcard = true; |
+ WebPluginInfo info; |
+ if (!NPAPI::PluginList::Singleton()->GetPluginInfo(url, mime_type, clsid, |
+ allow_wildcard, &info, |
+ actual_mime_type)) |
+ return NULL; |
+ |
+ if (actual_mime_type && !actual_mime_type->empty()) |
+ return WebPluginDelegateImpl::Create(info.path, *actual_mime_type, hwnd); |
+ else |
+ return WebPluginDelegateImpl::Create(info.path, mime_type, hwnd); |
+} |
+ |
+void TestWebViewDelegate::CreatedPluginWindow( |
+ gfx::PluginWindowHandle handle) { |
+ // ignored |
+} |
+ |
+void TestWebViewDelegate::WillDestroyPluginWindow( |
+ gfx::PluginWindowHandle handle) { |
+ // ignored |
+} |
+ |
+void TestWebViewDelegate::DidMovePlugin( |
+ const webkit_glue::WebPluginGeometry& move) { |
+ unsigned long flags = 0; |
+ |
+ if (move.rects_valid) { |
+ HRGN hrgn = ::CreateRectRgn(move.clip_rect.x(), |
+ move.clip_rect.y(), |
+ move.clip_rect.right(), |
+ move.clip_rect.bottom()); |
+ gfx::SubtractRectanglesFromRegion(hrgn, move.cutout_rects); |
+ |
+ // Note: System will own the hrgn after we call SetWindowRgn, |
+ // so we don't need to call DeleteObject(hrgn) |
+ ::SetWindowRgn(move.window, hrgn, FALSE); |
+ } else { |
+ flags |= (SWP_NOSIZE | SWP_NOMOVE); |
+ } |
+ |
+ if (move.visible) |
+ flags |= SWP_SHOWWINDOW; |
+ else |
+ flags |= SWP_HIDEWINDOW; |
+ |
+ ::SetWindowPos(move.window, |
+ NULL, |
+ move.window_rect.x(), |
+ move.window_rect.y(), |
+ move.window_rect.width(), |
+ move.window_rect.height(), |
+ flags); |
+} |
+ |
+// Public methods ------------------------------------------------------------- |
+ |
void TestWebViewDelegate::UpdateSelectionClipboard(bool is_empty_selection) { |
// No selection clipboard on windows, do nothing. |
} |
-// Private methods ----------------------------------------------------------- |
+// Private methods ------------------------------------------------------------ |
void TestWebViewDelegate::SetPageTitle(const std::wstring& title) { |
// The Windows test shell, pre-refactoring, ignored this. *shrug* |