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

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: Fixed the return value of AppendTab. 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 a9b1759617eee08cab5e1e3395f69cdac862bb11..2934c99b461d99dfa498badedad7e966128ec3fa 100644
--- a/chrome/browser/automation/testing_automation_provider.cc
+++ b/chrome/browser/automation/testing_automation_provider.cc
@@ -500,7 +500,7 @@ void TestingAutomationProvider::AppendTab(int handle,
if (browser_tracker_->ContainsHandle(handle)) {
Browser* browser = browser_tracker_->GetResource(handle);
observer = new TabAppendedNotificationObserver(browser, this,
- reply_message);
+ reply_message, false);
TabContents* contents =
browser->AddSelectedTabWithURL(url, content::PAGE_TRANSITION_TYPED);
if (contents) {
@@ -1699,6 +1699,10 @@ void TestingAutomationProvider::SendJSONRequest(int handle,
&TestingAutomationProvider::GetIndicesFromTab;
handler_map["NavigateToURL"] =
&TestingAutomationProvider::NavigateToURL;
+ handler_map["GetActiveTabIndex"] =
dennis_jeffrey 2012/07/03 00:47:04 should these be in browser_handler_map instead, si
craigdh 2012/07/03 16:48:08 Nirnimesh expressed an interest in getting rid of
dennis_jeffrey 2012/07/03 17:07:42 I'm also in favor of getting rid of the browser_ha
+ &TestingAutomationProvider::GetActiveTabIndexJSON;
+ handler_map["AppendTab"] =
+ &TestingAutomationProvider::AppendTabJSON;
handler_map["WaitUntilNavigationCompletes"] =
&TestingAutomationProvider::WaitUntilNavigationCompletes;
handler_map["GetLocalStatePrefsInfo"] =
@@ -6113,6 +6117,55 @@ 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 =
+ browser->AddSelectedTabWithURL(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