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