Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(181)

Unified Diff: chrome/browser/automation/testing_automation_provider.cc

Issue 10836015: Convert more automation calls to the JSON interface. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix some failing tests. Created 8 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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)) {
+ 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);
« no previous file with comments | « chrome/browser/automation/testing_automation_provider.h ('k') | chrome/common/automation_messages_internal.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698