Upstream version 7.35.144.0
[platform/framework/web/crosswalk.git] / src / chrome / renderer / extensions / send_request_natives.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_SEND_REQUEST_NATIVES_H_
6 #define CHROME_RENDERER_EXTENSIONS_SEND_REQUEST_NATIVES_H_
7
8 #include "chrome/renderer/extensions/chrome_v8_extension.h"
9 #include "chrome/renderer/extensions/dispatcher.h"
10
11 #include "v8/include/v8.h"
12
13 namespace extensions {
14 class ChromeV8Context;
15 class RequestSender;
16
17 // Native functions exposed to extensions via JS for calling API functions in
18 // the browser.
19 class SendRequestNatives : public ChromeV8Extension {
20  public:
21   SendRequestNatives(Dispatcher* dispatcher,
22                      RequestSender* request_sender,
23                      ChromeV8Context* context);
24
25  private:
26   void GetNextRequestId(const v8::FunctionCallbackInfo<v8::Value>& args);
27
28   // Starts an API request to the browser, with an optional callback.  The
29   // callback will be dispatched to EventBindings::HandleResponse.
30   void StartRequest(const v8::FunctionCallbackInfo<v8::Value>& args);
31
32   // Gets a reference to an object's global object.
33   void GetGlobal(const v8::FunctionCallbackInfo<v8::Value>& args);
34
35   RequestSender* request_sender_;
36
37   DISALLOW_COPY_AND_ASSIGN(SendRequestNatives);
38 };
39
40 }  // namespace extensions
41
42 #endif  // CHROME_RENDERER_EXTENSIONS_SEND_REQUEST_NATIVES_H_