chromium/components/exo/protected_native_pixmap_query_delegate.h

// Copyright 2021 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef COMPONENTS_EXO_PROTECTED_NATIVE_PIXMAP_QUERY_DELEGATE_H_
#define COMPONENTS_EXO_PROTECTED_NATIVE_PIXMAP_QUERY_DELEGATE_H_

#include "base/files/scoped_file.h"
#include "base/functional/callback_forward.h"

namespace exo {
// Interface for querying if a GMB handle is associated with a protected native
// pixmap. This is needed for platforms with HW protected video so we set the
// properties on the quad correctly.
class ProtectedNativePixmapQueryDelegate {
 public:
  virtual ~ProtectedNativePixmapQueryDelegate() = default;

  using IsProtectedNativePixmapHandleCallback = base::OnceCallback<void(bool)>;
  // Queries the GPU process for whether or not the passed in handle is
  // associated with protected native pixmap. Invokes the callback
  // asynchronously with the result.
  virtual void IsProtectedNativePixmapHandle(
      base::ScopedFD handle,
      IsProtectedNativePixmapHandleCallback callback) = 0;
};
}  // namespace exo
#endif  // COMPONENTS_EXO_PROTECTED_NATIVE_PIXMAP_QUERY_DELEGATE_H_