15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Copyright (c) 2012 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* From trusted/ppb_url_loader_trusted.idl modified Wed Oct 5 14:06:02 2011. */ 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PPAPI_C_TRUSTED_PPB_URL_LOADER_TRUSTED_H_ 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PPAPI_C_TRUSTED_PPB_URL_LOADER_TRUSTED_H_ 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/c/pp_instance.h" 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/c/pp_macros.h" 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/c/pp_resource.h" 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/c/pp_stdint.h" 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PPB_URLLOADERTRUSTED_INTERFACE_0_3 "PPB_URLLoaderTrusted;0.3" 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PPB_URLLOADERTRUSTED_INTERFACE PPB_URLLOADERTRUSTED_INTERFACE_0_3 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @file 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * URL loader trusted interfaces. */ 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @addtogroup Typedefs 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @{ 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Callback that indicates the status of the download and upload for the 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * given URLLoader resource. 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef void (*PP_URLLoaderTrusted_StatusCallback)( 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Instance pp_instance, 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Resource pp_resource, 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int64_t bytes_sent, 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int64_t total_bytes_to_be_sent, 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int64_t bytes_received, 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int64_t total_bytes_to_be_received); 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @} 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @addtogroup Interfaces 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @{ 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Available only to trusted implementations. */ 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct PPB_URLLoaderTrusted_0_3 { 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Grant this URLLoader the capability to make unrestricted cross-origin 515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * requests. 525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void (*GrantUniversalAccess)(PP_Resource loader); 545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Registers that the given function will be called when the upload or 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * downloaded byte count has changed. This is not exposed on the untrusted 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * interface because it can be quite chatty and encourages people to write 585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * feedback UIs that update as frequently as the progress updates. 595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * The other serious gotcha with this callback is that the callback must not 615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * mutate the URL loader or cause it to be destroyed. 625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * However, the proxy layer needs this information to push to the other 645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * process, so we expose it here. Only one callback can be set per URL 655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Loader. Setting to a NULL callback will disable it. 665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void (*RegisterStatusCallback)(PP_Resource loader, 685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_URLLoaderTrusted_StatusCallback cb); 695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef struct PPB_URLLoaderTrusted_0_3 PPB_URLLoaderTrusted; 725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** 735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @} 745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif /* PPAPI_C_TRUSTED_PPB_URL_LOADER_TRUSTED_H_ */ 775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 78