| // 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 interface for clients that are allowed to control the display output |
| // content protection. Multiple clients can request content protection at |
| // the same time, and the display will be protected until all clients are |
| // closed or set |desired_method_mask| to 0 with |SetContentProtection|. |
| interface DisplayOutputProtection { |
| // Queries link status and protection status. |
| // |link_mask| is the type of connected display links, which is a bitmask of |
| // DisplayConnectionType values. |
| // |protection_mask)| is the desired protection methods, which is a bitmask of |
| // the ContentProtectionMethod values. |
| // See //ui/display/types/display_constants.h for DisplayConnectionType and |
| // ContentProtectionMethod. |
| QueryContentProtectionStatus(int64 display_id) => (bool success, |
| uint32 link_mask, |
| uint32 protection_mask); |
| |
| // Requests the desired protection methods. |
| // |protection_mask| is the desired protection methods, which is a bitmask |
| // of the ContentProtectionMethod values. When the interface is closed, |
| // the content protection mask will be reverted. |
| // Return true on success. Return false if it failed to make the protection |
| // request on the given display. |
| // See //ui/display/types/display_constants.h for ContentProtectionMethod. |
| SetContentProtection(int64 display_id, |
| uint32 desired_method_mask) => (bool success); |
| }; |