chromium/components/download/public/common/download_stream.mojom

// Copyright 2018 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

module download.mojom;

enum NetworkRequestStatus {
  OK,
  NETWORK_TIMEOUT,
  NETWORK_DISCONNECTED,
  NETWORK_SERVER_DOWN,
  SERVER_NO_RANGE,
  SERVER_CONTENT_LENGTH_MISMATCH,
  SERVER_UNREACHABLE,
  SERVER_CERT_PROBLEM,
  USER_CANCELED,
  NETWORK_FAILED,
};

// Used to pass the interruption status to the consumer of the data pipe.
interface DownloadStreamClient {
  OnStreamCompleted(NetworkRequestStatus status);
};

struct DownloadStreamHandle {
  handle<data_pipe_consumer> stream;
  pending_receiver<DownloadStreamClient> client_receiver;
};