1// Copyright (c) 2013 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#ifndef CHROME_TEST_CHROMEDRIVER_CHROME_CONSOLE_LOGGER_H_ 6#define CHROME_TEST_CHROMEDRIVER_CHROME_CONSOLE_LOGGER_H_ 7 8#include "base/basictypes.h" 9#include "base/compiler_specific.h" 10#include "chrome/test/chromedriver/chrome/devtools_event_listener.h" 11 12class Log; 13 14// Translates DevTools Console.messageAdded events into Log messages. 15// 16// The message format, in terms of Console.ConsoleMessage fields, is: 17// "<url or source> [<line>[:<column>]] text" 18// 19// Translates the level into Log::Level, drops all other fields. 20class ConsoleLogger : public DevToolsEventListener { 21 public: 22 // Creates a ConsoleLogger that creates entries in the given Log object. 23 // The log is owned elsewhere and must not be null. 24 explicit ConsoleLogger(Log* log); 25 26 // Enables Console events for the client, which must not be null. 27 virtual Status OnConnected(DevToolsClient* client) OVERRIDE; 28 // Translates an event into a log entry. 29 virtual Status OnEvent(DevToolsClient* client, 30 const std::string& method, 31 const base::DictionaryValue& params) OVERRIDE; 32 33 private: 34 Log* log_; // The log where to create entries. 35 36 DISALLOW_COPY_AND_ASSIGN(ConsoleLogger); 37}; 38 39#endif // CHROME_TEST_CHROMEDRIVER_CHROME_CONSOLE_LOGGER_H_ 40