Index: chrome/browser/automation/testing_automation_provider.cc |
diff --git a/chrome/browser/automation/testing_automation_provider.cc b/chrome/browser/automation/testing_automation_provider.cc |
index 85cf92b829ddc39d5332bf2c1f58970fd730c137..32b3fd7b7fddbc9745394a40be45fffdccaf2c47 100644 |
--- a/chrome/browser/automation/testing_automation_provider.cc |
+++ b/chrome/browser/automation/testing_automation_provider.cc |
@@ -411,8 +411,6 @@ bool TestingAutomationProvider::OnMessageReceived( |
IPC_MESSAGE_HANDLER_DELAY_REPLY(AutomationMsg_ActionOnSSLBlockingPage, |
ActionOnSSLBlockingPage) |
IPC_MESSAGE_HANDLER(AutomationMsg_BringBrowserToFront, BringBrowserToFront) |
- IPC_MESSAGE_HANDLER(AutomationMsg_OpenFindInPage, |
- HandleOpenFindInPageRequest) |
IPC_MESSAGE_HANDLER(AutomationMsg_FindWindowVisibility, |
GetFindWindowVisibility) |
IPC_MESSAGE_HANDLER(AutomationMsg_BookmarkBarVisibility, |
@@ -451,7 +449,6 @@ bool TestingAutomationProvider::OnMessageReceived( |
WaitForTabCountToBecome) |
IPC_MESSAGE_HANDLER_DELAY_REPLY(AutomationMsg_WaitForInfoBarCount, |
WaitForInfoBarCount) |
- IPC_MESSAGE_HANDLER(AutomationMsg_ResetToDefaultTheme, ResetToDefaultTheme) |
IPC_MESSAGE_HANDLER_DELAY_REPLY( |
AutomationMsg_WaitForProcessLauncherThreadToGoIdle, |
WaitForProcessLauncherThreadToGoIdle) |
@@ -1164,6 +1161,45 @@ void TestingAutomationProvider::OpenNewBrowserWindowOfType( |
browser->window()->Show(); |
} |
+void TestingAutomationProvider::OpenNewBrowserWindow( |
+ base::DictionaryValue* args, |
+ IPC::Message* reply_message) { |
+ AutomationJSONReply reply(this, reply_message); |
+ bool show; |
+ if (!args->GetBoolean("show", &show)) { |
Nirnimesh
2012/07/31 00:29:29
All pyauto usage has this set to True. It might be
|
+ reply.SendError("'show' missing or invalid."); |
+ return; |
+ } |
+ new BrowserOpenedNotificationObserver(this, reply_message, true); |
+ Browser* browser = new Browser( |
+ Browser::CreateParams(Browser::TYPE_TABBED, profile_)); |
+ chrome::AddBlankTab(browser, true); |
+ if (show) |
+ browser->window()->Show(); |
+} |
+ |
+void TestingAutomationProvider::GetBrowserWindowCountJSON( |
+ base::DictionaryValue* args, |
+ IPC::Message* reply_message) { |
+ DictionaryValue dict; |
+ dict.SetInteger("count", static_cast<int>(BrowserList::size())); |
+ AutomationJSONReply(this, reply_message).SendSuccess(&dict); |
+} |
+ |
+void TestingAutomationProvider::CloseBrowserWindow( |
+ base::DictionaryValue* args, |
+ IPC::Message* reply_message) { |
+ AutomationJSONReply reply(this, reply_message); |
+ Browser* browser; |
+ std::string error_msg; |
+ if (!GetBrowserFromJSONArgs(args, &browser, &error_msg)) { |
+ reply.SendError(error_msg); |
+ return; |
+ } |
+ new BrowserClosedNotificationObserver(browser, this, reply_message, true); |
+ browser->window()->Close(); |
+} |
+ |
void TestingAutomationProvider::OpenProfileWindow( |
base::DictionaryValue* args, IPC::Message* reply_message) { |
ProfileManager* profile_manager = g_browser_process->profile_manager(); |
@@ -1313,14 +1349,6 @@ void TestingAutomationProvider::BringBrowserToFront(int browser_handle, |
} |
} |
-void TestingAutomationProvider::HandleOpenFindInPageRequest( |
- const IPC::Message& message, int handle) { |
- if (browser_tracker_->ContainsHandle(handle)) { |
- Browser* browser = browser_tracker_->GetResource(handle); |
- chrome::FindInPage(browser, false, false); |
- } |
-} |
- |
void TestingAutomationProvider::GetFindWindowVisibility(int handle, |
bool* visible) { |
*visible = false; |
@@ -1614,6 +1642,10 @@ void TestingAutomationProvider::BuildJSONHandlerMaps() { |
&TestingAutomationProvider::GetActiveTabIndexJSON; |
handler_map_["AppendTab"] = |
&TestingAutomationProvider::AppendTabJSON; |
+ handler_map_["OpenNewBrowserWindow"] = |
+ &TestingAutomationProvider::OpenNewBrowserWindow; |
+ handler_map_["CloseBrowserWindow"] = |
+ &TestingAutomationProvider::CloseBrowserWindow; |
handler_map_["WaitUntilNavigationCompletes"] = |
&TestingAutomationProvider::WaitUntilNavigationCompletes; |
handler_map_["GetLocalStatePrefsInfo"] = |
@@ -1640,6 +1672,10 @@ void TestingAutomationProvider::BuildJSONHandlerMaps() { |
&TestingAutomationProvider::GoBack; |
handler_map_["Reload"] = |
&TestingAutomationProvider::ReloadJSON; |
+ handler_map_["OpenFindInPage"] = |
+ &TestingAutomationProvider::OpenFindInPage; |
+ handler_map_["IsFindInPageVisible"] = |
+ &TestingAutomationProvider::IsFindInPageVisible; |
handler_map_["CaptureEntirePage"] = |
&TestingAutomationProvider::CaptureEntirePageJSON; |
handler_map_["SetDownloadShelfVisible"] = |
@@ -1706,6 +1742,8 @@ void TestingAutomationProvider::BuildJSONHandlerMaps() { |
&TestingAutomationProvider::IsPageActionVisible; |
handler_map_["CreateNewAutomationProvider"] = |
&TestingAutomationProvider::CreateNewAutomationProvider; |
+ handler_map_["GetBrowserWindowCount"] = |
+ &TestingAutomationProvider::GetBrowserWindowCountJSON; |
handler_map_["GetBrowserInfo"] = |
&TestingAutomationProvider::GetBrowserInfo; |
handler_map_["GetTabInfo"] = |
@@ -1912,6 +1950,8 @@ void TestingAutomationProvider::BuildJSONHandlerMaps() { |
&TestingAutomationProvider::GetBlockedPopupsInfo; |
browser_handler_map_["UnblockAndLaunchBlockedPopup"] = |
&TestingAutomationProvider::UnblockAndLaunchBlockedPopup; |
+ handler_map_["ResetToDefaultTheme"] = |
+ &TestingAutomationProvider::ResetToDefaultTheme; |
// SetTheme() implemented using InstallExtension(). |
browser_handler_map_["GetThemeInfo"] = |
@@ -3802,6 +3842,39 @@ void TestingAutomationProvider::FindInPage( |
reply_message); |
} |
+void TestingAutomationProvider::OpenFindInPage( |
+ DictionaryValue* args, |
+ IPC::Message* reply_message) { |
+ AutomationJSONReply reply(this, reply_message); |
+ Browser* browser; |
+ std::string error_msg; |
+ if (!GetBrowserFromJSONArgs(args, &browser, &error_msg)) { |
+ reply.SendError(error_msg); |
+ return; |
+ } |
+ chrome::FindInPage(browser, false, false); |
+ reply.SendSuccess(NULL); |
+} |
+ |
+void TestingAutomationProvider::IsFindInPageVisible( |
+ DictionaryValue* args, |
+ IPC::Message* reply_message) { |
+ AutomationJSONReply reply(this, reply_message); |
+ bool visible; |
+ Browser* browser; |
+ std::string error_msg; |
+ if (!GetBrowserFromJSONArgs(args, &browser, &error_msg)) { |
+ reply.SendError(error_msg); |
+ return; |
+ } |
+ FindBarTesting* find_bar = |
+ browser->GetFindBarController()->find_bar()->GetFindBarTesting(); |
+ find_bar->GetFindBarWindowInfo(NULL, &visible); |
+ DictionaryValue dict; |
+ dict.SetBoolean("is_visible", visible); |
+ reply.SendSuccess(&dict); |
+} |
+ |
// See GetTranslateInfo() in chrome/test/pyautolib/pyauto.py for sample json |
// input and output. |
void TestingAutomationProvider::GetTranslateInfo( |
@@ -6954,6 +7027,20 @@ void TestingAutomationProvider::ActivateTabJSON( |
reply.SendSuccess(NULL); |
} |
+void TestingAutomationProvider::ResetToDefaultTheme( |
+ base::DictionaryValue* args, |
+ IPC::Message* reply_message) { |
+ AutomationJSONReply reply(this, reply_message); |
+ Browser* browser; |
+ std::string error_msg; |
+ if (!GetBrowserFromJSONArgs(args, &browser, &error_msg)) { |
+ reply.SendError(error_msg); |
+ return; |
+ } |
+ ThemeServiceFactory::GetForProfile(browser->profile())->UseDefaultTheme(); |
+ reply.SendSuccess(NULL); |
+} |
+ |
void TestingAutomationProvider::IsPageActionVisible( |
base::DictionaryValue* args, |
IPC::Message* reply_message) { |
@@ -7072,10 +7159,6 @@ void TestingAutomationProvider::WaitForInfoBarCount( |
TabContents::FromWebContents(controller->GetWebContents()), target_count); |
} |
-void TestingAutomationProvider::ResetToDefaultTheme() { |
- ThemeServiceFactory::GetForProfile(profile_)->UseDefaultTheme(); |
-} |
- |
void TestingAutomationProvider::WaitForProcessLauncherThreadToGoIdle( |
IPC::Message* reply_message) { |
new WaitForProcessLauncherThreadToGoIdleObserver(this, reply_message); |