// 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.
};

protocol 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.
    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.
    FollowRedirect() -> (URLResponse response);

    // Query status about the URLLoader.
    QueryStatus() -> (URLLoaderStatus status);
};
