// 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 display.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 OutputProtection { // 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); };