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) 6c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)/* From ppb_url_request_info.idl modified Thu Mar 28 10:19:35 2013. */ 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PPAPI_C_PPB_URL_REQUEST_INFO_H_ 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PPAPI_C_PPB_URL_REQUEST_INFO_H_ 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/c/pp_bool.h" 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/c/pp_instance.h" 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/c/pp_macros.h" 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/c/pp_resource.h" 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/c/pp_stdint.h" 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/c/pp_time.h" 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/c/pp_var.h" 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PPB_URLREQUESTINFO_INTERFACE_1_0 "PPB_URLRequestInfo;1.0" 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PPB_URLREQUESTINFO_INTERFACE PPB_URLREQUESTINFO_INTERFACE_1_0 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @file 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * This file defines the <code>PPB_URLRequestInfo</code> API for creating and 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * manipulating URL requests. 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @addtogroup Enums 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @{ 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * This enumeration contains properties that can be set on a URL request. 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef enum { 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** This corresponds to a string (<code>PP_VARTYPE_STRING</code>). */ 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_URLREQUESTPROPERTY_URL = 0, 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * This corresponds to a string (<code>PP_VARTYPE_STRING</code>); either 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * POST or GET. Refer to the 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec5.html">HTTP 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Methods</a> documentation for further information. 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_URLREQUESTPROPERTY_METHOD = 1, 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * This corresponds to a string (<code>PP_VARTYPE_STRING</code>); \n 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * delimited. Refer to the 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html"Header 51c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) * Field Definitions</a> documentation for further information. 525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_URLREQUESTPROPERTY_HEADERS = 2, 545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * This corresponds to a <code>PP_Bool</code> (<code>PP_VARTYPE_BOOL</code>; 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * default=<code>PP_FALSE</code>). 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Set this value to <code>PP_TRUE</code> if you want to download the data 585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * to a file. Use PPB_URLLoader.FinishStreamingToFile() to complete the 595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * download. 605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_URLREQUESTPROPERTY_STREAMTOFILE = 3, 625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * This corresponds to a <code>PP_Bool</code> (<code>PP_VARTYPE_BOOL</code>; 645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * default=<code>PP_TRUE</code>). 655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Set this value to <code>PP_FALSE</code> if you want to use 665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * PPB_URLLoader.FollowRedirects() to follow the redirects only after 675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * examining redirect headers. 685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_URLREQUESTPROPERTY_FOLLOWREDIRECTS = 4, 705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * This corresponds to a <code>PP_Bool</code> (<code>PP_VARTYPE_BOOL</code>; 725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * default=<code>PP_FALSE</code>). 735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Set this value to <code>PP_TRUE</code> if you want to be able to poll the 745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * download progress using PPB_URLLoader.GetDownloadProgress(). 755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_URLREQUESTPROPERTY_RECORDDOWNLOADPROGRESS = 5, 775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * This corresponds to a <code>PP_Bool</code> 795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * (default=<code>PP_FALSE</code>). Set this value to <code>PP_TRUE</code> if 805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * you want to be able to poll the upload progress using 81c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) * PPB_URLLoader.GetUploadProgress(). 825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_URLREQUESTPROPERTY_RECORDUPLOADPROGRESS = 6, 845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * This corresponds to a string (<code>PP_VARTYPE_STRING)</code> or may be 865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * undefined (<code>PP_VARTYPE_UNDEFINED</code>; default). 875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Set it to a string to set a custom referrer (if empty, the referrer header 885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * will be omitted), or to undefined to use the default referrer. Only loaders 895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * with universal access (only available on trusted implementations) will 905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * accept <code>URLRequestInfo</code> objects that try to set a custom 915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * referrer; if given to a loader without universal access, 925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * <code>PP_ERROR_NOACCESS</code> will result. 935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_URLREQUESTPROPERTY_CUSTOMREFERRERURL = 7, 955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * This corresponds to a <code>PP_Bool</code> (<code>PP_VARTYPE_BOOL</code>; 975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * default=<code>PP_FALSE</code>). Whether cross-origin requests are allowed. 985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Cross-origin requests are made using the CORS (Cross-Origin Resource 995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Sharing) algorithm to check whether the request should be allowed. For the 1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * complete CORS algorithm, refer to 1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * the <a href="http://www.w3.org/TR/access-control">Cross-Origin Resource 1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Sharing</a> documentation. 1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_URLREQUESTPROPERTY_ALLOWCROSSORIGINREQUESTS = 8, 1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 1065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * This corresponds to a <code>PP_Bool</code> (<code>PP_VARTYPE_BOOL</code>; 1075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * default=<code>PP_FALSE</code>). 1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Whether HTTP credentials are sent with cross-origin requests. If false, 1095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * no credentials are sent with the request and cookies are ignored in the 1105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * response. If the request is not cross-origin, this property is ignored. 1115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 1125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_URLREQUESTPROPERTY_ALLOWCREDENTIALS = 9, 1135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 1145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * This corresponds to a string (<code>PP_VARTYPE_STRING</code>) or may be 1155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * undefined (<code>PP_VARTYPE_UNDEFINED</code>; default). 1165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Set it to a string to set a custom content-transfer-encoding header (if 1175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * empty, that header will be omitted), or to undefined to use the default 1185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * (if any). Only loaders with universal access (only available on trusted 1195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * implementations) will accept <code>URLRequestInfo</code> objects that try 1205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * to set a custom content transfer encoding; if given to a loader without 1215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * universal access, <code>PP_ERROR_NOACCESS</code> will result. 1225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 1235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_URLREQUESTPROPERTY_CUSTOMCONTENTTRANSFERENCODING = 10, 1245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 1255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * This corresponds to an integer (<code>PP_VARTYPE_INT32</code>); default 1265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * is not defined and is set by the browser, possibly depending on system 1275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * capabilities. Set it to an integer to set an upper threshold for the 1285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * prefetched buffer of an asynchronous load. When exceeded, the browser will 1295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * defer loading until 1305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * <code>PP_URLREQUESTPROPERTY_PREFETCHBUFFERLOWERERTHRESHOLD</code> is hit, 1315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * at which time it will begin prefetching again. When setting this property, 1325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * <code>PP_URLREQUESTPROPERTY_PREFETCHBUFFERLOWERERTHRESHOLD</code> must also 1335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * be set. Behavior is undefined if the former is <= the latter. 1345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 1355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_URLREQUESTPROPERTY_PREFETCHBUFFERUPPERTHRESHOLD = 11, 1365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 1375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * This corresponds to an integer (<code>PP_VARTYPE_INT32</code>); default is 1385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * not defined and is set by the browser to a value appropriate for the 1395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * default <code>PP_URLREQUESTPROPERTY_PREFETCHBUFFERUPPERTHRESHOLD</code>. 1405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Set it to an integer to set a lower threshold for the prefetched buffer 1415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * of an asynchronous load. When reached, the browser will resume loading if 1425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * If <code>PP_URLREQUESTPROPERTY_PREFETCHBUFFERLOWERERTHRESHOLD</code> had 1435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * previously been reached. 1445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * When setting this property, 1455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * <code>PP_URLREQUESTPROPERTY_PREFETCHBUFFERUPPERTHRESHOLD</code> must also 1465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * be set. Behavior is undefined if the former is >= the latter. 1475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 1485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_URLREQUESTPROPERTY_PREFETCHBUFFERLOWERTHRESHOLD = 12, 1495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 1505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * This corresponds to a string (<code>PP_VARTYPE_STRING</code>) or may be 1515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * undefined (<code>PP_VARTYPE_UNDEFINED</code>; default). Set it to a string 1525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * to set a custom user-agent header (if empty, that header will be omitted), 1535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * or to undefined to use the default. Only loaders with universal access 1545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * (only available on trusted implementations) will accept 1555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * <code>URLRequestInfo</code> objects that try to set a custom user agent; if 1565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * given to a loader without universal access, <code>PP_ERROR_NOACCESS</code> 1575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * will result. 1585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 1595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_URLREQUESTPROPERTY_CUSTOMUSERAGENT = 13 1605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} PP_URLRequestProperty; 1615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_URLRequestProperty, 4); 1625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** 1635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @} 1645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 1655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** 1675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @addtogroup Interfaces 1685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @{ 1695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 1705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** 1715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * The <code>PPB_URLRequestInfo</code> interface is used to create 1725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * and handle URL requests. This API is used in conjunction with 1735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * <code>PPB_URLLoader</code>. Refer to <code>PPB_URLLoader</code> for further 1745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * information. 1755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 1765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct PPB_URLRequestInfo_1_0 { 1775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 1785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Create() creates a new <code>URLRequestInfo</code> object. 1795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 1805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @param[in] instance A <code>PP_Instance</code> identifying one instance 1815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * of a module. 1825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 1835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @return A <code>PP_Resource</code> identifying the 1845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * <code>URLRequestInfo</code> if successful, 0 if the instance is invalid. 1855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 1865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Resource (*Create)(PP_Instance instance); 1875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 1885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * IsURLRequestInfo() determines if a resource is a 1895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * <code>URLRequestInfo</code>. 1905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 1915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @param[in] resource A <code>PP_Resource</code> corresponding to a 1925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * <code>URLRequestInfo</code>. 1935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 1945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @return <code>PP_TRUE</code> if the resource is a 1955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * <code>URLRequestInfo</code>, <code>PP_FALSE</code> if the resource is 1965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * invalid or some type other than <code>URLRequestInfo</code>. 1975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 1985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Bool (*IsURLRequestInfo)(PP_Resource resource); 1995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 2005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * SetProperty() sets a request property. The value of the property must be 2015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * the correct type according to the property being set. 2025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 2035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @param[in] request A <code>PP_Resource</code> corresponding to a 2045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * <code>URLRequestInfo</code>. 2055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @param[in] property A <code>PP_URLRequestProperty</code> identifying the 2065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * property to set. 2075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @param[in] value A <code>PP_Var</code> containing the property value. 2085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 2095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @return <code>PP_TRUE</code> if successful, <code>PP_FALSE</code> if any 2105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * of the parameters are invalid. 2115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 2125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Bool (*SetProperty)(PP_Resource request, 2135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_URLRequestProperty property, 2145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) struct PP_Var value); 2155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 2165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * AppendDataToBody() appends data to the request body. A Content-Length 2175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * request header will be automatically generated. 2185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 2195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @param[in] request A <code>PP_Resource</code> corresponding to a 2205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * <code>URLRequestInfo</code>. 2215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @param[in] data A pointer to a buffer holding the data. 2225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @param[in] len The length, in bytes, of the data. 2235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 2245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @return <code>PP_TRUE</code> if successful, <code>PP_FALSE</code> if any 2255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * of the parameters are invalid. 2265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 2275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 2285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 2295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Bool (*AppendDataToBody)(PP_Resource request, 2305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const void* data, 2315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) uint32_t len); 2325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 2335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * AppendFileToBody() appends a file, to be uploaded, to the request body. 2345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * A content-length request header will be automatically generated. 2355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 2365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @param[in] request A <code>PP_Resource</code> corresponding to a 2375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * <code>URLRequestInfo</code>. 2385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @param[in] file_ref A <code>PP_Resource</code> corresponding to a file 2395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * reference. 2405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @param[in] start_offset An optional starting point offset within the 2415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * file. 2425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @param[in] number_of_bytes An optional number of bytes of the file to 2435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * be included. If <code>number_of_bytes</code> is -1, then the sub-range 2445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * to upload extends to the end of the file. 2455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @param[in] expected_last_modified_time An optional (non-zero) last 2465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * modified time stamp used to validate that the file was not modified since 2475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * the given time before it was uploaded. The upload will fail with an error 2485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * code of <code>PP_ERROR_FILECHANGED</code> if the file has been modified 2495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * since the given time. If <code>expected_last_modified_time</code> is 0, 2505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * then no validation is performed. 2515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 2525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @return <code>PP_TRUE</code> if successful, <code>PP_FALSE</code> if any 2535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * of the parameters are invalid. 2545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 2555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Bool (*AppendFileToBody)(PP_Resource request, 2565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Resource file_ref, 2575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int64_t start_offset, 2585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int64_t number_of_bytes, 2595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Time expected_last_modified_time); 2605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 2615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef struct PPB_URLRequestInfo_1_0 PPB_URLRequestInfo; 2635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** 2645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @} 2655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 2665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif /* PPAPI_C_PPB_URL_REQUEST_INFO_H_ */ 2685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 269