#include "chrome/browser/ui/views/enterprise/management_toolbar_button.h"
#include <vector>
#include "base/check.h"
#include "base/feature_list.h"
#include "base/functional/bind.h"
#include "base/metrics/user_metrics.h"
#include "base/metrics/user_metrics_action.h"
#include "base/task/single_thread_task_runner.h"
#include "chrome/app/vector_icons/vector_icons.h"
#include "chrome/browser/browser_process.h"
#include "chrome/browser/enterprise/browser_management/browser_management_service.h"
#include "chrome/browser/enterprise/browser_management/management_service_factory.h"
#include "chrome/browser/enterprise/util/managed_browser_utils.h"
#include "chrome/browser/profiles/avatar_menu.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/profiles/profile_avatar_icon_util.h"
#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/browser_element_identifiers.h"
#include "chrome/browser/ui/layout_constants.h"
#include "chrome/browser/ui/managed_ui.h"
#include "chrome/browser/ui/ui_features.h"
#include "chrome/browser/ui/view_ids.h"
#include "chrome/browser/ui/views/chrome_layout_provider.h"
#include "chrome/browser/ui/views/frame/browser_view.h"
#include "chrome/common/pref_names.h"
#include "chrome/grit/generated_resources.h"
#include "components/feature_engagement/public/feature_constants.h"
#include "components/policy/core/common/management/management_service.h"
#include "components/prefs/pref_service.h"
#include "components/vector_icons/vector_icons.h"
#include "ui/base/l10n/l10n_util.h"
#include "ui/base/metadata/metadata_impl_macros.h"
#include "ui/gfx/canvas.h"
#include "ui/gfx/image/canvas_image_source.h"
#include "ui/gfx/image/image.h"
#include "ui/gfx/image/image_skia_operations.h"
#include "ui/views/accessibility/view_accessibility.h"
#include "ui/views/controls/button/button_controller.h"
#include "ui/views/controls/button/label_button_border.h"
#include "ui/views/view_class_properties.h"
namespace {
constexpr int kIconSizeForNonTouchUi = …;
constexpr int kButtonMaxWidth = …;
bool CanShowManagementToolbarButton(Profile* profile) { … }
}
ManagementToolbarButton::ManagementToolbarButton(BrowserView* browser_view,
Profile* profile)
: … { … }
ManagementToolbarButton::~ManagementToolbarButton() = default;
void ManagementToolbarButton::UpdateManagementInfo() { … }
void ManagementToolbarButton::UpdateIcon() { … }
void ManagementToolbarButton::Layout(PassKey) { … }
bool ManagementToolbarButton::ShouldPaintBorder() const { … }
void ManagementToolbarButton::UpdateText() { … }
void ManagementToolbarButton::OnThemeChanged() { … }
void ManagementToolbarButton::ButtonPressed() { … }
ui::ImageModel ManagementToolbarButton::GetIcon() const { … }
bool ManagementToolbarButton::IsLabelPresentAndVisible() const { … }
void ManagementToolbarButton::UpdateLayoutInsets() { … }
void ManagementToolbarButton::SetManagementLabel(
const std::string& management_label) { … }
void ManagementToolbarButton::SetManagementIcon(
const gfx::Image& management_icon) { … }
BEGIN_METADATA(…)