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 Status 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