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
6#ifndef PPAPI_C_DEV_IMPL_PPB_MESSAGING_DEPRECATED_H_
7#define PPAPI_C_DEV_IMPL_PPB_MESSAGING_DEPRECATED_H_
8
9#include "ppapi/c/pp_instance.h"
10#include "ppapi/c/pp_resource.h"
11#include "ppapi/c/pp_stdint.h"
12#include "ppapi/c/pp_var.h"
13
14/* dev, deprecated */
15#define PPB_MESSAGING_INTERFACE_1_1_DEPRECATED "PPB_Messaging;1.1"
16
17/**
18 * This file defines a dev-channel-only API, PPB_Messaging;1.1 that is
19 * deprecated, but which still should provide ABI compatibility for a little
20 * bit longer to give time to transition off of it. The header is *not* provided
21 * in ppapi/c/ppb_messaging.h, in order to push clients to the new API,
22 * version 1.2.
23 * TODO(dmichael): Delete this API altogether when all uses are gone.
24 *                 crbug.com/414398
25 */
26struct PPP_MessageHandler_0_1_Deprecated { /* dev */
27  void (*HandleMessage)(PP_Instance instance,
28                        void* user_data,
29                        struct PP_Var message);
30  struct PP_Var (*HandleBlockingMessage)(PP_Instance instance,
31                                void* user_data,
32                                struct PP_Var message);
33  void (*Destroy)(PP_Instance instance, void* user_data);
34};
35
36struct PPB_Messaging_1_1_Deprecated { /* dev */
37  void (*PostMessage)(PP_Instance instance, struct PP_Var message);
38  int32_t (*RegisterMessageHandler)(
39      PP_Instance instance,
40      void* user_data,
41      const struct PPP_MessageHandler_0_1_Deprecated* handler,
42      PP_Resource message_loop);
43  void (*UnregisterMessageHandler)(PP_Instance instance);
44};
45
46#endif  /* PPAPI_C_DEV_IMPL_PPB_MESSAGING_DEPRECATED_H_ */
47
48