blob: f3f4734510df7874823d15b672d8d7003e7061fa [file] [log] [blame]
// Copyright 2025 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chrome/browser/ui/browser_window/public/desktop_browser_window_capabilities.h"
#include "chrome/browser/ui/browser_window.h"
#include "chrome/browser/ui/browser_window/public/browser_window_interface.h"
#include "chrome/browser/ui/browser_window/public/desktop_browser_window_capabilities_delegate.h"
// static
const char* DesktopBrowserWindowCapabilities::kDataKey =
"DesktopBrowserWindowCapabilities";
DesktopBrowserWindowCapabilities::DesktopBrowserWindowCapabilities(
DesktopBrowserWindowCapabilitiesDelegate* delegate,
BrowserWindow* browser_window,
UnownedUserDataHost& host)
: delegate_(delegate),
browser_window_(browser_window),
scoped_data_holder_(host, this) {}
DesktopBrowserWindowCapabilities::~DesktopBrowserWindowCapabilities() = default;
DesktopBrowserWindowCapabilities* DesktopBrowserWindowCapabilities::From(
BrowserWindowInterface* browser_window_interface) {
return ScopedUnownedUserData<DesktopBrowserWindowCapabilities>::Get(
browser_window_interface->GetUnownedUserDataHost());
}
const DesktopBrowserWindowCapabilities* DesktopBrowserWindowCapabilities::From(
const BrowserWindowInterface* browser_window_interface) {
return ScopedUnownedUserData<DesktopBrowserWindowCapabilities>::Get(
browser_window_interface->GetUnownedUserDataHost());
}
bool DesktopBrowserWindowCapabilities::IsVisibleOnScreen() const {
return browser_window_->IsVisibleOnScreen();
}
bool DesktopBrowserWindowCapabilities::IsAttemptingToCloseBrowser() const {
return delegate_->IsAttemptingToCloseBrowser();
}
void DesktopBrowserWindowCapabilities::SetWebContentsBlocked(
content::WebContents* web_contents,
bool blocked) {
return delegate_->SetWebContentsBlocked(web_contents, blocked);
}