| Index: chrome/test/chromedriver/devtools_client.cc
|
| diff --git a/chrome/test/chromedriver/devtools_client.cc b/chrome/test/chromedriver/devtools_client.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..f78a492f8d8e465a01985479ac2d93a446cfcf81
|
| --- /dev/null
|
| +++ b/chrome/test/chromedriver/devtools_client.cc
|
| @@ -0,0 +1,44 @@
|
| +// Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#include "chrome/test/chromedriver/devtools_client.h"
|
| +
|
| +#include "base/json/json_writer.h"
|
| +#include "base/values.h"
|
| +#include "chrome/test/chromedriver/net/sync_websocket.h"
|
| +#include "chrome/test/chromedriver/net/url_request_context_getter.h"
|
| +#include "chrome/test/chromedriver/status.h"
|
| +#include "googleurl/src/gurl.h"
|
| +
|
| +DevToolsClient::DevToolsClient(
|
| + URLRequestContextGetter* context_getter,
|
| + const std::string& url)
|
| + : context_getter_(context_getter),
|
| + url_(url),
|
| + socket_(new SyncWebSocket(context_getter)),
|
| + connected_(false) {}
|
| +
|
| +DevToolsClient::~DevToolsClient() {}
|
| +
|
| +Status DevToolsClient::SendCommand(
|
| + const std::string& method,
|
| + const base::DictionaryValue& params) {
|
| + if (!connected_) {
|
| + if (!socket_->Connect(GURL(url_)))
|
| + return Status(kUnknownError, "unable to connect to renderer");
|
| + connected_ = true;
|
| + }
|
| + base::DictionaryValue command;
|
| + command.SetInteger("id", 1);
|
| + command.SetString("method", method);
|
| + command.Set("params", params.DeepCopy());
|
| + std::string message;
|
| + base::JSONWriter::Write(&command, &message);
|
| + if (!socket_->Send(message))
|
| + return Status(kUnknownError, "unable to send message to renderer");
|
| + std::string response;
|
| + if (!socket_->ReceiveNextMessage(&response))
|
| + return Status(kUnknownError, "unable to receive message from renderer");
|
| + return Status(kOk);
|
| +}
|
|
|