blob: 5b2a9b7349ab465c995c45a27f8480f9f5f3a4ce [file] [log] [blame]
// Copyright 2015 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
module device.mojom;
import "services/device/public/mojom/wake_lock_context.mojom";
import "services/device/public/mojom/wake_lock.mojom";
interface WakeLockProvider {
// Gets a WakeLockContext that is associated with |context_id|. |context_id|
// is used to obtain the NativeView associated with the relevant context on
// Android (see WakeLockContextCallback). |context_id| must be >= 0.
GetWakeLockContextForID(int32 context_id,
pending_receiver<WakeLockContext> context);
// Gets a WakeLock outside of any context. This method can be used
// if the client does not have any context available (e.g., is not
// within the context of a WebContents). However, note that the resulting
// Wake Lock will not have any effect on Android.
GetWakeLockWithoutContext(WakeLockType type,
WakeLockReason reason,
string description,
pending_receiver<WakeLock> wake_lock);
// Notifies the caller if no wake lock of type |type| is currently activated.
// If it is activated then the caller is notified on each deactivation event
// after this call.
NotifyOnWakeLockDeactivation(WakeLockType type,
pending_remote<WakeLockObserver> observer);
// Test-only method that returns the number of activated wake locks of type
// |type|.
GetActiveWakeLocksForTests(WakeLockType type) => (int32 count);
};
interface WakeLockObserver {
// Called when a wake lock of type |type| is canceled for the last time i.e.
// no wake lock of type |type| is held across the system.
OnWakeLockDeactivated(WakeLockType type);
};