chromium/third_party/blink/renderer/core/fullscreen/fullscreen_request_type.h

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

#ifndef THIRD_PARTY_BLINK_RENDERER_CORE_FULLSCREEN_FULLSCREEN_REQUEST_TYPE_H_
#define THIRD_PARTY_BLINK_RENDERER_CORE_FULLSCREEN_FULLSCREEN_REQUEST_TYPE_H_

#include "base/check.h"
#include "base/dcheck_is_on.h"

#if DCHECK_IS_ON()
#include <string>
#endif

namespace blink {

// This enum class represents Implementation-internal details for the fullscreen
// request, these are in addition to API options from fullscreen_options.idl
// that are passed separately.
//
// The integer values are powers of two for use as a flag bitmap. The class
// provides minimal operators for combining flags and checking if a specific
// flag is set.
enum class FullscreenRequestType {};

inline FullscreenRequestType operator|(FullscreenRequestType lhs,
                                       FullscreenRequestType rhs) {}

// Returns true if lhs and rhs have at least one flag bit in common.
inline bool operator&(FullscreenRequestType lhs, FullscreenRequestType rhs) {}

#if DCHECK_IS_ON()
std::string FullscreenRequestTypeToDebugString(FullscreenRequestType req);
#endif

}  // namespace blink

#endif  // THIRD_PARTY_BLINK_RENDERER_CORE_FULLSCREEN_FULLSCREEN_REQUEST_TYPE_H_