chromium/services/network/public/mojom/web_bundle_handle.mojom

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

module network.mojom;

enum WebBundleErrorType {
  kMetadataParseError,
  kResponseParseError,
  kResourceNotFound,
  kMemoryQuotaExceeded,
  kServingConstraintsNotMet,
  kWebBundleFetchFailed,
  kWebBundleRedirected,
  kDeprecationWarning,
};

// A handle to a WebBundle instance in the Network Service. Created by a
// renderer, and its remote endpoint is passed to the Network Service. The
// receiving endpoint is held in the renderer and closed to tell the Network
// Service that the Bundle is no longer needed.
interface WebBundleHandle {
  // Used to create a copy of this handle.
  Clone(pending_receiver<WebBundleHandle> receiver);

  // Report errors to the renderer.
  OnWebBundleError(WebBundleErrorType type, string message);

  // Report to the renderer whether successfully loaded the data or failed.
  OnWebBundleLoadFinished(bool success);
};