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_RUNTIME_CUSTOM_BINDINGS_H_ 6 #define CHROME_RENDERER_EXTENSIONS_RUNTIME_CUSTOM_BINDINGS_H_ 7 8 #include "base/compiler_specific.h" 9 #include "chrome/renderer/extensions/chrome_v8_extension.h" 10 #include "v8/include/v8.h" 11 12 class ExtensionDispatcher; 13 class ChromeV8Context; 14 15 namespace extensions { 16 17 // The native component of custom bindings for the chrome.runtime API. 18 class RuntimeCustomBindings : public ChromeV8Extension { 19 public: 20 RuntimeCustomBindings(Dispatcher* dispatcher, ChromeV8Context* context); 21 22 virtual ~RuntimeCustomBindings(); 23 24 // Creates a new messaging channel to the given extension. 25 void OpenChannelToExtension(const v8::FunctionCallbackInfo<v8::Value>& args); 26 27 // Creates a new messaging channels for the specified native application. 28 void OpenChannelToNativeApp(const v8::FunctionCallbackInfo<v8::Value>& args); 29 30 private: 31 void GetManifest(const v8::FunctionCallbackInfo<v8::Value>& args); 32 void GetExtensionViews(const v8::FunctionCallbackInfo<v8::Value>& args); 33 }; 34 35 } // namespace extensions 36 37 #endif // CHROME_RENDERER_EXTENSIONS_RUNTIME_CUSTOM_BINDINGS_H_ 38