summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbrettw@chromium.org <brettw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-01-24 06:16:13 +0000
committerbrettw@chromium.org <brettw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-01-24 06:16:13 +0000
commit9d80e0794fecdda750b11cf268f811881f0ed0ec (patch)
tree41ffc40de8e6a388890ea7109608bfa25a79bff2
parent65c884079fc0f2ff5d6e7b2f4bffa521cf7605e3 (diff)
downloadchromium_src-9d80e0794fecdda750b11cf268f811881f0ed0ec.zip
chromium_src-9d80e0794fecdda750b11cf268f811881f0ed0ec.tar.gz
chromium_src-9d80e0794fecdda750b11cf268f811881f0ed0ec.tar.bz2
Random de-Windows-ification-ism-izing in renderer_host.
Review URL: http://codereview.chromium.org/18577 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@8611 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--chrome/browser/renderer_host/render_widget_host_view.h14
-rw-r--r--chrome/browser/renderer_host/render_widget_host_view_win.cc62
-rw-r--r--chrome/browser/renderer_host/render_widget_host_view_win.h6
-rw-r--r--chrome/browser/renderer_host/resource_dispatcher_host.cc2
-rw-r--r--chrome/browser/renderer_host/resource_dispatcher_host.h3
-rw-r--r--chrome/browser/renderer_host/test_render_view_host.h6
6 files changed, 48 insertions, 45 deletions
diff --git a/chrome/browser/renderer_host/render_widget_host_view.h b/chrome/browser/renderer_host/render_widget_host_view.h
index 1a3facfa..c07de07 100644
--- a/chrome/browser/renderer_host/render_widget_host_view.h
+++ b/chrome/browser/renderer_host/render_widget_host_view.h
@@ -5,11 +5,14 @@
#ifndef CHROME_BROWSER_RENDERER_HOST_RENDER_WIDGET_HOST_VIEW_H_
#define CHROME_BROWSER_RENDERER_HOST_RENDER_WIDGET_HOST_VIEW_H_
-#include <windows.h>
-
#include "base/shared_memory.h"
+#include "build/build_config.h"
#include "chrome/common/render_messages.h"
+#if defined(OS_WIN)
+#include <windows.h>
+#endif
+
namespace gfx {
class Rect;
class Size;
@@ -56,18 +59,15 @@ class RenderWidgetHostView {
// Tells the View to size itself to the specified size.
virtual void SetSize(const gfx::Size& size) = 0;
+#if defined(OS_WIN)
// Retrieves the HWND used to contain plugin HWNDs.
virtual HWND GetPluginHWND() = 0;
+#endif
// Moves all plugin windows as described in the given list.
virtual void MovePluginWindows(
const std::vector<WebPluginGeometry>& plugin_window_moves) = 0;
- // Sends the specified mouse event to the renderer.
- virtual void ForwardMouseEventToRenderer(UINT message,
- WPARAM wparam,
- LPARAM lparam) = 0;
-
// Actually set/take focus to/from the associated View component.
virtual void Focus() = 0;
virtual void Blur() = 0;
diff --git a/chrome/browser/renderer_host/render_widget_host_view_win.cc b/chrome/browser/renderer_host/render_widget_host_view_win.cc
index eacf329..4db44b6 100644
--- a/chrome/browser/renderer_host/render_widget_host_view_win.cc
+++ b/chrome/browser/renderer_host/render_widget_host_view_win.cc
@@ -188,37 +188,6 @@ void RenderWidgetHostViewWin::MovePluginWindows(
::EndDeferWindowPos(defer_window_pos_info);
}
-void RenderWidgetHostViewWin::ForwardMouseEventToRenderer(UINT message,
- WPARAM wparam,
- LPARAM lparam) {
- WebMouseEvent event(m_hWnd, message, wparam, lparam);
- switch (event.type) {
- case WebInputEvent::MOUSE_MOVE:
- TrackMouseLeave(true);
- break;
- case WebInputEvent::MOUSE_LEAVE:
- TrackMouseLeave(false);
- break;
- case WebInputEvent::MOUSE_DOWN:
- SetCapture();
- break;
- case WebInputEvent::MOUSE_UP:
- if (GetCapture() == m_hWnd)
- ReleaseCapture();
- break;
- }
-
- render_widget_host_->ForwardMouseEvent(event);
-
- if (activatable_ && event.type == WebInputEvent::MOUSE_DOWN) {
- // This is a temporary workaround for bug 765011 to get focus when the
- // mouse is clicked. This happens after the mouse down event is sent to
- // the renderer because normally Windows does a WM_SETFOCUS after
- // WM_LBUTTONDOWN.
- SetFocus();
- }
-}
-
void RenderWidgetHostViewWin::Focus() {
if (IsWindow())
SetFocus();
@@ -962,6 +931,37 @@ void RenderWidgetHostViewWin::ResetTooltip() {
tooltip_hwnd_ = NULL;
}
+void RenderWidgetHostViewWin::ForwardMouseEventToRenderer(UINT message,
+ WPARAM wparam,
+ LPARAM lparam) {
+ WebMouseEvent event(m_hWnd, message, wparam, lparam);
+ switch (event.type) {
+ case WebInputEvent::MOUSE_MOVE:
+ TrackMouseLeave(true);
+ break;
+ case WebInputEvent::MOUSE_LEAVE:
+ TrackMouseLeave(false);
+ break;
+ case WebInputEvent::MOUSE_DOWN:
+ SetCapture();
+ break;
+ case WebInputEvent::MOUSE_UP:
+ if (GetCapture() == m_hWnd)
+ ReleaseCapture();
+ break;
+ }
+
+ render_widget_host_->ForwardMouseEvent(event);
+
+ if (activatable_ && event.type == WebInputEvent::MOUSE_DOWN) {
+ // This is a temporary workaround for bug 765011 to get focus when the
+ // mouse is clicked. This happens after the mouse down event is sent to
+ // the renderer because normally Windows does a WM_SETFOCUS after
+ // WM_LBUTTONDOWN.
+ SetFocus();
+ }
+}
+
void RenderWidgetHostViewWin::ShutdownHost() {
shutdown_factory_.RevokeAll();
render_widget_host_->Shutdown();
diff --git a/chrome/browser/renderer_host/render_widget_host_view_win.h b/chrome/browser/renderer_host/render_widget_host_view_win.h
index e8456be..3284ac6 100644
--- a/chrome/browser/renderer_host/render_widget_host_view_win.h
+++ b/chrome/browser/renderer_host/render_widget_host_view_win.h
@@ -127,9 +127,6 @@ class RenderWidgetHostViewWin :
virtual HWND GetPluginHWND();
virtual void MovePluginWindows(
const std::vector<WebPluginGeometry>& plugin_window_moves);
- virtual void ForwardMouseEventToRenderer(UINT message,
- WPARAM wparam,
- LPARAM lparam);
virtual void Focus();
virtual void Blur();
virtual bool HasFocus();
@@ -203,6 +200,9 @@ class RenderWidgetHostViewWin :
// becomes hidden, this method is called to reset the tooltip.
void ResetTooltip();
+ // Sends the specified mouse event to the renderer.
+ void ForwardMouseEventToRenderer(UINT message, WPARAM wparam, LPARAM lparam);
+
// Synthesize mouse wheel event.
LRESULT SynthesizeMouseWheel(bool is_vertical, int scroll_code,
short scroll_position);
diff --git a/chrome/browser/renderer_host/resource_dispatcher_host.cc b/chrome/browser/renderer_host/resource_dispatcher_host.cc
index 261d1c1..58d823f 100644
--- a/chrome/browser/renderer_host/resource_dispatcher_host.cc
+++ b/chrome/browser/renderer_host/resource_dispatcher_host.cc
@@ -197,7 +197,7 @@ bool ResourceDispatcherHost::HandleExternalProtocol(int request_id,
void ResourceDispatcherHost::BeginRequest(
Receiver* receiver,
- HANDLE render_process_handle,
+ base::ProcessHandle render_process_handle,
int render_process_host_id,
int render_view_id,
int request_id,
diff --git a/chrome/browser/renderer_host/resource_dispatcher_host.h b/chrome/browser/renderer_host/resource_dispatcher_host.h
index 757de44..f2dba57 100644
--- a/chrome/browser/renderer_host/resource_dispatcher_host.h
+++ b/chrome/browser/renderer_host/resource_dispatcher_host.h
@@ -18,6 +18,7 @@
#include "base/logging.h"
#include "base/observer_list.h"
+#include "base/process.h"
#include "base/ref_counted.h"
#include "base/timer.h"
#include "chrome/browser/renderer_host/resource_handler.h"
@@ -195,7 +196,7 @@ class ResourceDispatcherHost : public URLRequest::Delegate {
// a normal asynchronous set of response messages will be generated.
//
void BeginRequest(Receiver* receiver,
- HANDLE render_process_handle,
+ base::ProcessHandle render_process_handle,
int render_process_host_id,
int render_view_id,
int request_id,
diff --git a/chrome/browser/renderer_host/test_render_view_host.h b/chrome/browser/renderer_host/test_render_view_host.h
index f7d8bfa..a332667 100644
--- a/chrome/browser/renderer_host/test_render_view_host.h
+++ b/chrome/browser/renderer_host/test_render_view_host.h
@@ -7,6 +7,7 @@
#include "base/basictypes.h"
#include "base/message_loop.h"
+#include "build/build_config.h"
#include "chrome/browser/renderer_host/mock_render_process_host.h"
#include "chrome/browser/renderer_host/render_view_host.h"
#include "chrome/browser/renderer_host/render_widget_host_view.h"
@@ -31,16 +32,17 @@ class TestWebContents;
// without having side-effects.
class TestRenderWidgetHostView : public RenderWidgetHostView {
public:
- TestRenderWidgetHostView() : is_showing_(false) {}
+ TestRenderWidgetHostView() : is_showing_(false) {}
virtual RenderWidgetHost* GetRenderWidgetHost() const { return NULL; }
virtual void DidBecomeSelected() {}
virtual void WasHidden() {}
virtual void SetSize(const gfx::Size& size) {}
+#if defined(OS_WIN)
virtual HWND GetPluginHWND() { return NULL; }
+#endif
virtual void MovePluginWindows(
const std::vector<WebPluginGeometry>& plugin_window_moves) {}
- virtual HANDLE ModalDialogEvent() { return NULL; }
virtual void ForwardMouseEventToRenderer(UINT message,
WPARAM wparam,
LPARAM lparam) {}