Home | History | Annotate | Download | only in renderer
      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