#ifndef CHROME_RENDERER_EXTENSIONS_CHROME_V8_EXTENSION_H_
#define CHROME_RENDERER_EXTENSIONS_CHROME_V8_EXTENSION_H_
#include "base/logging.h"
#include "base/memory/linked_ptr.h"
#include "base/strings/string_piece.h"
#include "chrome/renderer/extensions/chrome_v8_extension_handler.h"
#include "chrome/renderer/extensions/object_backed_native_handler.h"
#include "v8/include/v8.h"
#include <map>
#include <set>
#include <string>
namespace content {
class RenderView;
}
namespace extensions {
class ChromeV8Context;
class Dispatcher;
class Extension;
class ChromeV8Extension : public ObjectBackedNativeHandler {
 public:
  ChromeV8Extension(Dispatcher* dispatcher, ChromeV8Context* context);
  virtual ~ChromeV8Extension();
  Dispatcher* dispatcher() { return dispatcher_; }
  
  content::RenderView* GetRenderView();
  const Extension* GetExtensionForRenderView();
 protected:
  Dispatcher* dispatcher_;
 private:
  DISALLOW_COPY_AND_ASSIGN(ChromeV8Extension);
};
}  
#endif