// Copyright 2015 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. library fuchsia.net.oldhttp; struct URLLoaderStatus { // If the loader has failed due to a network level error, this field will be // set. HttpError? error; // Set to true if the URLLoader is still working. Set to false once an error // is encountered or the response body is completely copied to the response // body stream. bool is_loading; // TODO(darin): Add further details about the stages of loading (e.g., // "resolving host") that happen prior to receiving bytes. }; interface URLLoader { // Loads the given |request|, asynchronously producing |response|. Consult // |response| to determine if the request resulted in an error, was // redirected, or has a response body to be consumed. 1: Start(URLRequest request) -> (URLResponse response); // If the request passed to |Start| had |auto_follow_redirects| set to false, // then upon receiving an URLResponse with a non-NULL |redirect_url| field, // |FollowRedirect| may be called to load the URL indicated by the redirect. 2: FollowRedirect() -> (URLResponse response); // Query status about the URLLoader. 3: QueryStatus() -> (URLLoaderStatus status); };