diff options
author | estade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-11-02 23:51:35 +0000 |
---|---|---|
committer | estade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-11-02 23:51:35 +0000 |
commit | 60507b1cedf0d19b1a5d9034abb2eb25a2432439 (patch) | |
tree | 582b93535b8622b49a98ad3cd9920277f8412c79 /chrome/test/automation | |
parent | 9f5e42c18b9d6f20338d90d6330111f2454bd986 (diff) | |
download | chromium_src-60507b1cedf0d19b1a5d9034abb2eb25a2432439.zip chromium_src-60507b1cedf0d19b1a5d9034abb2eb25a2432439.tar.gz chromium_src-60507b1cedf0d19b1a5d9034abb2eb25a2432439.tar.bz2 |
Re-landing of r30726, which was reverted as a possible cause of chromeos buildbot failures
Handle GTK enter and leave notification events and pass them to WebKit as
mouse move events. This prevents an HTML widget from staying in the mouseover
state when the cursor leaves the window. Add a new ui test that checks
the specific case that was broken by warping the mouse pointer inside and
outside the content area.
BUG=24660
TEST=ui_tests
patch by Dominic Mazzoni <dmazzoni [at] google>
original review: http://codereview.chromium.org/274010/show
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@30771 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/test/automation')
-rw-r--r-- | chrome/test/automation/automation_messages_internal.h | 6 | ||||
-rw-r--r-- | chrome/test/automation/window_proxy.cc | 7 | ||||
-rw-r--r-- | chrome/test/automation/window_proxy.h | 4 |
3 files changed, 17 insertions, 0 deletions
diff --git a/chrome/test/automation/automation_messages_internal.h b/chrome/test/automation/automation_messages_internal.h index e7cd47f..e8f215c 100644 --- a/chrome/test/automation/automation_messages_internal.h +++ b/chrome/test/automation/automation_messages_internal.h @@ -1155,5 +1155,11 @@ IPC_BEGIN_MESSAGES(Automation) int /* Type (Browser::Type) */, bool /* show */ ) + // This message requests that the mouse be moved to this location, in + // window coordinate space. + // Request: + // int - the handle of the window that's the context for this click + // gfx::Point - the location to move to + IPC_MESSAGE_ROUTED2(AutomationMsg_WindowMouseMove, int, gfx::Point) IPC_END_MESSAGES(Automation) diff --git a/chrome/test/automation/window_proxy.cc b/chrome/test/automation/window_proxy.cc index 5b08842..1a8f56b 100644 --- a/chrome/test/automation/window_proxy.cc +++ b/chrome/test/automation/window_proxy.cc @@ -23,6 +23,13 @@ bool WindowProxy::SimulateOSClick(const gfx::Point& click, int flags) { new AutomationMsg_WindowClick(0, handle_, click, flags)); } +bool WindowProxy::SimulateOSMouseMove(const gfx::Point& location) { + if (!is_valid()) return false; + + return sender_->Send( + new AutomationMsg_WindowMouseMove(0, handle_, location)); +} + bool WindowProxy::GetWindowTitle(string16* text) { if (!is_valid()) return false; diff --git a/chrome/test/automation/window_proxy.h b/chrome/test/automation/window_proxy.h index 33a27c0..92f74ae 100644 --- a/chrome/test/automation/window_proxy.h +++ b/chrome/test/automation/window_proxy.h @@ -44,6 +44,10 @@ class WindowProxy : public AutomationResourceProxy { // window, the top window is clicked. bool SimulateOSClick(const gfx::Point& click, int flags); + // Moves the mouse pointer this location at the OS level. |location| is + // in the window's coordinates. + bool SimulateOSMouseMove(const gfx::Point& location); + // Get the title of the top level window. bool GetWindowTitle(string16* text); |