diff options
author | dmichael@chromium.org <dmichael@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-04-15 17:25:30 +0000 |
---|---|---|
committer | dmichael@chromium.org <dmichael@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-04-15 17:25:30 +0000 |
commit | 65eae551d648e8ec04187ed22ed141a1151cb21c (patch) | |
tree | c503116b19da72176e5a2b4a24c69bcb19e47dfb /ppapi/c | |
parent | 6ed30abe0df3be31582132a60e7c4b2ed197cab7 (diff) | |
download | chromium_src-65eae551d648e8ec04187ed22ed141a1151cb21c.zip chromium_src-65eae551d648e8ec04187ed22ed141a1151cb21c.tar.gz chromium_src-65eae551d648e8ec04187ed22ed141a1151cb21c.tar.bz2 |
Add trusted Instance C interfaces with scripting-related functions.
Added to all_c_includes.h for C compilation test.
TODO:
-Wire these up in Chrome w/tests.
-Add an InstanceTrusted C++ class.
-Coordinate the move to these interfaces.
-Remove the scripting functions from PPB_Instance and PPP_Instance.
BUG=None
TEST=it compiles
Review URL: http://codereview.chromium.org/6850033
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@81760 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ppapi/c')
-rw-r--r-- | ppapi/c/trusted/ppb_instance_trusted.h | 74 | ||||
-rw-r--r-- | ppapi/c/trusted/ppp_instance_trusted.h | 54 |
2 files changed, 128 insertions, 0 deletions
diff --git a/ppapi/c/trusted/ppb_instance_trusted.h b/ppapi/c/trusted/ppb_instance_trusted.h new file mode 100644 index 0000000..44c9f77 --- /dev/null +++ b/ppapi/c/trusted/ppb_instance_trusted.h @@ -0,0 +1,74 @@ +/* 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_TRUSTED_PPB_INSTANCE_TRUSTED_H_ +#define PPAPI_C_TRUSTED_PPB_INSTANCE_TRUSTED_H_ + +#include "ppapi/c/pp_instance.h" +#include "ppapi/c/pp_var.h" + +#define PPB_INSTANCE_TRUSTED_INTERFACE "PPB_Instance_Trusted;0.1" + +/** + * @file + * This file defines the PPB_Instance_Trusted interface implemented by the + * browser and containing pointers to functions available only to trusted plugin + * instances. + * + * @addtogroup Interfaces + * @{ + */ + +/** + * The PPB_Instance_Trusted interface contains functions available only to + * trusted plugin instances. + * + */ +struct PPB_Instance_Trusted { + /** + * GetWindowObject is a pointer to a function that determines + * the DOM window containing this module instance. + * + * @param[in] instance A PP_Instance whose WindowObject should be retrieved. + * @return A PP_Var containing window object on success. + */ + struct PP_Var (*GetWindowObject)(PP_Instance instance); + + /** + * GetOwnerElementObject is a pointer to a function that determines + * the DOM element containing this module instance. + * + * @param[in] instance A PP_Instance whose WindowObject should be retrieved. + * @return A PP_Var containing DOM element on success. + */ + struct PP_Var (*GetOwnerElementObject)(PP_Instance instance); + + /** + * ExecuteScript is a pointer to a function that executes the given + * script in the context of the frame containing the module. + * + * The exception, if any, will be returned in *exception. As with the PPB_Var + * interface, the exception parameter, if non-NULL, must be initialized + * to a void exception or the function will immediately return. On success, + * the exception parameter will be set to a "void" var. On failure, the + * return value will be a "void" var. + * + * @param[in] script A string containing the JavaScript to execute. + * @param[in/out] exception PP_Var containing the exception. Initialize + * this to NULL if you don't want exception info; initialize this to a void + * exception if want exception info. + * + * @return The result of the script execution, or a "void" var + * if execution failed. + */ + struct PP_Var (*ExecuteScript)(PP_Instance instance, + struct PP_Var script, + struct PP_Var* exception); +}; +/** + * @} + */ + +#endif /* PPAPI_C_TRUSTED_PPB_INSTANCE_TRUSTED_H_ */ + diff --git a/ppapi/c/trusted/ppp_instance_trusted.h b/ppapi/c/trusted/ppp_instance_trusted.h new file mode 100644 index 0000000..b010db4 --- /dev/null +++ b/ppapi/c/trusted/ppp_instance_trusted.h @@ -0,0 +1,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_TRUSTED_PPP_INSTANCE_TRUSTED_H_ +#define PPAPI_C_TRUSTED_PPP_INSTANCE_TRUSTED_H_ + +#include "ppapi/c/pp_instance.h" + +struct PP_Var; + +#define PPP_INSTANCE_TRUSTED_INTERFACE "PPP_Instance_Trusted;0.1" + +/** + * @file + * This file defines the PPP_InstanceTrusted structure; a series of functions + * that a trusted plugin may implement to provide capabilities only available + * to trusted plugins. + * + */ + +/** @addtogroup Interfaces + * @{ + */ + +/** + * The PPP_Instance_Trusted 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_Trusted { + /** + * 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_TRUSTED_PPP_INSTANCE_TRUSTED_H_ */ + |