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 ppb_url_response_info.idl modified Mon Nov 14 10:36:01 2011. */ 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PPAPI_C_PPB_URL_RESPONSE_INFO_H_ 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PPAPI_C_PPB_URL_RESPONSE_INFO_H_ 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/c/pp_bool.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)#include "ppapi/c/pp_var.h" 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PPB_URLRESPONSEINFO_INTERFACE_1_0 "PPB_URLResponseInfo;1.0" 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PPB_URLRESPONSEINFO_INTERFACE PPB_URLRESPONSEINFO_INTERFACE_1_0 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @file 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * This file defines the <code>PPB_URLResponseInfo</code> API for examining URL 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * responses. 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @addtogroup Enums 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @{ 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * This enumeration contains properties set on a URL response. 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef enum { 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * This corresponds to a string (PP_VARTYPE_STRING); an absolute URL formed by 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * resolving the relative request URL with the absolute document URL. Refer 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * to the 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec5.html#sec5.1.2"> 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * HTTP Request URI</a> and 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * <a href="http://www.w3.org/TR/html4/struct/links.html#h-12.4.1"> 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * HTML Resolving Relative URIs</a> documentation for further information. 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_URLRESPONSEPROPERTY_URL = 0, 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * This corresponds to a string (PP_VARTYPE_STRING); the absolute URL returned 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * in the response header's 'Location' field if this is a redirect response, 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * an empty string otherwise. Refer to the 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3"> 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * HTTP Status Codes - Redirection</a> documentation for further information. 515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_URLRESPONSEPROPERTY_REDIRECTURL = 1, 535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * This corresponds to a string (PP_VARTYPE_STRING); the HTTP method to be 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * used in a new request if this is a redirect response, an empty string 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * otherwise. Refer to the 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3"> 585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * HTTP Status Codes - Redirection</a> documentation for further information. 595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_URLRESPONSEPROPERTY_REDIRECTMETHOD = 2, 615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * This corresponds to an int32 (PP_VARETYPE_INT32); the status code from the 635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * response, e.g., 200 if the request was successful. Refer to the 645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec6.html#sec6.1.1"> 655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * HTTP Status Code and Reason Phrase</a> documentation for further 665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * information. 675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_URLRESPONSEPROPERTY_STATUSCODE = 3, 695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * This corresponds to a string (PP_VARTYPE_STRING); the status line 715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * from the response. Refer to the 725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec6.html#sec6.1"> 735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * HTTP Response Status Line</a> documentation for further information. 745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_URLRESPONSEPROPERTY_STATUSLINE = 4, 765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * This corresponds to a string(PP_VARTYPE_STRING), a \n-delimited list of 785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * header field/value pairs of the form "field: value", returned by the 795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * server. Refer to the 805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14"> 815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * HTTP Header Field Definitions</a> documentation for further information. 825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_URLRESPONSEPROPERTY_HEADERS = 5 845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} PP_URLResponseProperty; 855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_URLResponseProperty, 4); 865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** 875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @} 885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** 915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @addtogroup Interfaces 925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @{ 935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** 955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * The PPB_URLResponseInfo interface contains APIs for 965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * examining URL responses. Refer to <code>PPB_URLLoader</code> for further 975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * information. 985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct PPB_URLResponseInfo_1_0 { 1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * IsURLResponseInfo() determines if a response is a 1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * <code>URLResponseInfo</code>. 1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @param[in] resource A <code>PP_Resource</code> corresponding to a 1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * <code>URLResponseInfo</code>. 1065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 1075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @return <code>PP_TRUE</code> if the resource is a 1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * <code>URLResponseInfo</code>, <code>PP_FALSE</code> if the resource is 1095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * invalid or some type other than <code>URLResponseInfo</code>. 1105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 1115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Bool (*IsURLResponseInfo)(PP_Resource resource); 1125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 1135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * GetProperty() gets a response property. 1145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 1155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @param[in] request A <code>PP_Resource</code> corresponding to a 1165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * <code>URLResponseInfo</code>. 1175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @param[in] property A <code>PP_URLResponseProperty</code> identifying 1185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * the type of property in the response. 1195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 1205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @return A <code>PP_Var</code> containing the response property value if 1215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * successful, <code>PP_VARTYPE_VOID</code> if an input parameter is invalid. 1225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 1235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) struct PP_Var (*GetProperty)(PP_Resource response, 1245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_URLResponseProperty property); 1255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 1265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * GetBodyAsFileRef() returns a FileRef pointing to the file containing the 1275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * response body. This is only valid if 1285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * <code>PP_URLREQUESTPROPERTY_STREAMTOFILE</code> was set on the 1295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * <code>URLRequestInfo</code> used to produce this response. This file 1305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * remains valid until the <code>URLLoader</code> associated with this 1315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * <code>URLResponseInfo</code> is closed or destroyed. 1325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 1335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @param[in] request A <code>PP_Resource</code> corresponding to a 1345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * <code>URLResponseInfo</code>. 1355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 1365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @return A <code>PP_Resource</code> corresponding to a <code>FileRef</code> 1375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * if successful, 0 if <code>PP_URLREQUESTPROPERTY_STREAMTOFILE</code> was 1385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * not requested or if the <code>URLLoader</code> has not been opened yet. 1395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 1405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Resource (*GetBodyAsFileRef)(PP_Resource response); 1415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 1425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef struct PPB_URLResponseInfo_1_0 PPB_URLResponseInfo; 1445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** 1455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @} 1465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 1475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif /* PPAPI_C_PPB_URL_RESPONSE_INFO_H_ */ 1495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 150