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