1// Copyright 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 CONTENT_PUBLIC_BROWSER_DEVTOOLS_TARGET_H_ 6#define CONTENT_PUBLIC_BROWSER_DEVTOOLS_TARGET_H_ 7 8#include <string> 9 10#include "base/basictypes.h" 11#include "base/memory/ref_counted.h" 12#include "base/time/time.h" 13#include "content/common/content_export.h" 14#include "url/gurl.h" 15 16namespace content { 17 18class DevToolsAgentHost; 19 20// DevToolsTarget represents an inspectable target and can be used to 21// manipulate the target and query its details. 22// Instantiation and discovery of DevToolsTarget instances is the responsibility 23// of DevToolsHttpHandlerDelegate. 24class DevToolsTarget { 25 public: 26 virtual ~DevToolsTarget() {} 27 28 // Returns the unique target id. 29 virtual std::string GetId() const = 0; 30 31 // Returns the id of the parent target, or empty string if no parent. 32 virtual std::string GetParentId() const = 0; 33 34 // Returns the target type. 35 virtual std::string GetType() const = 0; 36 37 // Returns the target title. 38 virtual std::string GetTitle() const = 0; 39 40 // Returns the target description. 41 virtual std::string GetDescription() const = 0; 42 43 // Returns the url associated with this target. 44 virtual GURL GetURL() const = 0; 45 46 // Returns the favicon url for this target. 47 virtual GURL GetFaviconURL() const = 0; 48 49 // Returns the time when the target was last active. 50 virtual base::TimeTicks GetLastActivityTime() const = 0; 51 52 // Returns true if the debugger is attached to the target. 53 virtual bool IsAttached() const = 0; 54 55 // Returns the agent host for this target. 56 virtual scoped_refptr<DevToolsAgentHost> GetAgentHost() const = 0; 57 58 // Activates the target. Returns false if the operation failed. 59 virtual bool Activate() const = 0; 60 61 // Closes the target. Returns false if the operation failed. 62 virtual bool Close() const = 0; 63}; 64 65} // namespace content 66 67#endif // CONTENT_PUBLIC_BROWSER_DEVTOOLS_TARGET_H_ 68