Index: chrome/test/webdriver/commands/chrome_commands.cc |
diff --git a/chrome/test/webdriver/commands/chrome_commands.cc b/chrome/test/webdriver/commands/chrome_commands.cc |
index 0714518de54095669f3d033b3807ad26772e6b45..c646ce39c64c9013814f8e3a694571b49dcbc5f7 100644 |
--- a/chrome/test/webdriver/commands/chrome_commands.cc |
+++ b/chrome/test/webdriver/commands/chrome_commands.cc |
@@ -8,6 +8,7 @@ |
#include <vector> |
#include "base/file_path.h" |
+#include "base/stringprintf.h" |
#include "chrome/test/automation/value_conversion_util.h" |
#include "chrome/test/webdriver/commands/response.h" |
#include "chrome/test/webdriver/webdriver_error.h" |
@@ -60,4 +61,50 @@ void ExtensionsCommand::ExecutePost(Response* const response) { |
response->SetValue(CreateValueFrom(extension_id)); |
} |
+ViewsCommand::ViewsCommand( |
+ const std::vector<std::string>& path_segments, |
+ const base::DictionaryValue* const parameters) |
+ : WebDriverCommand(path_segments, parameters) {} |
+ |
+ViewsCommand::~ViewsCommand() {} |
+ |
+bool ViewsCommand::DoesGet() { |
+ return true; |
+} |
+ |
+bool ViewsCommand::DoesPost() { |
+ return true; |
+} |
+ |
+void ViewsCommand::ExecuteGet(Response* const response) { |
+ std::vector<WebViewInfo> views; |
+ Error* error = session_->GetViews(&views); |
+ if (error) { |
+ response->SetError(error); |
+ return; |
+ } |
+ base::ListValue* views_list = new base::ListValue(); |
+ for (size_t i = 0; i < views.size(); ++i) { |
+ base::DictionaryValue* dict = new base::DictionaryValue(); |
+ AutomationId& id = views[i].view_id.id.view_id; |
+ dict->SetString("handle", base::StringPrintf( |
+ "%d|%s", id.type(), id.id().c_str())); |
+ dict->SetInteger("type", id.type()); |
+ if (!views[i].extension_id.empty()) |
+ dict->SetString("extension_id", views[i].extension_id); |
+ views_list->Append(dict); |
+ } |
+ response->SetValue(views_list); |
+} |
+ |
+void ViewsCommand::ExecutePost(Response* const response) { |
+/* |
+ Error* error = session_->SwitchToView(views, false / restrict_to_tabs /); |
+ if (error) { |
+ response->SetError(error); |
+ return; |
+ } |
+*/ |
+} |
+ |
} // namespace webdriver |