blob: 177ec2f50c66aa0dfc5492945dfc40e8ff8a0465 [file] [log] [blame]
// Copyright (c) 2009 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 WEBKIT_GLUE_WEBDEVTOOLSAGENT_H_
#define WEBKIT_GLUE_WEBDEVTOOLSAGENT_H_
#include <string>
#include "base/basictypes.h"
// WebDevToolsAgent represents DevTools agent sitting in the Glue. It provides
// direct and delegate Apis to the host.
class WebDevToolsAgent {
public:
class Message {
public:
Message() {}
virtual ~Message() {}
virtual void Dispatch() = 0;
private:
DISALLOW_COPY_AND_ASSIGN(Message);
};
WebDevToolsAgent() {}
virtual ~WebDevToolsAgent() {}
virtual void Attach() = 0;
virtual void Detach() = 0;
virtual void DispatchMessageFromClient(const std::string& class_name,
const std::string& method_name,
const std::string& raw_msg) = 0;
virtual void InspectElement(int x, int y) = 0;
// Asynchronously executes debugger command in the render thread.
// |caller_id| will be used for sending response.
static void ExecuteDebuggerCommand(const std::string& command,
int caller_id);
typedef void (*MessageLoopDispatchHandler)();
// Installs dispatch handle that is going to be called periodically
// while on a breakpoint.
static void SetMessageLoopDispatchHandler(
MessageLoopDispatchHandler handler);
private:
DISALLOW_COPY_AND_ASSIGN(WebDevToolsAgent);
};
#endif // WEBKIT_GLUE_WEBDEVTOOLSAGENT_H_