// Copyright 2013 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef CHROME_BROWSER_DEVTOOLS_DEVTOOLS_TARGET_IMPL_H_ #define CHROME_BROWSER_DEVTOOLS_DEVTOOLS_TARGET_IMPL_H_ #include #include "base/callback.h" #include "content/public/browser/devtools_target.h" #include "content/public/browser/worker_service.h" class Profile; namespace content { class DevToolsAgentHost; class RenderViewHost; } class DevToolsTargetImpl : public content::DevToolsTarget { public: DevToolsTargetImpl(); virtual ~DevToolsTargetImpl(); // content::DevToolsTarget overrides: virtual std::string GetId() const OVERRIDE; virtual std::string GetType() const OVERRIDE; virtual std::string GetTitle() const OVERRIDE; virtual std::string GetDescription() const OVERRIDE; virtual GURL GetUrl() const OVERRIDE; virtual GURL GetFaviconUrl() const OVERRIDE; virtual base::TimeTicks GetLastActivityTime() const OVERRIDE; virtual bool IsAttached() const OVERRIDE; virtual scoped_refptr GetAgentHost() const OVERRIDE; virtual bool Activate() const OVERRIDE; virtual bool Close() const OVERRIDE; // Returns the RenderViewHost associated with the target on NULL if there is // not any. virtual content::RenderViewHost* GetRenderViewHost() const; // Returns the tab id if the target is associated with a tab, -1 otherwise. virtual int GetTabId() const; // Returns the extension id if the target is associated with an extension // background page. virtual std::string GetExtensionId() const; // Open a new DevTools window or activate the existing one. virtual void Inspect(Profile* profile) const; // Reload the target page. virtual void Reload() const; // Creates a new target associated with RenderViewHost. static scoped_ptr CreateForRenderViewHost( content::RenderViewHost*, bool is_tab); // Creates a new target associated with a shared worker. static scoped_ptr CreateForWorker( const content::WorkerService::WorkerInfo&); typedef std::vector List; typedef base::Callback Callback; static List EnumerateRenderViewHostTargets(); static void EnumerateWorkerTargets(Callback callback); static void EnumerateAllTargets(Callback callback); protected: scoped_refptr agent_host_; std::string id_; std::string type_; std::string title_; std::string description_; GURL url_; GURL favicon_url_; base::TimeTicks last_activity_time_; }; #endif // CHROME_BROWSER_DEVTOOLS_DEVTOOLS_TARGET_IMPL_H_