diff options
-rw-r--r-- | chrome/browser/automation/automation_provider.cc | 117 | ||||
-rw-r--r-- | chrome/browser/automation/automation_provider.h | 15 | ||||
-rw-r--r-- | chrome/browser/automation/automation_provider_gtk.cc | 10 | ||||
-rw-r--r-- | chrome/browser/automation/automation_provider_mac.mm | 8 | ||||
-rw-r--r-- | chrome/browser/automation/automation_provider_win.cc | 35 | ||||
-rw-r--r-- | chrome/browser/automation/testing_automation_provider.cc | 120 | ||||
-rw-r--r-- | chrome/browser/automation/testing_automation_provider.h | 13 | ||||
-rw-r--r-- | chrome/browser/automation/testing_automation_provider_gtk.cc | 19 | ||||
-rw-r--r-- | chrome/browser/automation/testing_automation_provider_mac.mm | 19 | ||||
-rw-r--r-- | chrome/browser/automation/testing_automation_provider_win.cc | 30 | ||||
-rw-r--r-- | chrome/chrome_browser.gypi | 5 |
11 files changed, 206 insertions, 185 deletions
diff --git a/chrome/browser/automation/automation_provider.cc b/chrome/browser/automation/automation_provider.cc index e42543a..851adc8 100644 --- a/chrome/browser/automation/automation_provider.cc +++ b/chrome/browser/automation/automation_provider.cc @@ -334,20 +334,6 @@ Extension* AutomationProvider::GetDisabledExtension(int extension_handle) { void AutomationProvider::OnMessageReceived(const IPC::Message& message) { IPC_BEGIN_MESSAGE_MAP(AutomationProvider, message) - IPC_MESSAGE_HANDLER(AutomationMsg_BrowserWindow, GetBrowserWindow) - IPC_MESSAGE_HANDLER(AutomationMsg_GetBrowserLocale, GetBrowserLocale) - IPC_MESSAGE_HANDLER(AutomationMsg_LastActiveBrowserWindow, - GetLastActiveBrowserWindow) - IPC_MESSAGE_HANDLER(AutomationMsg_ActiveWindow, GetActiveWindow) - IPC_MESSAGE_HANDLER(AutomationMsg_FindNormalBrowserWindow, - FindNormalBrowserWindow) - IPC_MESSAGE_HANDLER(AutomationMsg_IsWindowActive, IsWindowActive) - IPC_MESSAGE_HANDLER(AutomationMsg_ActivateWindow, ActivateWindow) - IPC_MESSAGE_HANDLER(AutomationMsg_IsWindowMaximized, IsWindowMaximized) - IPC_MESSAGE_HANDLER(AutomationMsg_WindowExecuteCommandAsync, - ExecuteBrowserCommandAsync) - IPC_MESSAGE_HANDLER_DELAY_REPLY(AutomationMsg_WindowExecuteCommand, - ExecuteBrowserCommand) IPC_MESSAGE_HANDLER(AutomationMsg_TerminateSession, TerminateSession) IPC_MESSAGE_HANDLER(AutomationMsg_WindowViewBounds, WindowGetViewBounds) IPC_MESSAGE_HANDLER(AutomationMsg_GetWindowBounds, GetWindowBounds) @@ -558,11 +544,6 @@ void AutomationProvider::OnMessageReceived(const IPC::Message& message) { IPC_END_MESSAGE_MAP() } -void AutomationProvider::GetBrowserLocale(string16* locale) { - DCHECK(g_browser_process); - *locale = ASCIIToUTF16(g_browser_process->GetApplicationLocale()); -} - void AutomationProvider::GetShowingAppModalDialog(bool* showing_dialog, int* dialog_button) { AppModalDialog* dialog_delegate = @@ -605,92 +586,6 @@ void AutomationProvider::ShutdownSessionService(int handle, bool* result) { } } -void AutomationProvider::GetBrowserWindow(int index, int* handle) { - *handle = 0; - if (index >= 0) { - BrowserList::const_iterator iter = BrowserList::begin(); - for (; (iter != BrowserList::end()) && (index > 0); ++iter, --index) {} - if (iter != BrowserList::end()) { - *handle = browser_tracker_->Add(*iter); - } - } -} - -void AutomationProvider::FindNormalBrowserWindow(int* handle) { - *handle = 0; - Browser* browser = BrowserList::FindBrowserWithType(profile_, - Browser::TYPE_NORMAL, - false); - if (browser) - *handle = browser_tracker_->Add(browser); -} - -void AutomationProvider::GetLastActiveBrowserWindow(int* handle) { - *handle = 0; - Browser* browser = BrowserList::GetLastActive(); - if (browser) - *handle = browser_tracker_->Add(browser); -} - -#if defined(OS_POSIX) -// TODO(estade): use this implementation for all platforms? -void AutomationProvider::GetActiveWindow(int* handle) { - gfx::NativeWindow window = - BrowserList::GetLastActive()->window()->GetNativeHandle(); - *handle = window_tracker_->Add(window); -} -#endif - -void AutomationProvider::ExecuteBrowserCommandAsync(int handle, int command, - bool* success) { - *success = false; - if (browser_tracker_->ContainsHandle(handle)) { - Browser* browser = browser_tracker_->GetResource(handle); - if (browser->command_updater()->SupportsCommand(command) && - browser->command_updater()->IsCommandEnabled(command)) { - browser->ExecuteCommand(command); - *success = true; - } - } -} - -void AutomationProvider::ExecuteBrowserCommand( - int handle, int command, IPC::Message* reply_message) { - // List of commands which just finish synchronously and don't require - // setting up an observer. - static const int kSynchronousCommands[] = { - IDC_HOME, - IDC_SELECT_NEXT_TAB, - IDC_SELECT_PREVIOUS_TAB, - IDC_SHOW_BOOKMARK_MANAGER, - }; - if (browser_tracker_->ContainsHandle(handle)) { - Browser* browser = browser_tracker_->GetResource(handle); - if (browser->command_updater()->SupportsCommand(command) && - browser->command_updater()->IsCommandEnabled(command)) { - // First check if we can handle the command without using an observer. - for (size_t i = 0; i < arraysize(kSynchronousCommands); i++) { - if (command == kSynchronousCommands[i]) { - browser->ExecuteCommand(command); - AutomationMsg_WindowExecuteCommand::WriteReplyParams(reply_message, - true); - Send(reply_message); - return; - } - } - - // Use an observer if we have one, otherwise fail. - if (ExecuteBrowserCommandObserver::CreateAndRegisterObserver( - this, browser, command, reply_message)) { - browser->ExecuteCommand(command); - return; - } - } - } - AutomationMsg_WindowExecuteCommand::WriteReplyParams(reply_message, false); - Send(reply_message); -} - // This task just adds another task to the event queue. This is useful if // you want to ensure that any tasks added to the event queue after this one // have already been processed by the time |task| is run. @@ -746,18 +641,6 @@ void AutomationProvider::WindowSimulateKeyPress(const IPC::Message& message, views::Event::EF_COMMAND_DOWN)); } -void AutomationProvider::IsWindowActive(int handle, bool* success, - bool* is_active) { - if (window_tracker_->ContainsHandle(handle)) { - *is_active = - platform_util::IsWindowActive(window_tracker_->GetResource(handle)); - *success = true; - } else { - *success = false; - *is_active = false; - } -} - void AutomationProvider::GetTabCount(int handle, int* tab_count) { *tab_count = -1; // -1 is the error code diff --git a/chrome/browser/automation/automation_provider.h b/chrome/browser/automation/automation_provider.h index ef28206..adc36d8 100644 --- a/chrome/browser/automation/automation_provider.h +++ b/chrome/browser/automation/automation_provider.h @@ -167,6 +167,7 @@ class AutomationProvider : public base::RefCounted<AutomationProvider>, scoped_ptr<AutomationBrowserTracker> browser_tracker_; scoped_ptr<AutomationTabTracker> tab_tracker_; + scoped_ptr<AutomationWindowTracker> window_tracker_; typedef std::map<NavigationController*, LoginHandler*> LoginHandlerMap; LoginHandlerMap login_handler_map_; @@ -183,19 +184,9 @@ class AutomationProvider : public base::RefCounted<AutomationProvider>, private: // IPC Message callbacks. - void GetBrowserLocale(string16* locale); void GetShowingAppModalDialog(bool* showing_dialog, int* dialog_button); void ClickAppModalDialogButton(int button, bool* success); void ShutdownSessionService(int handle, bool* result); - // Be aware that the browser window returned might be of non TYPE_NORMAL - // or in incognito mode. - void GetBrowserWindow(int index, int* handle); - void FindNormalBrowserWindow(int* handle); - void GetLastActiveBrowserWindow(int* handle); - void GetActiveWindow(int* handle); - void ExecuteBrowserCommandAsync(int handle, int command, bool* success); - void ExecuteBrowserCommand(int handle, int command, - IPC::Message* reply_message); void TerminateSession(int handle, bool* success); void WindowGetViewBounds(int handle, int view_id, bool screen_coordinates, bool* success, gfx::Rect* bounds); @@ -218,9 +209,6 @@ class AutomationProvider : public base::RefCounted<AutomationProvider>, void GetWindowBounds(int handle, gfx::Rect* bounds, bool* result); void SetWindowBounds(int handle, const gfx::Rect& bounds, bool* result); void SetWindowVisible(int handle, bool visible, bool* result); - void IsWindowActive(int handle, bool* success, bool* is_active); - void ActivateWindow(int handle); - void IsWindowMaximized(int handle, bool* is_maximized, bool* success); void GetTabCount(int handle, int* tab_count); void GetType(int handle, int* type_as_int); @@ -920,7 +908,6 @@ class AutomationProvider : public base::RefCounted<AutomationProvider>, extension_test_result_observer_; scoped_ptr<MetricEventDurationObserver> metric_event_duration_observer_; scoped_ptr<AutomationExtensionTracker> extension_tracker_; - scoped_ptr<AutomationWindowTracker> window_tracker_; scoped_ptr<AutomationAutocompleteEditTracker> autocomplete_edit_tracker_; scoped_ptr<NavigationControllerRestoredObserver> restore_tracker_; PortContainerMap port_containers_; diff --git a/chrome/browser/automation/automation_provider_gtk.cc b/chrome/browser/automation/automation_provider_gtk.cc index 06abc4f..097eeb1 100644 --- a/chrome/browser/automation/automation_provider_gtk.cc +++ b/chrome/browser/automation/automation_provider_gtk.cc @@ -71,16 +71,6 @@ void AutomationProvider::WindowGetViewBounds(int handle, int view_id, } #endif -void AutomationProvider::ActivateWindow(int handle) { - NOTIMPLEMENTED(); -} - -void AutomationProvider::IsWindowMaximized(int handle, bool* is_maximized, - bool* success) { - *success = false; - NOTIMPLEMENTED(); -} - void AutomationProvider::PrintAsync(int tab_handle) { NOTIMPLEMENTED(); } diff --git a/chrome/browser/automation/automation_provider_mac.mm b/chrome/browser/automation/automation_provider_mac.mm index de6e8ee..74d98e5 100644 --- a/chrome/browser/automation/automation_provider_mac.mm +++ b/chrome/browser/automation/automation_provider_mac.mm @@ -89,14 +89,6 @@ void AutomationProvider::WindowGetViewBounds(int handle, int view_id, *success = true; } -void AutomationProvider::ActivateWindow(int handle) { NOTIMPLEMENTED(); } - -void AutomationProvider::IsWindowMaximized(int handle, bool* is_maximized, - bool* success) { - *success = false; - NOTIMPLEMENTED(); -} - void AutomationProvider::PrintAsync(int tab_handle) { NOTIMPLEMENTED(); } diff --git a/chrome/browser/automation/automation_provider_win.cc b/chrome/browser/automation/automation_provider_win.cc index 9a227cd..70a8049 100644 --- a/chrome/browser/automation/automation_provider_win.cc +++ b/chrome/browser/automation/automation_provider_win.cc @@ -73,22 +73,6 @@ BOOL CALLBACK EnumThreadWndProc(HWND hwnd, LPARAM l_param) { return TRUE; } -void AutomationProvider::GetActiveWindow(int* handle) { - HWND window = GetForegroundWindow(); - - // Let's make sure this window belongs to our process. - if (EnumThreadWindows(::GetCurrentThreadId(), - EnumThreadWndProc, - reinterpret_cast<LPARAM>(window))) { - // We enumerated all the windows and did not find the foreground window, - // it is not our window, ignore it. - *handle = 0; - return; - } - - *handle = window_tracker_->Add(window); -} - // This task enqueues a mouse event on the event loop, so that the view // that it's being sent to can do the requisite post-processing. class MouseEventTask : public Task { @@ -271,25 +255,6 @@ void AutomationProvider::SetWindowVisible(int handle, bool visible, } } -void AutomationProvider::ActivateWindow(int handle) { - if (window_tracker_->ContainsHandle(handle)) { - ::SetActiveWindow(window_tracker_->GetResource(handle)); - } -} - -void AutomationProvider::IsWindowMaximized(int handle, bool* is_maximized, - bool* success) { - *success = false; - - HWND hwnd = window_tracker_->GetResource(handle); - if (hwnd) { - *success = true; - WINDOWPLACEMENT window_placement; - GetWindowPlacement(hwnd, &window_placement); - *is_maximized = (window_placement.showCmd == SW_MAXIMIZE); - } -} - void AutomationProvider::GetTabHWND(int handle, HWND* tab_hwnd) { *tab_hwnd = NULL; diff --git a/chrome/browser/automation/testing_automation_provider.cc b/chrome/browser/automation/testing_automation_provider.cc index f62079b..ac30470 100644 --- a/chrome/browser/automation/testing_automation_provider.cc +++ b/chrome/browser/automation/testing_automation_provider.cc @@ -5,13 +5,17 @@ #include "chrome/browser/automation/testing_automation_provider.h" #include "base/command_line.h" +#include "base/utf_string_conversions.h" #include "chrome/app/chrome_dll_resource.h" #include "chrome/browser/automation/automation_browser_tracker.h" #include "chrome/browser/automation/automation_provider_list.h" #include "chrome/browser/automation/automation_provider_observers.h" #include "chrome/browser/automation/automation_tab_tracker.h" +#include "chrome/browser/automation/automation_window_tracker.h" +#include "chrome/browser/browser_process.h" #include "chrome/browser/browser_window.h" #include "chrome/browser/login_prompt.h" +#include "chrome/browser/platform_util.h" #include "chrome/common/chrome_switches.h" #include "chrome/common/net/url_request_context_getter.h" #include "chrome/common/notification_service.h" @@ -170,6 +174,20 @@ void TestingAutomationProvider::OnMessageReceived( IPC_MESSAGE_HANDLER(AutomationMsg_BrowserWindowCount, GetBrowserWindowCount) IPC_MESSAGE_HANDLER(AutomationMsg_NormalBrowserWindowCount, GetNormalBrowserWindowCount) + IPC_MESSAGE_HANDLER(AutomationMsg_BrowserWindow, GetBrowserWindow) + IPC_MESSAGE_HANDLER(AutomationMsg_GetBrowserLocale, GetBrowserLocale) + IPC_MESSAGE_HANDLER(AutomationMsg_LastActiveBrowserWindow, + GetLastActiveBrowserWindow) + IPC_MESSAGE_HANDLER(AutomationMsg_ActiveWindow, GetActiveWindow) + IPC_MESSAGE_HANDLER(AutomationMsg_FindNormalBrowserWindow, + FindNormalBrowserWindow) + IPC_MESSAGE_HANDLER(AutomationMsg_IsWindowActive, IsWindowActive) + IPC_MESSAGE_HANDLER(AutomationMsg_ActivateWindow, ActivateWindow) + IPC_MESSAGE_HANDLER(AutomationMsg_IsWindowMaximized, IsWindowMaximized) + IPC_MESSAGE_HANDLER(AutomationMsg_WindowExecuteCommandAsync, + ExecuteBrowserCommandAsync) + IPC_MESSAGE_HANDLER_DELAY_REPLY(AutomationMsg_WindowExecuteCommand, + ExecuteBrowserCommand) IPC_MESSAGE_UNHANDLED(AutomationProvider::OnMessageReceived(message)); IPC_END_MESSAGE_MAP() @@ -531,6 +549,108 @@ void TestingAutomationProvider::GetNormalBrowserWindowCount(int* window_count) { BrowserList::GetBrowserCountForType(profile_, Browser::TYPE_NORMAL)); } +void TestingAutomationProvider::GetBrowserWindow(int index, int* handle) { + *handle = 0; + if (index >= 0) { + BrowserList::const_iterator iter = BrowserList::begin(); + for (; (iter != BrowserList::end()) && (index > 0); ++iter, --index) {} + if (iter != BrowserList::end()) { + *handle = browser_tracker_->Add(*iter); + } + } +} + +void TestingAutomationProvider::FindNormalBrowserWindow(int* handle) { + *handle = 0; + Browser* browser = BrowserList::FindBrowserWithType(profile_, + Browser::TYPE_NORMAL, + false); + if (browser) + *handle = browser_tracker_->Add(browser); +} + +void TestingAutomationProvider::GetLastActiveBrowserWindow(int* handle) { + *handle = 0; + Browser* browser = BrowserList::GetLastActive(); + if (browser) + *handle = browser_tracker_->Add(browser); +} + +void TestingAutomationProvider::GetActiveWindow(int* handle) { + gfx::NativeWindow window = + BrowserList::GetLastActive()->window()->GetNativeHandle(); + *handle = window_tracker_->Add(window); +} + +void TestingAutomationProvider::ExecuteBrowserCommandAsync(int handle, + int command, + bool* success) { + *success = false; + if (browser_tracker_->ContainsHandle(handle)) { + Browser* browser = browser_tracker_->GetResource(handle); + if (browser->command_updater()->SupportsCommand(command) && + browser->command_updater()->IsCommandEnabled(command)) { + browser->ExecuteCommand(command); + *success = true; + } + } +} + +void TestingAutomationProvider::ExecuteBrowserCommand( + int handle, int command, IPC::Message* reply_message) { + // List of commands which just finish synchronously and don't require + // setting up an observer. + static const int kSynchronousCommands[] = { + IDC_HOME, + IDC_SELECT_NEXT_TAB, + IDC_SELECT_PREVIOUS_TAB, + IDC_SHOW_BOOKMARK_MANAGER, + }; + if (browser_tracker_->ContainsHandle(handle)) { + Browser* browser = browser_tracker_->GetResource(handle); + if (browser->command_updater()->SupportsCommand(command) && + browser->command_updater()->IsCommandEnabled(command)) { + // First check if we can handle the command without using an observer. + for (size_t i = 0; i < arraysize(kSynchronousCommands); i++) { + if (command == kSynchronousCommands[i]) { + browser->ExecuteCommand(command); + AutomationMsg_WindowExecuteCommand::WriteReplyParams(reply_message, + true); + Send(reply_message); + return; + } + } + + // Use an observer if we have one, otherwise fail. + if (ExecuteBrowserCommandObserver::CreateAndRegisterObserver( + this, browser, command, reply_message)) { + browser->ExecuteCommand(command); + return; + } + } + } + AutomationMsg_WindowExecuteCommand::WriteReplyParams(reply_message, false); + Send(reply_message); +} + +void TestingAutomationProvider::GetBrowserLocale(string16* locale) { + DCHECK(g_browser_process); + *locale = ASCIIToUTF16(g_browser_process->GetApplicationLocale()); +} + +void TestingAutomationProvider::IsWindowActive(int handle, + bool* success, + bool* is_active) { + if (window_tracker_->ContainsHandle(handle)) { + *is_active = + platform_util::IsWindowActive(window_tracker_->GetResource(handle)); + *success = true; + } else { + *success = false; + *is_active = false; + } +} + // TODO(brettw) change this to accept GURLs when history supports it void TestingAutomationProvider::OnRedirectQueryComplete( HistoryService::Handle request_handle, diff --git a/chrome/browser/automation/testing_automation_provider.h b/chrome/browser/automation/testing_automation_provider.h index 55588e9..8b6da28 100644 --- a/chrome/browser/automation/testing_automation_provider.h +++ b/chrome/browser/automation/testing_automation_provider.h @@ -70,6 +70,19 @@ class TestingAutomationProvider : public AutomationProvider, IPC::Message* reply_message); void GetBrowserWindowCount(int* window_count); void GetNormalBrowserWindowCount(int* window_count); + // Be aware that the browser window returned might be of non TYPE_NORMAL + // or in incognito mode. + void GetBrowserWindow(int index, int* handle); + void FindNormalBrowserWindow(int* handle); + void GetLastActiveBrowserWindow(int* handle); + void GetActiveWindow(int* handle); + void ExecuteBrowserCommandAsync(int handle, int command, bool* success); + void ExecuteBrowserCommand(int handle, int command, + IPC::Message* reply_message); + void GetBrowserLocale(string16* locale); + void IsWindowActive(int handle, bool* success, bool* is_active); + void ActivateWindow(int handle); + void IsWindowMaximized(int handle, bool* is_maximized, bool* success); // Callback for history redirect queries. virtual void OnRedirectQueryComplete( diff --git a/chrome/browser/automation/testing_automation_provider_gtk.cc b/chrome/browser/automation/testing_automation_provider_gtk.cc new file mode 100644 index 0000000..ce61658 --- /dev/null +++ b/chrome/browser/automation/testing_automation_provider_gtk.cc @@ -0,0 +1,19 @@ +// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chrome/browser/automation/testing_automation_provider.h" + +#include "base/logging.h" + +void TestingAutomationProvider::ActivateWindow(int handle) { + NOTIMPLEMENTED(); +} + +void TestingAutomationProvider::IsWindowMaximized(int handle, + bool* is_maximized, + bool* success) { + *success = false; + NOTIMPLEMENTED(); +} + diff --git a/chrome/browser/automation/testing_automation_provider_mac.mm b/chrome/browser/automation/testing_automation_provider_mac.mm new file mode 100644 index 0000000..ce61658 --- /dev/null +++ b/chrome/browser/automation/testing_automation_provider_mac.mm @@ -0,0 +1,19 @@ +// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chrome/browser/automation/testing_automation_provider.h" + +#include "base/logging.h" + +void TestingAutomationProvider::ActivateWindow(int handle) { + NOTIMPLEMENTED(); +} + +void TestingAutomationProvider::IsWindowMaximized(int handle, + bool* is_maximized, + bool* success) { + *success = false; + NOTIMPLEMENTED(); +} + diff --git a/chrome/browser/automation/testing_automation_provider_win.cc b/chrome/browser/automation/testing_automation_provider_win.cc new file mode 100644 index 0000000..dcb8b1c --- /dev/null +++ b/chrome/browser/automation/testing_automation_provider_win.cc @@ -0,0 +1,30 @@ +// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chrome/browser/automation/testing_automation_provider.h" + +#include <windows.h> + +#include "chrome/browser/automation/automation_window_tracker.h" + +void TestingAutomationProvider::ActivateWindow(int handle) { + if (window_tracker_->ContainsHandle(handle)) { + ::SetActiveWindow(window_tracker_->GetResource(handle)); + } +} + +void TestingAutomationProvider::IsWindowMaximized(int handle, + bool* is_maximized, + bool* success) { + *success = false; + + HWND hwnd = window_tracker_->GetResource(handle); + if (hwnd) { + *success = true; + WINDOWPLACEMENT window_placement; + GetWindowPlacement(hwnd, &window_placement); + *is_maximized = (window_placement.showCmd == SW_MAXIMIZE); + } +} + diff --git a/chrome/chrome_browser.gypi b/chrome/chrome_browser.gypi index 22901b4..1d6efa4 100644 --- a/chrome/chrome_browser.gypi +++ b/chrome/chrome_browser.gypi @@ -222,6 +222,9 @@ 'browser/automation/chrome_frame_automation_provider.h', 'browser/automation/extension_port_container.cc', 'browser/automation/extension_port_container.h', + 'browser/automation/testing_automation_provider_gtk.cc', + 'browser/automation/testing_automation_provider_mac.mm', + 'browser/automation/testing_automation_provider_win.cc', 'browser/automation/testing_automation_provider.cc', 'browser/automation/testing_automation_provider.h', 'browser/automation/url_request_automation_job.cc', @@ -2416,7 +2419,7 @@ 'browser/sidebar/sidebar_container.cc', 'browser/sidebar/sidebar_container.h', 'browser/sidebar/sidebar_manager.cc', - 'browser/sidebar/sidebar_manager.h', + 'browser/sidebar/sidebar_manager.h', 'browser/speech/speech_input_dispatcher_host.cc', 'browser/speech/speech_input_dispatcher_host.h', 'browser/speech/speech_input_manager.cc', |