- add sources.
[platform/framework/web/crosswalk.git] / src / ppapi / api / trusted / ppb_url_loader_trusted.idl
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 /* URL loader trusted interfaces. */
7
8 [generate_thunk]
9
10 label Chrome {
11   M14 = 0.3
12 };
13
14 /**
15  * Callback that indicates the status of the download and upload for the
16  * given URLLoader resource.
17  */
18 typedef void PP_URLLoaderTrusted_StatusCallback(
19       [in] PP_Instance pp_instance,
20       [in] PP_Resource pp_resource,
21       [in] int64_t bytes_sent,
22       [in] int64_t total_bytes_to_be_sent,
23       [in] int64_t bytes_received,
24       [in] int64_t total_bytes_to_be_received);
25
26 /* Available only to trusted implementations. */
27 interface PPB_URLLoaderTrusted {
28   /**
29    * Grant this URLLoader the capability to make unrestricted cross-origin
30    * requests.
31    */
32   void GrantUniversalAccess([in] PP_Resource loader);
33
34   /**
35    * Registers that the given function will be called when the upload or
36    * downloaded byte count has changed. This is not exposed on the untrusted
37    * interface because it can be quite chatty and encourages people to write
38    * feedback UIs that update as frequently as the progress updates.
39    *
40    * The other serious gotcha with this callback is that the callback must not
41    * mutate the URL loader or cause it to be destroyed.
42    *
43    * However, the proxy layer needs this information to push to the other
44    * process, so we expose it here. Only one callback can be set per URL
45    * Loader. Setting to a NULL callback will disable it.
46    */
47   void RegisterStatusCallback(
48       [in] PP_Resource loader,
49       [in] PP_URLLoaderTrusted_StatusCallback cb);
50 };
51