summaryrefslogtreecommitdiffstats
path: root/ppapi/c
diff options
context:
space:
mode:
authordmichael@chromium.org <dmichael@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-04-15 17:25:30 +0000
committerdmichael@chromium.org <dmichael@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-04-15 17:25:30 +0000
commit65eae551d648e8ec04187ed22ed141a1151cb21c (patch)
treec503116b19da72176e5a2b4a24c69bcb19e47dfb /ppapi/c
parent6ed30abe0df3be31582132a60e7c4b2ed197cab7 (diff)
downloadchromium_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.h74
-rw-r--r--ppapi/c/trusted/ppp_instance_trusted.h54
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_ */
+