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_UTILS_NATIVE_HANDLER_H_ 6 #define EXTENSIONS_RENDERER_UTILS_NATIVE_HANDLER_H_ 7 8 #include "extensions/renderer/object_backed_native_handler.h" 9 10 namespace extensions { 11 class ScriptContext; 12 13 class UtilsNativeHandler : public ObjectBackedNativeHandler { 14 public: 15 explicit UtilsNativeHandler(ScriptContext* context); 16 virtual ~UtilsNativeHandler(); 17 18 private: 19 // |args| consists of two arguments: a public class name, and a reference 20 // to the implementation class. CreateClassWrapper returns a new class 21 // that wraps the implementation, while hiding its members. 22 void CreateClassWrapper(const v8::FunctionCallbackInfo<v8::Value>& args); 23 24 // |args| consists of one argument: an arbitrary value. Returns a deep copy of 25 // that value. The copy will have no references to nested values of the 26 // argument. 27 void DeepCopy(const v8::FunctionCallbackInfo<v8::Value>& args); 28 29 DISALLOW_COPY_AND_ASSIGN(UtilsNativeHandler); 30 }; 31 32 } // namespace extensions 33 34 #endif // EXTENSIONS_RENDERER_UTILS_NATIVE_HANDLER_H_ 35