blob: 33359df09280d963a7969951c9b375ba79586fcd [file] [log] [blame]
// 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);
};