// 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 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 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(); };