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 14 namespace extensions { 15 class 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. 20 class 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