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
10namespace extensions {
11class ScriptContext;
12
13class 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