// Copyright (c) 2022 Microsoft, Inc.
// Use of this source code is governed by the MIT license that can be
// found in the LICENSE file.

module node.mojom;

import "mojo/public/mojom/base/file_path.mojom";
import "sandbox/policy/mojom/sandbox.mojom";
import "services/network/public/mojom/host_resolver.mojom";
import "services/network/public/mojom/url_loader_factory.mojom";
import "third_party/blink/public/mojom/messaging/message_port_descriptor.mojom";

struct NodeServiceParams {
  mojo_base.mojom.FilePath script;
  array<string> args;
  array<string> exec_args;
  blink.mojom.MessagePortDescriptor port;
  pending_remote<network.mojom.URLLoaderFactory> url_loader_factory;
  pending_remote<network.mojom.HostResolver> host_resolver;
  bool use_network_observer_from_url_loader_factory = false;
};

interface NodeServiceClient {
  OnV8FatalError(string location, string report);
};

[ServiceSandbox=sandbox.mojom.Sandbox.kNoSandbox]
interface NodeService {
  Initialize(NodeServiceParams params,
             pending_remote<NodeServiceClient> client_remote);
};
