Chromium Code Reviews| Index: chrome/browser/automation/ui_controls_win.cc | 
| =================================================================== | 
| --- chrome/browser/automation/ui_controls_win.cc (revision 67835) | 
| +++ chrome/browser/automation/ui_controls_win.cc (working copy) | 
| @@ -8,7 +8,6 @@ | 
| #include "app/keyboard_codes.h" | 
| #include "base/logging.h" | 
| #include "base/message_loop.h" | 
| -#include "base/string_util.h" | 
| #include "base/win_util.h" | 
| #include "base/ref_counted.h" | 
| #include "base/task.h" | 
| @@ -18,12 +17,6 @@ | 
| namespace { | 
| -void Checkpoint(const char* message, const base::TimeTicks& start_time) { | 
| - LOG(INFO) << message << " : " | 
| - << (base::TimeTicks::Now() - start_time).InMilliseconds() | 
| - << " ms" << std::flush; | 
| -} | 
| - | 
| // InputDispatcher ------------------------------------------------------------ | 
| // InputDispatcher is used to listen for a mouse/keyboard event. When the | 
| @@ -78,25 +71,12 @@ | 
| // Callback from hook when a key message is received. | 
| LRESULT CALLBACK KeyHook(int n_code, WPARAM w_param, LPARAM l_param) { | 
| - base::TimeTicks start_time = base::TimeTicks::Now(); | 
| - char msg[512]; | 
| - base::snprintf(msg, 512, "KeyHook starts: %d", n_code); | 
| - Checkpoint(msg, start_time); | 
| - | 
| HHOOK next_hook = next_hook_; | 
| - base::snprintf(msg, 512, "n_code == HC_ACTION: %d, %d", | 
| - l_param, !!(l_param & (1 << 30))); | 
| - Checkpoint(msg, start_time); | 
| if (n_code == HC_ACTION) { | 
| DCHECK(current_dispatcher_); | 
| - if (l_param & (1 << 30)) { // Only send on key up. | 
| - Checkpoint("MatchingMessageFound", start_time); | 
| + if (l_param & (1 << 30)) // Only send on key up. | 
| 
 
M-A Ruel
2010/12/01 14:22:35
style nit: Ugh, I hate comments positioned like th
 
Finnur
2010/12/01 14:40:35
This is the way I arrived at it before adding trac
 
 | 
| current_dispatcher_->MatchingMessageFound(); | 
| - } else { | 
| - Checkpoint("Not key up", start_time); | 
| - } | 
| } | 
| - Checkpoint("KeyHook ends, calling next hook.", start_time); | 
| return CallNextHookEx(next_hook, n_code, w_param, l_param); | 
| } | 
| @@ -184,99 +164,77 @@ | 
| bool SendKeyPressImpl(app::KeyboardCode key, | 
| bool control, bool shift, bool alt, | 
| Task* task) { | 
| - base::TimeTicks start_time = base::TimeTicks::Now(); | 
| - Checkpoint("SendKeyPressImpl starts", start_time); | 
| - | 
| scoped_refptr<InputDispatcher> dispatcher( | 
| task ? new InputDispatcher(task, WM_KEYUP) : NULL); | 
| // If a pop-up menu is open, it won't receive events sent using SendInput. | 
| // Check for a pop-up menu using its window class (#32768) and if one | 
| // exists, send the key event directly there. | 
| - Checkpoint("FindWindow", start_time); | 
| HWND popup_menu = ::FindWindow(L"#32768", 0); | 
| if (popup_menu != NULL && popup_menu == ::GetTopWindow(NULL)) { | 
| - Checkpoint("Found popup window", start_time); | 
| WPARAM w_param = app::WindowsKeyCodeForKeyboardCode(key); | 
| LPARAM l_param = 0; | 
| - Checkpoint("Send WM_KEYDOWN", start_time); | 
| ::SendMessage(popup_menu, WM_KEYDOWN, w_param, l_param); | 
| - Checkpoint("Send WM_KEYUP", start_time); | 
| ::SendMessage(popup_menu, WM_KEYUP, w_param, l_param); | 
| - Checkpoint("Send Done", start_time); | 
| if (dispatcher.get()) | 
| dispatcher->AddRef(); | 
| return true; | 
| } | 
| - Checkpoint("Found no popup window", start_time); | 
| - | 
| INPUT input[8] = { 0 }; // 8, assuming all the modifiers are activated | 
| UINT i = 0; | 
| if (control) { | 
| - Checkpoint("FillKeyboardInput Control", start_time); | 
| if (!FillKeyboardInput(app::VKEY_CONTROL, &input[i], false)) | 
| return false; | 
| i++; | 
| } | 
| if (shift) { | 
| - Checkpoint("FillKeyboardInput Shift", start_time); | 
| if (!FillKeyboardInput(app::VKEY_SHIFT, &input[i], false)) | 
| return false; | 
| i++; | 
| } | 
| if (alt) { | 
| - Checkpoint("FillKeyboardInput Alt", start_time); | 
| if (!FillKeyboardInput(app::VKEY_MENU, &input[i], false)) | 
| return false; | 
| i++; | 
| } | 
| - Checkpoint("FillKeyboardInput 1", start_time); | 
| if (!FillKeyboardInput(key, &input[i], false)) | 
| return false; | 
| i++; | 
| - Checkpoint("FillKeyboardInput 2", start_time); | 
| if (!FillKeyboardInput(key, &input[i], true)) | 
| return false; | 
| i++; | 
| if (alt) { | 
| - Checkpoint("FillKeyboardInput Alt2", start_time); | 
| if (!FillKeyboardInput(app::VKEY_MENU, &input[i], true)) | 
| return false; | 
| i++; | 
| } | 
| if (shift) { | 
| - Checkpoint("FillKeyboardInput Shift2", start_time); | 
| if (!FillKeyboardInput(app::VKEY_SHIFT, &input[i], true)) | 
| return false; | 
| i++; | 
| } | 
| if (control) { | 
| - Checkpoint("FillKeyboardInput Ctrl2", start_time); | 
| if (!FillKeyboardInput(app::VKEY_CONTROL, &input[i], true)) | 
| return false; | 
| i++; | 
| } | 
| - Checkpoint("SendInput called", start_time); | 
| if (::SendInput(i, input, sizeof(INPUT)) != i) | 
| return false; | 
| - Checkpoint("SendInput done", start_time); | 
| - | 
| if (dispatcher.get()) | 
| dispatcher->AddRef(); | 
| - Checkpoint("Test done", start_time); | 
| return true; | 
| } |