chromium/chrome/browser/ui/exclusive_access/exclusive_access_manager.h

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

#ifndef CHROME_BROWSER_UI_EXCLUSIVE_ACCESS_EXCLUSIVE_ACCESS_MANAGER_H_
#define CHROME_BROWSER_UI_EXCLUSIVE_ACCESS_EXCLUSIVE_ACCESS_MANAGER_H_

#include "base/memory/raw_ptr.h"
#include "chrome/browser/ui/exclusive_access/exclusive_access_bubble_type.h"
#include "chrome/browser/ui/exclusive_access/exclusive_access_permission_manager.h"
#include "chrome/browser/ui/exclusive_access/fullscreen_controller.h"
#include "chrome/browser/ui/exclusive_access/keyboard_lock_controller.h"
#include "chrome/browser/ui/exclusive_access/pointer_lock_controller.h"

class ExclusiveAccessContext;
class FullscreenController;
class GURL;
class KeyboardLockController;
class PointerLockController;

namespace content {
struct NativeWebKeyboardEvent;
class WebContents;
}  // namespace content

// This class combines the different exclusive access modes (like fullscreen and
// pointer lock) which are each handled by respective controller. It also
// updates the exit bubble to reflect the combined state.
class ExclusiveAccessManager {};

#endif  // CHROME_BROWSER_UI_EXCLUSIVE_ACCESS_EXCLUSIVE_ACCESS_MANAGER_H_