Index: ppapi/c/ppp_instance.h |
=================================================================== |
--- ppapi/c/ppp_instance.h (revision 77426) |
+++ ppapi/c/ppp_instance.h (working copy) |
@@ -13,12 +13,15 @@ |
struct PP_InputEvent; |
struct PP_Var; |
-#define PPP_INSTANCE_INTERFACE "PPP_Instance;0.4" |
+#define PPP_INSTANCE_INTERFACE_0_4 "PPP_Instance;0.4" |
+#define PPP_INSTANCE_INTERFACE_0_5 "PPP_Instance;0.5" |
+#define PPP_INSTANCE_INTERFACE PPP_INSTANCE_INTERFACE_0_5 |
+ |
/** |
* @file |
- * This file defines the PPP_Instance structure - a series of points to methods |
- * that you must implement in your model. |
+ * This file defines the PPP_Instance structure - a series of pointers to |
+ * methods that you must implement in your module instance. |
* |
*/ |
@@ -172,10 +175,53 @@ |
* @return A PP_Var containing scriptable object. |
*/ |
struct PP_Var (*GetInstanceObject)(PP_Instance instance); |
+ |
+ /** |
+ * HandleMessage is a pointer to a function that the browser will call when |
+ * @a postMessage() is invoked on the DOM object for this module instance in |
+ * JavaScript. Note that @a postMessage() in the JavaScript interface is |
+ * asynchronous, meaning JavaScript execution will not be blocked while |
+ * @a HandleMessage() is processing the given @a message. |
+ * |
+ * For example: |
+ * |
+ * \verbatim |
+ * |
+ * <body> |
+ * <object id="plugin" |
+ * type="application/x-ppapi-postMessage-example"/> |
+ * <script type="text/javascript"> |
+ * document.getElementById('plugin').postMessage("Hello world!"); |
+ * </script> |
+ * </body> |
+ * |
+ * \endverbatim |
+ * |
+ * This will result in HandleMessage being invoked on the instance, with |
+ * message being a string PP_Var containing "Hello world!". |
+ */ |
+ void (*HandleMessage)(PP_Instance instance, struct PP_Var message); |
}; |
/** |
* @} |
*/ |
+/* This version exists to help provide backwards compatibility. */ |
+struct PPP_Instance_0_4 { |
+ PP_Bool (*DidCreate)(PP_Instance instance, |
+ uint32_t argc, |
+ const char* argn[], |
+ const char* argv[]); |
+ void (*DidDestroy)(PP_Instance instance); |
+ void (*DidChangeView)(PP_Instance instance, |
+ const struct PP_Rect* position, |
+ const struct PP_Rect* clip); |
+ void (*DidChangeFocus)(PP_Instance instance, PP_Bool has_focus); |
+ PP_Bool (*HandleInputEvent)(PP_Instance instance, |
+ const struct PP_InputEvent* event); |
+ PP_Bool (*HandleDocumentLoad)(PP_Instance instance, PP_Resource url_loader); |
+ struct PP_Var (*GetInstanceObject)(PP_Instance instance); |
+}; |
+ |
#endif /* PPAPI_C_PPP_INSTANCE_H_ */ |