1cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 2cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 3cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// found in the LICENSE file. 4cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 5cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#ifndef CONTENT_PUBLIC_BROWSER_DEVTOOLS_MANAGER_DELEGATE_H_ 6cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#define CONTENT_PUBLIC_BROWSER_DEVTOOLS_MANAGER_DELEGATE_H_ 7cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 81320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include <string> 91320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include <vector> 101320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 111320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "base/callback.h" 121320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 13cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)namespace base { 14cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)class DictionaryValue; 15cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)} 16cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 171320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciclass GURL; 181320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 19cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)namespace content { 20cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 21cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)class BrowserContext; 22cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)class DevToolsAgentHost; 231320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciclass DevToolsTarget; 24cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 25cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)class DevToolsManagerDelegate { 26cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) public: 27cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) virtual ~DevToolsManagerDelegate() {} 28cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 29cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // Opens the inspector for |agent_host|. 30cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) virtual void Inspect(BrowserContext* browser_context, 31cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) DevToolsAgentHost* agent_host) = 0; 32cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 33116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch virtual void DevToolsAgentStateChanged(DevToolsAgentHost* agent_host, 34116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch bool attached) = 0; 35116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 36cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // Result ownership is passed to the caller. 37cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) virtual base::DictionaryValue* HandleCommand( 38cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) DevToolsAgentHost* agent_host, 39cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) base::DictionaryValue* command) = 0; 401320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 411320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci // Creates new inspectable target. 421320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci virtual scoped_ptr<DevToolsTarget> CreateNewTarget(const GURL& url) = 0; 431320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 441320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci typedef std::vector<DevToolsTarget*> TargetList; 451320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci typedef base::Callback<void(const TargetList&)> TargetCallback; 461320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 471320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci // Requests the list of all inspectable targets. 481320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci // The caller gets the ownership of the returned targets. 491320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci virtual void EnumerateTargets(TargetCallback callback) = 0; 501320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 511320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci // Get a thumbnail for a given page. Returns non-empty string iff we have the 521320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci // thumbnail. 531320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci virtual std::string GetPageThumbnailData(const GURL& url) = 0; 54cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)}; 55cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 56cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)} // namespace content 57cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 58cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#endif // CONTENT_PUBLIC_BROWSER_DEVTOOLS_MANAGER_DELEGATE_H_ 59