mirror of
https://github.com/klzgrad/naiveproxy.git
synced 2024-11-24 22:36:09 +03:00
111 lines
3.9 KiB
Plaintext
111 lines
3.9 KiB
Plaintext
|
// Copyright 2017 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;
|
||
|
|
||
|
// An action handler state.
|
||
|
enum TrayActionState {
|
||
|
// The action cannot be handled - due to no client being set, the client not
|
||
|
// supporting the action, user session not being locked etc.
|
||
|
kNotAvailable,
|
||
|
|
||
|
// The client supports the action and is not currently handling the action.
|
||
|
kAvailable,
|
||
|
|
||
|
// The client received the request for the action and it is launching the
|
||
|
// flow to handle it.
|
||
|
kLaunching,
|
||
|
|
||
|
// The client is currently handling the action.
|
||
|
kActive,
|
||
|
};
|
||
|
|
||
|
// The user action that triggered a request for a new note.
|
||
|
// Used in histograms - should be kept in sync with
|
||
|
// NewLockScreenNoteRequestType histogram enum, and assigned values should
|
||
|
// never be changed.
|
||
|
enum LockScreenNoteOrigin {
|
||
|
// The note request originated from the new note button in the system
|
||
|
// tray - note that this UI element is deprecated.
|
||
|
kTrayAction = 0,
|
||
|
|
||
|
// The user tapped the note action button shown on the lock screen.
|
||
|
kLockScreenButtonTap = 1,
|
||
|
|
||
|
// The user swiped from the note action button shown on the lock screen.
|
||
|
kLockScreenButtonSwipe = 2,
|
||
|
|
||
|
// The user activated the lock screen button shown on the lock screen using
|
||
|
// the keyboard.
|
||
|
kLockScreenButtonKeyboard = 3,
|
||
|
|
||
|
// The user ejected the stylus tool from the device.
|
||
|
kStylusEject = 4,
|
||
|
|
||
|
// Not a real value - used primarily for UMA reporting (to report upper bound
|
||
|
// of valid histogram values).
|
||
|
kCount
|
||
|
};
|
||
|
|
||
|
// Reason for closing a lock screen note, and consequentially closing any
|
||
|
// existing note handler app windows.
|
||
|
// Used primarily for metrics reporting.
|
||
|
// IMPORTANT: The values should be kept in sync with
|
||
|
// LockScreenNoteTakingExitReason histogram enum, and assigned values should
|
||
|
// never be changed.
|
||
|
enum CloseLockScreenNoteReason {
|
||
|
// The user session was unlocked.
|
||
|
kSessionUnlock = 0,
|
||
|
|
||
|
// The user session was shut down (e.g. due to user sign-out).
|
||
|
kShutdown = 1,
|
||
|
|
||
|
// The user display was completely dimmed (e.g. due to user inactivity).
|
||
|
kScreenDimmed = 2,
|
||
|
|
||
|
// Device suspended.
|
||
|
kSuspend = 3,
|
||
|
|
||
|
// The app window associated with the note was closed by the app.
|
||
|
kAppWindowClosed = 4,
|
||
|
|
||
|
// The note taking app's support for the lock screen note taking was disabled
|
||
|
// (e.g. because of a policy update).
|
||
|
kAppLockScreenSupportDisabled = 5,
|
||
|
|
||
|
// The user pressed "Unlock" button on the lock screen UI.
|
||
|
kUnlockButtonPressed = 6,
|
||
|
|
||
|
// Not a real value - used primarily for UMA reporting (to report upper bound
|
||
|
// of valid histogram values).
|
||
|
kCount
|
||
|
};
|
||
|
|
||
|
// Used by a client (e.g. Chrome) to set up a handler for a tray action, and
|
||
|
// notify ash on the action handler's state changes. A tray action is one of
|
||
|
// predefined actions (currently only the "new note on lock screen" action is
|
||
|
// supported) that appear as an ash status area button if the client declares
|
||
|
// the action as available. Clicking the button invokes a client method that
|
||
|
// requests the action associated with the button to be handled.
|
||
|
interface TrayAction {
|
||
|
// Sets the client to be used to handle action requests.
|
||
|
// |lock_screen_note_state|: The current lock screen note action state
|
||
|
// associated with the client.
|
||
|
SetClient(TrayActionClient client, TrayActionState lock_screen_note_state);
|
||
|
|
||
|
// Updates action state for the lock screen note action. If called with no
|
||
|
// client set, the state change will not take effect until a client is set.
|
||
|
// Null client is equivalent to kNotAvailable state.
|
||
|
UpdateLockScreenNoteState(TrayActionState state);
|
||
|
};
|
||
|
|
||
|
// Used by ash to request Chrome to handle an action.
|
||
|
interface TrayActionClient {
|
||
|
// Requests a lock screen note action to be handled.
|
||
|
RequestNewLockScreenNote(LockScreenNoteOrigin origin);
|
||
|
|
||
|
// Closes lock screen note.
|
||
|
CloseLockScreenNote(CloseLockScreenNoteReason reason);
|
||
|
};
|