1 // Copyright 2014 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 EXTENSIONS_RENDERER_SEND_REQUEST_NATIVES_H_ 6 #define EXTENSIONS_RENDERER_SEND_REQUEST_NATIVES_H_ 7 8 #include "extensions/renderer/object_backed_native_handler.h" 9 #include "v8/include/v8.h" 10 11 namespace extensions { 12 class RequestSender; 13 class ScriptContext; 14 15 // Native functions exposed to extensions via JS for calling API functions in 16 // the browser. 17 class SendRequestNatives : public ObjectBackedNativeHandler { 18 public: 19 SendRequestNatives(RequestSender* request_sender, ScriptContext* context); 20 21 private: 22 void GetNextRequestId(const v8::FunctionCallbackInfo<v8::Value>& args); 23 24 // Starts an API request to the browser, with an optional callback. The 25 // callback will be dispatched to EventBindings::HandleResponse. 26 void StartRequest(const v8::FunctionCallbackInfo<v8::Value>& args); 27 28 // Gets a reference to an object's global object. 29 void GetGlobal(const v8::FunctionCallbackInfo<v8::Value>& args); 30 31 RequestSender* request_sender_; 32 33 DISALLOW_COPY_AND_ASSIGN(SendRequestNatives); 34 }; 35 36 } // namespace extensions 37 38 #endif // EXTENSIONS_RENDERER_SEND_REQUEST_NATIVES_H_ 39