| Index: chrome/test/chromedriver/devtools_client_impl.cc
|
| diff --git a/chrome/test/chromedriver/devtools_client_impl.cc b/chrome/test/chromedriver/devtools_client_impl.cc
|
| index ea28aa96f589ec09c20fb2a956edc52428cfe8b2..9177170198a1cc97b9a58a211f08028e6c8704b1 100644
|
| --- a/chrome/test/chromedriver/devtools_client_impl.cc
|
| +++ b/chrome/test/chromedriver/devtools_client_impl.cc
|
| @@ -27,11 +27,9 @@ InspectorCommandResponse::~InspectorCommandResponse() {}
|
|
|
| DevToolsClientImpl::DevToolsClientImpl(
|
| const SyncWebSocketFactory& factory,
|
| - const std::string& url,
|
| - DevToolsEventListener* listener)
|
| + const std::string& url)
|
| : socket_(factory.Run().Pass()),
|
| url_(url),
|
| - listener_(listener),
|
| parser_func_(base::Bind(&internal::ParseInspectorMessage)),
|
| connected_(false),
|
| next_id_(1) {}
|
| @@ -39,11 +37,9 @@ DevToolsClientImpl::DevToolsClientImpl(
|
| DevToolsClientImpl::DevToolsClientImpl(
|
| const SyncWebSocketFactory& factory,
|
| const std::string& url,
|
| - DevToolsEventListener* listener,
|
| const ParserFunc& parser_func)
|
| : socket_(factory.Run().Pass()),
|
| url_(url),
|
| - listener_(listener),
|
| parser_func_(parser_func),
|
| connected_(false),
|
| next_id_(1) {}
|
| @@ -71,6 +67,11 @@ Status DevToolsClientImpl::SendCommandAndGetResult(
|
| return Status(kOk);
|
| }
|
|
|
| +void DevToolsClientImpl::AddListener(DevToolsEventListener* listener) {
|
| + DCHECK(listener);
|
| + listeners_.push_back(listener);
|
| +}
|
| +
|
| Status DevToolsClientImpl::SendCommandInternal(
|
| const std::string& method,
|
| const base::DictionaryValue& params,
|
| @@ -102,8 +103,7 @@ Status DevToolsClientImpl::SendCommandInternal(
|
| if (!parser_func_.Run(message, command_id, &type, &event, &response))
|
| return Status(kUnknownError, "bad inspector message: " + message);
|
| if (type == internal::kEventMessageType) {
|
| - if (listener_)
|
| - listener_->OnEvent(event.method, *event.params);
|
| + NotifyEventListeners(event.method, *event.params);
|
| } else {
|
| if (response.id != command_id) {
|
| return Status(kUnknownError,
|
| @@ -118,6 +118,15 @@ Status DevToolsClientImpl::SendCommandInternal(
|
| }
|
| }
|
|
|
| +void DevToolsClientImpl::NotifyEventListeners(
|
| + const std::string& method,
|
| + const base::DictionaryValue& params) {
|
| + for (std::list<DevToolsEventListener*>::iterator iter = listeners_.begin();
|
| + iter != listeners_.end(); ++iter) {
|
| + (*iter)->OnEvent(method, params);
|
| + }
|
| +}
|
| +
|
| namespace internal {
|
|
|
| bool ParseInspectorMessage(
|
|
|