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