#include "chrome/browser/ui/views/exclusive_access_bubble_views.h"
#include <utility>
#include "base/i18n/case_conversion.h"
#include "base/location.h"
#include "base/strings/utf_string_conversions.h"
#include "base/task/single_thread_task_runner.h"
#include "build/build_config.h"
#include "build/chromeos_buildflags.h"
#include "chrome/app/chrome_command_ids.h"
#include "chrome/browser/ui/browser_element_identifiers.h"
#include "chrome/browser/ui/exclusive_access/exclusive_access_manager.h"
#include "chrome/browser/ui/exclusive_access/fullscreen_controller.h"
#include "chrome/browser/ui/ui_features.h"
#include "chrome/browser/ui/views/exclusive_access_bubble_views_context.h"
#include "chrome/browser/ui/views/frame/immersive_mode_controller.h"
#include "chrome/browser/ui/views/frame/top_container_view.h"
#include "chrome/grit/generated_resources.h"
#include "components/fullscreen_control/subtle_notification_view.h"
#include "content/public/browser/web_contents.h"
#include "ui/accessibility/ax_enums.mojom.h"
#include "ui/accessibility/ax_node_data.h"
#include "ui/base/l10n/l10n_util.h"
#include "ui/events/keycodes/keyboard_codes.h"
#include "ui/gfx/animation/slide_animation.h"
#include "ui/strings/grit/ui_strings.h"
#include "ui/views/view.h"
#include "ui/views/view_class_properties.h"
#include "ui/views/widget/widget.h"
#include "url/gurl.h"
#if BUILDFLAG(IS_WIN)
#include "ui/base/l10n/l10n_util_win.h"
#endif
namespace {
bool IsTabFullscreenType(ExclusiveAccessBubbleType type) { … }
}
ExclusiveAccessBubbleViews::ExclusiveAccessBubbleViews(
ExclusiveAccessBubbleViewsContext* context,
const ExclusiveAccessBubbleParams& params,
ExclusiveAccessBubbleHideCallback first_hide_callback)
: … { … }
ExclusiveAccessBubbleViews::~ExclusiveAccessBubbleViews() { … }
void ExclusiveAccessBubbleViews::Update(
const ExclusiveAccessBubbleParams& params,
ExclusiveAccessBubbleHideCallback first_hide_callback) { … }
void ExclusiveAccessBubbleViews::RepositionIfVisible() { … }
void ExclusiveAccessBubbleViews::HideImmediately() { … }
bool ExclusiveAccessBubbleViews::IsShowing() const { … }
views::View* ExclusiveAccessBubbleViews::GetView() { … }
void ExclusiveAccessBubbleViews::UpdateBounds() { … }
void ExclusiveAccessBubbleViews::UpdateViewContent(
ExclusiveAccessBubbleType bubble_type) { … }
bool ExclusiveAccessBubbleViews::IsVisible() const { … }
void ExclusiveAccessBubbleViews::AnimationProgressed(
const gfx::Animation* animation) { … }
void ExclusiveAccessBubbleViews::AnimationEnded(
const gfx::Animation* animation) { … }
gfx::Rect ExclusiveAccessBubbleViews::GetPopupRect() const { … }
void ExclusiveAccessBubbleViews::Hide() { … }
void ExclusiveAccessBubbleViews::Show() { … }
void ExclusiveAccessBubbleViews::OnWidgetDestroyed(views::Widget* widget) { … }
void ExclusiveAccessBubbleViews::RunHideCallbackIfNeeded(
ExclusiveAccessBubbleHideReason reason) { … }