14e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)// Copyright (c) 2013 The Chromium Authors. All rights reserved.
24e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
34e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)// found in the LICENSE file.
44e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
54e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)#ifndef CHROME_TEST_CHROMEDRIVER_CHROME_DEBUGGER_TRACKER_H_
64e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)#define CHROME_TEST_CHROMEDRIVER_CHROME_DEBUGGER_TRACKER_H_
74e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
84e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)#include <string>
94e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
104e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)#include "base/basictypes.h"
114e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)#include "base/compiler_specific.h"
124e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)#include "chrome/test/chromedriver/chrome/devtools_event_listener.h"
134e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
144e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)namespace base {
154e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)class DictionaryValue;
164e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)}
174e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
184e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)class DevToolsClient;
194e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)class Status;
204e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
214e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)// Tracks the debugger state of the page.
224e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)class DebuggerTracker : public DevToolsEventListener {
234e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) public:
244e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  explicit DebuggerTracker(DevToolsClient* client);
254e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  virtual ~DebuggerTracker();
264e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
274e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  // Overridden from DevToolsEventListener:
284e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  virtual Status OnEvent(DevToolsClient* client,
294e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)                         const std::string& method,
304e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)                         const base::DictionaryValue& params) OVERRIDE;
314e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
324e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) private:
334e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  DISALLOW_COPY_AND_ASSIGN(DebuggerTracker);
344e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)};
354e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
364e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)#endif  // CHROME_TEST_CHROMEDRIVER_CHROME_DEBUGGER_TRACKER_H_
37