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_H_ 6 #define CHROME_RENDERER_EXTENSIONS_CHROME_V8_EXTENSION_H_ 7 8 #include "base/logging.h" 9 #include "base/memory/linked_ptr.h" 10 #include "base/strings/string_piece.h" 11 #include "chrome/renderer/extensions/chrome_v8_extension_handler.h" 12 #include "chrome/renderer/extensions/object_backed_native_handler.h" 13 #include "v8/include/v8.h" 14 15 #include <map> 16 #include <set> 17 #include <string> 18 19 20 namespace content { 21 class RenderView; 22 } 23 24 namespace extensions { 25 class ChromeV8Context; 26 class Dispatcher; 27 class Extension; 28 29 // DEPRECATED. 30 // 31 // This is a base class for chrome extension bindings. Common features that 32 // are shared by different modules go here. 33 // 34 // TODO(kalman): Delete this class entirely, it has no value anymore. 35 // Custom bindings should extend ObjectBackedNativeHandler. 36 class ChromeV8Extension : public ObjectBackedNativeHandler { 37 public: 38 ChromeV8Extension(Dispatcher* dispatcher, ChromeV8Context* context); 39 virtual ~ChromeV8Extension(); 40 41 Dispatcher* dispatcher() { return dispatcher_; } 42 43 // Shortcuts through to the context's render view and extension. 44 content::RenderView* GetRenderView(); 45 const Extension* GetExtensionForRenderView(); 46 47 protected: 48 Dispatcher* dispatcher_; 49 50 private: 51 DISALLOW_COPY_AND_ASSIGN(ChromeV8Extension); 52 }; 53 54 } // namespace extensions 55 56 #endif // CHROME_RENDERER_EXTENSIONS_CHROME_V8_EXTENSION_H_ 57