summaryrefslogtreecommitdiffstats
path: root/ppapi/c/private/ppp_instance_private.h
blob: e587d26e3f6cb5b53ae3736a6f42426b67cb7d3f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
/* Copyright (c) 2011 The Chromium Authors. All rights reserved.
 * Use of this source code is governed by a BSD-style license that can be
 * found in the LICENSE file.
 */
#ifndef PPAPI_C_PRIVATE_PPP_INSTANCE_PRIVATE_H_
#define PPAPI_C_PRIVATE_PPP_INSTANCE_PRIVATE_H_

#include "ppapi/c/pp_instance.h"

struct PP_Var;

#define PPP_INSTANCE_PRIVATE_INTERFACE "PPP_Instance_Private;0.1"

/**
 * @file
 * This file defines the PPP_InstancePrivate structure; a series of functions
 * that a trusted plugin may implement to provide capabilities only available
 * to trusted plugins.
 *
 */

/** @addtogroup Interfaces
 * @{
 */

/**
 * The PPP_Instance_Private interface contains pointers to a series of
 * functions that may be implemented in a trusted plugin to provide capabilities
 * that aren't possible in untrusted modules.
 */

struct PPP_Instance_Private {
  /**
   * GetInstanceObject returns a PP_Var representing the scriptable object for
   * the given instance. Normally this will be a PPP_Class_Deprecated object
   * that exposes methods and properties to JavaScript.
   *
   * On Failure, the returned PP_Var should be a "void" var.
   *
   * The returned PP_Var should have a reference added for the caller, which
   * will be responsible for Release()ing that reference.
   *
   * @param[in] instance A PP_Instance indentifying the instance from which the
   *            instance object is being requested.
   * @return A PP_Var containing scriptable object.
   */
  struct PP_Var (*GetInstanceObject)(PP_Instance instance);
};
/**
 * @}
 */

#endif  /* PPAPI_C_PRIVATE_PPP_INSTANCE_PRIVATE_H_ */