// Copyright 2018 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.

module blink.mojom;

import "services/network/public/mojom/url_response_head.mojom";
import "services/network/public/mojom/url_loader.mojom";

// NetworkService (PlzWorker):
// Used for passing the web worker main script pre-requested by the browser
// process and its redirect information.
struct WorkerMainScriptLoadParams {
  // Used for loading the pre-requested main script in the renderer process.
  network.mojom.URLResponseHead response_head;

  handle<data_pipe_consumer> response_body;

  network.mojom.URLLoaderClientEndpoints? url_loader_client_endpoints;

  // The list of redirects that led to this script load. Empty if there were no
  // redirects.
  array<network.mojom.URLRequestRedirectInfo> redirect_infos;

  // The list of redirect response heads. Empty if there were no redirects.
  array<network.mojom.URLResponseHead> redirect_response_heads;
};
