Home | History | Annotate | Download | only in extensions
      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_
     43