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)/* URL loader trusted interfaces. */ 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 8c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)[generate_thunk] 9c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)label Chrome { 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) M14 = 0.3 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Callback that indicates the status of the download and upload for the 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * given URLLoader resource. 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef void PP_URLLoaderTrusted_StatusCallback( 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) [in] PP_Instance pp_instance, 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) [in] PP_Resource pp_resource, 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) [in] int64_t bytes_sent, 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) [in] int64_t total_bytes_to_be_sent, 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) [in] int64_t bytes_received, 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) [in] int64_t total_bytes_to_be_received); 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Available only to trusted implementations. */ 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)interface PPB_URLLoaderTrusted { 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Grant this URLLoader the capability to make unrestricted cross-origin 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * requests. 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void GrantUniversalAccess([in] PP_Resource loader); 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Registers that the given function will be called when the upload or 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * downloaded byte count has changed. This is not exposed on the untrusted 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * interface because it can be quite chatty and encourages people to write 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * feedback UIs that update as frequently as the progress updates. 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * The other serious gotcha with this callback is that the callback must not 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * mutate the URL loader or cause it to be destroyed. 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * However, the proxy layer needs this information to push to the other 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * process, so we expose it here. Only one callback can be set per URL 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Loader. Setting to a NULL callback will disable it. 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void RegisterStatusCallback( 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) [in] PP_Resource loader, 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) [in] PP_URLLoaderTrusted_StatusCallback cb); 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 52