1// Copyright (c) 2012 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 CHROME_RENDERER_EXTENSIONS_CHROME_V8_EXTENSION_HANDLER_H_ 6#define CHROME_RENDERER_EXTENSIONS_CHROME_V8_EXTENSION_HANDLER_H_ 7 8#include <string> 9 10#include "base/basictypes.h" 11#include "ipc/ipc_listener.h" 12#include "v8/include/v8.h" 13 14namespace extensions { 15class ScriptContext; 16 17// Base class for context-scoped handlers used with ChromeV8Extension. 18// TODO(koz): Rename/refactor this somehow. Maybe just pull it into 19// ChromeV8Extension. 20class ChromeV8ExtensionHandler : public IPC::Listener { 21 public: 22 virtual ~ChromeV8ExtensionHandler(); 23 24 // IPC::Listener 25 virtual bool OnMessageReceived(const IPC::Message& message) = 0; 26 27 protected: 28 explicit ChromeV8ExtensionHandler(ScriptContext* context); 29 int GetRoutingID(); 30 void Send(IPC::Message* message); 31 ScriptContext* context_; 32 33 private: 34 int routing_id_; 35 DISALLOW_COPY_AND_ASSIGN(ChromeV8ExtensionHandler); 36}; 37 38} // namespace extensions 39 40#endif // CHROME_RENDERER_EXTENSIONS_CHROME_V8_EXTENSION_HANDLER_H_ 41