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

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

Issue 10790055: Convert more PyAuto proxy calls to the JSON interface. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Ensure the returned Python string is of type str, not unicode, before passing to GURL. 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
« no previous file with comments | « chrome/browser/automation/testing_automation_provider.h ('k') | chrome/test/functional/popups.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 629c0ab84d9b3e9abea09e975cf461952a44d138..dfc00bff8f6474d9e2511f144cf6d9979ac2be31 100644
--- a/chrome/browser/automation/testing_automation_provider.cc
+++ b/chrome/browser/automation/testing_automation_provider.cc
@@ -1659,6 +1659,10 @@ void TestingAutomationProvider::BuildJSONHandlerMaps() {
&TestingAutomationProvider::ExecuteBrowserCommandJSON;
handler_map_["IsMenuCommandEnabled"] =
&TestingAutomationProvider::IsMenuCommandEnabledJSON;
+ handler_map_["ActivateTab"] =
+ &TestingAutomationProvider::ActivateTabJSON;
+ handler_map_["BringBrowserToFront"] =
+ &TestingAutomationProvider::BringBrowserToFrontJSON;
handler_map_["WaitForAllTabsToStopLoading"] =
&TestingAutomationProvider::WaitForAllViewsToStopLoading;
handler_map_["GetIndicesFromTab"] =
@@ -1751,6 +1755,10 @@ void TestingAutomationProvider::BuildJSONHandlerMaps() {
&TestingAutomationProvider::CreateNewAutomationProvider;
handler_map_["GetBrowserInfo"] =
&TestingAutomationProvider::GetBrowserInfo;
+ handler_map_["GetTabInfo"] =
+ &TestingAutomationProvider::GetTabInfo;
+ handler_map_["GetTabCount"] =
+ &TestingAutomationProvider::GetTabCountJSON;
handler_map_["OpenNewBrowserWindowWithNewProfile"] =
&TestingAutomationProvider::OpenNewBrowserWindowWithNewProfile;
handler_map_["GetMultiProfileInfo"] =
@@ -2133,6 +2141,20 @@ void TestingAutomationProvider::SendJSONRequest(Browser* browser,
}
}
+void TestingAutomationProvider::BringBrowserToFrontJSON(
+ 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;
+ }
+ browser->window()->Activate();
+ reply.SendSuccess(NULL);
+}
+
// Sample json input: { "command": "SetWindowDimensions",
// "x": 20, # optional
// "y": 20, # optional
@@ -6483,6 +6505,39 @@ void TestingAutomationProvider::IsMenuCommandEnabledJSON(
AutomationJSONReply(this, reply_message).SendSuccess(&dict);
}
+void TestingAutomationProvider::GetTabInfo(
+ DictionaryValue* args,
+ IPC::Message* reply_message) {
+ AutomationJSONReply reply(this, reply_message);
+ Browser* browser;
+ WebContents* tab;
+ std::string error;
+ if (GetBrowserAndTabFromJSONArgs(args, &browser, &tab, &error)) {
+ NavigationEntry* entry = tab->GetController().GetActiveEntry();
+ DictionaryValue dict;
+ dict.SetString("title", entry->GetTitleForDisplay(""));
+ dict.SetString("url", entry->GetVirtualURL().spec());
+ reply.SendSuccess(&dict);
+ } else {
+ reply.SendError(error);
+ }
+}
+
+void TestingAutomationProvider::GetTabCountJSON(
+ DictionaryValue* args,
+ IPC::Message* reply_message) {
+ AutomationJSONReply reply(this, reply_message);
+ Browser* browser;
+ std::string error;
+ if (!GetBrowserFromJSONArgs(args, &browser, &error)) {
+ reply.SendError(error);
+ return;
+ }
+ DictionaryValue dict;
+ dict.SetInteger("tab_count", browser->tab_count());
+ reply.SendSuccess(&dict);
+}
+
void TestingAutomationProvider::GoBack(
DictionaryValue* args,
IPC::Message* reply_message) {
« no previous file with comments | « chrome/browser/automation/testing_automation_provider.h ('k') | chrome/test/functional/popups.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698