diff options
Diffstat (limited to 'chrome/browser/automation')
-rw-r--r-- | chrome/browser/automation/automation_provider.cc | 25 | ||||
-rw-r--r-- | chrome/browser/automation/automation_provider.h | 4 |
2 files changed, 29 insertions, 0 deletions
diff --git a/chrome/browser/automation/automation_provider.cc b/chrome/browser/automation/automation_provider.cc index e37244c..5fa08ef 100644 --- a/chrome/browser/automation/automation_provider.cc +++ b/chrome/browser/automation/automation_provider.cc @@ -867,6 +867,7 @@ void AutomationProvider::OnMessageReceived(const IPC::Message& message) { WaitForTabToBeRestored) IPC_MESSAGE_HANDLER(AutomationMsg_SetInitialFocus, SetInitialFocus) + IPC_MESSAGE_HANDLER(AutomationMsg_TabReposition, OnTabReposition) #endif // defined(OS_WIN) IPC_MESSAGE_HANDLER(AutomationMsg_GetSecurityState, GetSecurityState) @@ -2712,3 +2713,27 @@ void AutomationProvider::OverrideEncoding(int tab_handle, void AutomationProvider::SavePackageShouldPromptUser(bool should_prompt) { SavePackage::SetShouldPromptUser(should_prompt); } + +#ifdef OS_WIN +void AutomationProvider::OnTabReposition( + int tab_handle, const IPC::Reposition_Params& params) { + if (!tab_tracker_->ContainsHandle(tab_handle)) + return; + + if (!IsWindow(params.window)) + return; + + unsigned long process_id = 0; + unsigned long thread_id = 0; + + thread_id = GetWindowThreadProcessId(params.window, &process_id); + + if (thread_id != GetCurrentThreadId()) { + NOTREACHED(); + return; + } + + SetWindowPos(params.window, params.window_insert_after, params.left, + params.top, params.width, params.height, params.flags); +} +#endif // defined(OS_WIN) diff --git a/chrome/browser/automation/automation_provider.h b/chrome/browser/automation/automation_provider.h index c9aa0be..c2bdba3 100644 --- a/chrome/browser/automation/automation_provider.h +++ b/chrome/browser/automation/automation_provider.h @@ -24,6 +24,7 @@ #include "chrome/common/ipc_message.h" #include "chrome/common/ipc_sync_channel.h" #include "chrome/common/notification_observer.h" +#include "chrome/test/automation/automation_messages.h" #include "chrome/views/event.h" #include "webkit/glue/find_in_page_request.h" @@ -295,6 +296,9 @@ class AutomationProvider : public base::RefCounted<AutomationProvider>, // Chrome. void SetAcceleratorsForTab(int handle, HACCEL accel_table, int accel_entry_count, bool* status); + + void OnTabReposition(int tab_handle, + const IPC::Reposition_Params& params); #endif // defined(OS_WIN) // Gets the security state for the tab associated to the specified |handle|. |