blob: 5d7791b071a99e94e67370bc47bc3d378213a005 [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 ash.mojom;
import "ui/gfx/geometry/mojo/geometry.mojom";
// Allows clients to control pieces of the UI used in first-run tutorials.
// Exists because the first-run tutorial is a component extension run by
// Chrome. Methods exist here instead of on the Shelf or SystemTray interfaces
// due to small behavior differences (all methods only affect the primary
// display, opening the system tray bubble is persistent, etc.).
interface FirstRunHelper {
// Cleans up the ash UI on tutorial start.
Start(FirstRunHelperClient client);
// Restores the ash UI on tutorial stop.
Stop();
// Returns the bounds of the app list button on the primary display in screen
// coordinates.
GetAppListButtonBounds() => (gfx.mojom.Rect screen_bounds);
// Opens the system tray bubble menu to show the default view. Does nothing if
// the bubble is already open. The bubble stays open until explicitly closed.
// Returns bubble bounds in screen coordinates.
OpenTrayBubble() => (gfx.mojom.Rect screen_bounds);
// Closes the system tray bubble menu. Does nothing if the bubble is already
// closed.
CloseTrayBubble();
};
// The client for the FirstRunHelper interface, e.g. chrome.
interface FirstRunHelperClient {
// Informs the client that something happened inside ash that should cancel
// the tutorial (e.g. the device is shutting down).
OnCancelled();
};