frame_tracker.h revision c2e0dbddbe15c98d52c4786dac06cb8952a8ae6d
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_FRAME_TRACKER_H_
6#define CHROME_TEST_CHROMEDRIVER_CHROME_FRAME_TRACKER_H_
7
8#include <map>
9#include <string>
10
11#include "base/basictypes.h"
12#include "base/compiler_specific.h"
13#include "chrome/test/chromedriver/chrome/devtools_event_listener.h"
14
15namespace base {
16class DictionaryValue;
17class Value;
18}
19
20class DevToolsClient;
21class Status;
22
23// Tracks execution context creation.
24class FrameTracker : public DevToolsEventListener {
25 public:
26  explicit FrameTracker(DevToolsClient* client);
27  virtual ~FrameTracker();
28
29  Status GetFrameForContextId(int context_id, std::string* frame_id);
30  Status GetContextIdForFrame(const std::string& frame_id, int* context_id);
31
32  // Overridden from DevToolsEventListener:
33  virtual Status OnConnected(DevToolsClient* client) OVERRIDE;
34  virtual void OnEvent(DevToolsClient* client,
35                       const std::string& method,
36                       const base::DictionaryValue& params) OVERRIDE;
37
38 private:
39  std::map<std::string, int> frame_to_context_map_;
40
41  DISALLOW_COPY_AND_ASSIGN(FrameTracker);
42};
43
44#endif  // CHROME_TEST_CHROMEDRIVER_CHROME_FRAME_TRACKER_H_
45