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

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

Issue 7634031: Let pyauto create an attached webdriver instance to manipulate web pages. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: forgot to re-add the previously added files Created 9 years, 4 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 354a5607c491fafce05b331fed23dd0ee71b5d0b..114def87452b5e2f69f71d5be8fe2f96fc92d847 100644
--- a/chrome/browser/automation/testing_automation_provider.cc
+++ b/chrome/browser/automation/testing_automation_provider.cc
@@ -78,6 +78,7 @@
#include "chrome/browser/ui/app_modal_dialogs/js_modal_dialog.h"
#include "chrome/browser/ui/app_modal_dialogs/native_app_modal_dialog.h"
#include "chrome/browser/ui/blocked_content/blocked_content_tab_helper.h"
+#include "chrome/browser/ui/browser_init.h"
#include "chrome/browser/ui/browser_window.h"
#include "chrome/browser/ui/find_bar/find_bar.h"
#include "chrome/browser/ui/login/login_prompt.h"
@@ -2213,6 +2214,8 @@ void TestingAutomationProvider::SendJSONRequest(int handle,
&TestingAutomationProvider::GetChromeDriverAutomationVersion;
handler_map["UpdateExtensionsNow"] =
&TestingAutomationProvider::UpdateExtensionsNow;
+ handler_map["CreateNewAutomationProvider"] =
+ &TestingAutomationProvider::CreateNewAutomationProvider;
#if defined(OS_CHROMEOS)
handler_map["GetLoginInfo"] = &TestingAutomationProvider::GetLoginInfo;
handler_map["ShowCreateAccountUI"] =
@@ -6006,6 +6009,31 @@ void TestingAutomationProvider::GetChromeDriverAutomationVersion(
AutomationJSONReply(this, reply_message).SendSuccess(&reply_dict);
}
+void TestingAutomationProvider::CreateNewAutomationProvider(
+ DictionaryValue* args,
+ IPC::Message* reply_message) {
+ AutomationJSONReply reply(this, reply_message);
+ std::string channel_id;
+ if (!args->GetString("channel_id", &channel_id)) {
+ reply.SendError("'channel_id' missing or invalid");
+ return;
+ }
+
+ AutomationProvider* provider = new TestingAutomationProvider(profile_);
+ // TODO(kkania): Remove this when crbug.com/91311 is fixed.
+ // Named server channels should ideally be created and closed on the file
+ // thread, within the IPC channel code.
+ base::ThreadRestrictions::ScopedAllowIO allow_io;
+ if (!provider->InitializeChannel(
+ automation::kNamedInterfacePrefix + channel_id)) {
+ reply.SendError("Failed to initialize channel: " + channel_id);
+ return;
+ }
+ provider->SetExpectedTabCount(0);
Paweł Hajdan Jr. 2011/08/15 17:33:21 This duplicates code that initializes automation p
+ g_browser_process->InitAutomationProviderList()->AddProvider(provider);
+ reply.SendSuccess(NULL);
+}
+
void TestingAutomationProvider::WaitForTabCountToBecome(
int browser_handle,
int target_tab_count,
« no previous file with comments | « chrome/browser/automation/testing_automation_provider.h ('k') | chrome/test/automation/automation_proxy_uitest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698