13345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick// Copyright (c) 2010 The Chromium Authors. All rights reserved. 2c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Use of this source code is governed by a BSD-style license that can be 3c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// found in the LICENSE file. 4c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 5c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#ifndef CHROME_BROWSER_DEBUGGER_DEVTOOLS_REMOTE_SERVICE_H_ 6c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#define CHROME_BROWSER_DEBUGGER_DEVTOOLS_REMOTE_SERVICE_H_ 73345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick#pragma once 8c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 9c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "base/basictypes.h" 10c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "chrome/browser/debugger/devtools_remote.h" 11c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 12c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochclass DevToolsRemoteMessage; 13c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochclass DevToolsProtocolHandler; 14c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochclass DictionaryValue; 15c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochclass Value; 16c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 17c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Contains constants for DevToolsRemoteService tool protocol commands. 18c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochstruct DevToolsRemoteServiceCommand { 193345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick static const char kPing[]; 203345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick static const char kVersion[]; 213345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick static const char kListTabs[]; 22c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch}; 23c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 24c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Handles Chrome remote debugger protocol service commands. 25c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochclass DevToolsRemoteService : public DevToolsRemoteListener { 26c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch public: 27c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch explicit DevToolsRemoteService(DevToolsProtocolHandler* delegate); 28c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 29c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // DevToolsRemoteListener interface 30c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch virtual void HandleMessage(const DevToolsRemoteMessage& message); 31c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch virtual void OnConnectionLost() {} 32c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 333345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick static const char kToolName[]; 34c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 35c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch private: 36c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // Operation result returned in the "result" field. 37c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch struct Result { 38c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch static const int kOk = 0; 39c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch static const int kUnknownCommand = 1; 40c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch }; 41c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch virtual ~DevToolsRemoteService(); 42c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch void ProcessJson(DictionaryValue* json, const DevToolsRemoteMessage& message); 43c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch DevToolsProtocolHandler* delegate_; 44c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch DISALLOW_COPY_AND_ASSIGN(DevToolsRemoteService); 45c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch}; 46c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 47c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#endif // CHROME_BROWSER_DEBUGGER_DEVTOOLS_REMOTE_SERVICE_H_ 48