// Copyright 2016 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 nacl.mojom;

[Native]
enum NaClErrorCode;

interface NaClRendererHost {
  // This message must be synchronous to ensure that the exit status is sent
  // from NaCl to the renderer before the NaCl process exits very soon after.
  [Sync]
  ReportExitStatus(int32 exit_status) => ();

  // This message must be synchronous to ensure that the load status is sent
  // from NaCl to the renderer before the NaCl process exits very soon after.
  [Sync]
  ReportLoadStatus(NaClErrorCode load_status) => ();

  ProvideExitControl(NaClExitControl exit_control);
};

// When this interface is closed, it indicates that the NaCl loader process
// should exit.
interface NaClExitControl {};
