summaryrefslogtreecommitdiffstats
path: root/chrome/browser/automation/automation_provider.cc
diff options
context:
space:
mode:
authorfinnur@google.com <finnur@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2008-08-06 22:49:45 +0000
committerfinnur@google.com <finnur@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2008-08-06 22:49:45 +0000
commit5f8af2aa221fd2fba282dd51dc0837829cd48967 (patch)
treed81334eb34cce1b935767194a829d650116b1213 /chrome/browser/automation/automation_provider.cc
parentb63cbfaf62c1119b1f4b715d0186e516a2444600 (diff)
downloadchromium_src-5f8af2aa221fd2fba282dd51dc0837829cd48967.zip
chromium_src-5f8af2aa221fd2fba282dd51dc0837829cd48967.tar.gz
chromium_src-5f8af2aa221fd2fba282dd51dc0837829cd48967.tar.bz2
Adding an interactive UI test to catch when switching between two tabs (both with FindInPage open) is trashing the Esc handler and causing a crash.
I originally tried an automated_ui test, but was unable to get it to work since Focus changes are involved. BUG=1303709 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@466 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/automation/automation_provider.cc')
-rw-r--r--chrome/browser/automation/automation_provider.cc15
1 files changed, 14 insertions, 1 deletions
diff --git a/chrome/browser/automation/automation_provider.cc b/chrome/browser/automation/automation_provider.cc
index 5636302..5c10d68 100644
--- a/chrome/browser/automation/automation_provider.cc
+++ b/chrome/browser/automation/automation_provider.cc
@@ -775,6 +775,8 @@ void AutomationProvider::OnMessageReceived(const IPC::Message& message) {
AutocompleteEditGetMatches)
IPC_MESSAGE_HANDLER(AutomationMsg_ConstrainedWindowBoundsRequest,
GetConstrainedWindowBounds)
+ IPC_MESSAGE_HANDLER(AutomationMsg_OpenFindInPageRequest,
+ HandleOpenFindInPageRequest)
IPC_END_MESSAGE_MAP()
}
@@ -1096,7 +1098,6 @@ void AutomationProvider::GetWindowHWND(const IPC::Message& message,
void AutomationProvider::ExecuteBrowserCommand(const IPC::Message& message,
int handle,
int command) {
-
bool success = false;
if (browser_tracker_->ContainsHandle(handle)) {
Browser* browser = browser_tracker_->GetResource(handle);
@@ -1694,6 +1695,18 @@ void AutomationProvider::HandleFindInPageRequest(
false); // Not a FindNext operation.
}
+void AutomationProvider::HandleOpenFindInPageRequest(
+ const IPC::Message& message, int handle) {
+ if (tab_tracker_->ContainsHandle(handle)) {
+ NavigationController* tab = tab_tracker_->GetResource(handle);
+ Browser* browser = Browser::GetBrowserForController(tab, NULL);
+ if (tab->active_contents()->AsWebContents()) {
+ WebContents* web_contents = tab->active_contents()->AsWebContents();
+ web_contents->OpenFindInPageWindow(*browser);
+ }
+ }
+}
+
void AutomationProvider::HandleInspectElementRequest(
const IPC::Message& message, int handle, int x, int y) {
if (!tab_tracker_->ContainsHandle(handle)) {