chromium/content/shell/common/shell_controller.test-mojom

// Copyright 2020 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

module content.mojom;

import "mojo/public/mojom/base/string16.mojom";
import "mojo/public/mojom/base/values.mojom";

// A control interface which can be accessed by clients launching Content Shell
// with a Mojo invitation on the command line. This is used by
// LaunchAsMojoClientBrowserTest to exercise that mode of execution.
interface ShellController {
  // Requests the (ASCII) value of a command line argument present in the
  // running Content Shell process which receives this message.
  GetSwitchValue(string name) => (string? value);

  // Asks the shell to execute the JavaScript code in |script| within the first
  // available window, and returns the resulting value.
  ExecuteJavaScript(mojo_base.mojom.String16 script)
      => (mojo_base.mojom.Value value);

  // Tells Content Shell to close all windows and shut down. After sending this
  // message, the Content Shell browser process should be expected to terminate
  // soon.
  ShutDown();
};