Home | History | Annotate | Download | only in extensions
      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 ChromeV8Context;
     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(ChromeV8Context* context);
     29   int GetRoutingID();
     30   void Send(IPC::Message* message);
     31   ChromeV8Context* 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