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

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

Issue 10692067: Convert PyAuto's NavigateToURL, GetActiveTabIndex, Refresh, RefreshActiveTab, and AppendTab to the … (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 8 years, 6 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 6dbd5c7bea02810d2abee21f13486ee94c989980..3f958588131e2d0e3ebfa14bc60bfae3df89e0e3 100644
--- a/chrome/browser/automation/testing_automation_provider.cc
+++ b/chrome/browser/automation/testing_automation_provider.cc
@@ -504,9 +504,10 @@ void TestingAutomationProvider::AppendTab(int handle,
if (browser_tracker_->ContainsHandle(handle)) {
Browser* browser = browser_tracker_->GetResource(handle);
observer = new TabAppendedNotificationObserver(browser, this,
- reply_message);
- TabContents* contents = chrome::AddSelectedTabWithURL(
- browser, url, content::PAGE_TRANSITION_TYPED);
+ reply_message, false);
+ TabContents* contents =
+ chrome::AddSelectedTabWithURL(browser, url,
+ content::PAGE_TRANSITION_TYPED);
if (contents) {
append_tab_response = GetIndexForNavigationController(
&contents->web_contents()->GetController(), browser);
@@ -1677,6 +1678,10 @@ void TestingAutomationProvider::BuildJSONHandlerMaps() {
&TestingAutomationProvider::GetIndicesFromTab;
handler_map_["NavigateToURL"] =
&TestingAutomationProvider::NavigateToURL;
+ handler_map_["GetActiveTabIndex"] =
+ &TestingAutomationProvider::GetActiveTabIndexJSON;
+ handler_map_["AppendTab"] =
+ &TestingAutomationProvider::AppendTabJSON;
handler_map_["WaitUntilNavigationCompletes"] =
&TestingAutomationProvider::WaitUntilNavigationCompletes;
handler_map_["GetLocalStatePrefsInfo"] =
@@ -6147,6 +6152,56 @@ void TestingAutomationProvider::NavigateToURL(
browser->OpenURLFromTab(web_contents, params);
}
+void TestingAutomationProvider::GetActiveTabIndexJSON(
+ 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;
+ }
+ int tab_index = browser->active_index();
+ scoped_ptr<DictionaryValue> return_value(new DictionaryValue);
+ return_value->SetInteger("tab_index", tab_index);
+ reply.SendSuccess(return_value.get());
+}
+
+void TestingAutomationProvider::AppendTabJSON(DictionaryValue* args,
+ IPC::Message* reply_message) {
+ TabAppendedNotificationObserver* observer = NULL;
+ int append_tab_response = -1;
+ Browser* browser;
+ std::string error_msg, url;
+ if (!GetBrowserFromJSONArgs(args, &browser, &error_msg)) {
+ AutomationJSONReply(this, reply_message).SendError(error_msg);
+ return;
+ }
+ if (!args->GetString("url", &url)) {
+ AutomationJSONReply(this, reply_message)
+ .SendError("'url' missing or invalid");
+ return;
+ }
+ observer = new TabAppendedNotificationObserver(browser, this, reply_message,
+ true);
+ TabContents* contents =
+ chrome::AddSelectedTabWithURL(browser, GURL(url),
+ content::PAGE_TRANSITION_TYPED);
+ if (contents) {
+ append_tab_response = GetIndexForNavigationController(
+ &contents->web_contents()->GetController(), browser);
+ }
+
+ if (!contents || append_tab_response < 0) {
+ if (observer) {
+ observer->ReleaseReply();
+ delete observer;
+ }
+ AutomationJSONReply(this, reply_message).SendError("Failed to append tab.");
+ }
+}
+
void TestingAutomationProvider::WaitUntilNavigationCompletes(
DictionaryValue* args,
IPC::Message* reply_message) {

Powered by Google App Engine
This is Rietveld 408576698