blob: 2b02a9a02cb4a121ca86463164b2e0be59d490f6 [file] [log] [blame]
// 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 chrome.mojom;
import "mojo/public/mojom/base/file_path.mojom";
[Native]
enum AppShimLaunchType;
[Native]
enum AppShimLaunchResult;
[Native]
enum AppShimFocusType;
[Native]
enum AppShimAttentionType;
// Interface through which the browser communicates to a shim process.
interface AppShim {
// Signals that a previous LaunchApp message has been processed, and lets the
// app shim process know whether it was registered successfully.
LaunchAppDone(AppShimLaunchResult launch_result);
// Instructs the shim to hide the app.
Hide();
// Instructs the shim to show the app.
UnhideWithoutActivation();
// Instructs the shim to request or cancel user attention.
SetUserAttention(AppShimAttentionType attention_type);
};
// Interface through which the a process communicates to the browser process.
interface AppShimHost {
// Signals to the main Chrome process that a shim has started. The app shim
// process is requesting to be associated with the given profile and app_id.
// Once the profile and app_id are stored, and all future messages from the
// app shim relate to this app.
LaunchApp(AppShim app_shim,
mojo_base.mojom.FilePath profile_dir,
string app_mode_id,
AppShimLaunchType launch_type,
array<mojo_base.mojom.FilePath> files);
// Sent when the user has indicated a desire to focus the app, either by
// clicking on the app's icon in the dock or by selecting it with Cmd+Tab. In
// response, Chrome brings the app's windows to the foreground, or relaunches
// if the focus type indicates a reopen and there are no open windows.
FocusApp(AppShimFocusType focus_type,
array<mojo_base.mojom.FilePath> files);
// Sent when the app shim is hidden or unhidden.
SetAppHidden(bool hidden);
// Called when the app shim process notifies that the app should quit.
QuitApp();
};