Upstream version 7.35.144.0
[platform/framework/web/crosswalk.git] / src / chrome / renderer / extensions / runtime_custom_bindings.h
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_