summaryrefslogtreecommitdiffstats
path: root/mojo/shell/tests/lifecycle/lifecycle_unittest.mojom
blob: 2197e3bcab3f61c0bb68815a05e026fd1758eddf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
// 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 mojo.shell.test.mojom;

// An interface implemented by an application exposing different ways for the
// application to "shut down" from the caller and shell's perspective.
interface LifecycleControl {
  // Method for ping-pong acknowledgement.
  Ping() => ();

  // Perform any normal cleanup and shut down normally.
  GracefulQuit();

  // Crash immediately and leave the shell and clients to deal with the
  // consequences.
  Crash();

  // Not actually a shutdown from the client's perspective, but the Shell is no
  // longer tracking this application.
  CloseShellConnection();
};

// Implemented by an app that connects to another app, thereby creating an
// instance for it in the shell.
interface Parent {
  // Connects to another app and runs the callback when that app has acked a
  // Ping.
  ConnectToChild() => ();
  Quit();
};