• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /* Copyright (c) 2012 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 /* From trusted/ppb_url_loader_trusted.idl modified Wed Oct  5 14:06:02 2011. */
7 
8 #ifndef PPAPI_C_TRUSTED_PPB_URL_LOADER_TRUSTED_H_
9 #define PPAPI_C_TRUSTED_PPB_URL_LOADER_TRUSTED_H_
10 
11 #include "ppapi/c/pp_instance.h"
12 #include "ppapi/c/pp_macros.h"
13 #include "ppapi/c/pp_resource.h"
14 #include "ppapi/c/pp_stdint.h"
15 
16 #define PPB_URLLOADERTRUSTED_INTERFACE_0_3 "PPB_URLLoaderTrusted;0.3"
17 #define PPB_URLLOADERTRUSTED_INTERFACE PPB_URLLOADERTRUSTED_INTERFACE_0_3
18 
19 /**
20  * @file
21  * URL loader trusted interfaces. */
22 
23 
24 /**
25  * @addtogroup Typedefs
26  * @{
27  */
28 /**
29  * Callback that indicates the status of the download and upload for the
30  * given URLLoader resource.
31  */
32 typedef void (*PP_URLLoaderTrusted_StatusCallback)(
33     PP_Instance pp_instance,
34     PP_Resource pp_resource,
35     int64_t bytes_sent,
36     int64_t total_bytes_to_be_sent,
37     int64_t bytes_received,
38     int64_t total_bytes_to_be_received);
39 /**
40  * @}
41  */
42 
43 /**
44  * @addtogroup Interfaces
45  * @{
46  */
47 /* Available only to trusted implementations. */
48 struct PPB_URLLoaderTrusted_0_3 {
49   /**
50    * Grant this URLLoader the capability to make unrestricted cross-origin
51    * requests.
52    */
53   void (*GrantUniversalAccess)(PP_Resource loader);
54   /**
55    * Registers that the given function will be called when the upload or
56    * downloaded byte count has changed. This is not exposed on the untrusted
57    * interface because it can be quite chatty and encourages people to write
58    * feedback UIs that update as frequently as the progress updates.
59    *
60    * The other serious gotcha with this callback is that the callback must not
61    * mutate the URL loader or cause it to be destroyed.
62    *
63    * However, the proxy layer needs this information to push to the other
64    * process, so we expose it here. Only one callback can be set per URL
65    * Loader. Setting to a NULL callback will disable it.
66    */
67   void (*RegisterStatusCallback)(PP_Resource loader,
68                                  PP_URLLoaderTrusted_StatusCallback cb);
69 };
70 
71 typedef struct PPB_URLLoaderTrusted_0_3 PPB_URLLoaderTrusted;
72 /**
73  * @}
74  */
75 
76 #endif  /* PPAPI_C_TRUSTED_PPB_URL_LOADER_TRUSTED_H_ */
77 
78