#include "chrome/browser/ui/views/page_info/permission_toggle_row_view.h"
#include <string>
#include <string_view>
#include "base/observer_list.h"
#include "base/strings/string_util.h"
#include "base/strings/utf_string_conversions.h"
#include "chrome/app/vector_icons/vector_icons.h"
#include "chrome/browser/file_system_access/file_system_access_features.h"
#include "chrome/browser/ui/color/chrome_color_id.h"
#include "chrome/browser/ui/layout_constants.h"
#include "chrome/browser/ui/page_info/chrome_page_info_ui_delegate.h"
#include "chrome/browser/ui/views/accessibility/non_accessible_image_view.h"
#include "chrome/browser/ui/views/chrome_layout_provider.h"
#include "chrome/browser/ui/views/page_info/page_info_navigation_handler.h"
#include "chrome/browser/ui/views/page_info/page_info_view_factory.h"
#include "components/content_settings/core/common/content_settings.h"
#include "components/content_settings/core/common/content_settings_types.h"
#include "components/page_info/page_info.h"
#include "components/permissions/features.h"
#include "components/permissions/permission_util.h"
#include "components/strings/grit/components_strings.h"
#include "components/url_formatter/elide_url.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/base/ui_base_features.h"
#include "ui/strings/grit/ui_strings.h"
#include "ui/views/accessibility/view_accessibility.h"
#include "ui/views/controls/button/image_button.h"
#include "ui/views/controls/button/image_button_factory.h"
#include "ui/views/controls/button/toggle_button.h"
#include "ui/views/controls/highlight_path_generator.h"
#include "ui/views/controls/styled_label.h"
#include "ui/views/style/typography.h"
#include "ui/views/view_class_properties.h"
DEFINE_CLASS_ELEMENT_IDENTIFIER_VALUE(PermissionToggleRowView,
kRowSubTitleCameraElementId);
DEFINE_CLASS_ELEMENT_IDENTIFIER_VALUE(PermissionToggleRowView,
kRowSubTitleMicrophoneElementId);
DEFINE_CLASS_ELEMENT_IDENTIFIER_VALUE(
PermissionToggleRowView,
kPermissionDisabledAtSystemLevelElementId);
SettingSource;
PermissionToggleRowView::PermissionToggleRowView(
ChromePageInfoUiDelegate* delegate,
PageInfoNavigationHandler* navigation_handler,
const PageInfo::PermissionInfo& permission,
bool should_show_spacer_view)
: … { … }
PermissionToggleRowView::~PermissionToggleRowView() = default;
void PermissionToggleRowView::AddObserver(
PermissionToggleRowViewObserver* observer) { … }
void PermissionToggleRowView::PermissionChanged() { … }
void PermissionToggleRowView::UpdatePermission(
const PageInfo::PermissionInfo& permission) { … }
void PermissionToggleRowView::OnToggleButtonPressed() { … }
void PermissionToggleRowView::InitForUserSource(
bool should_show_spacer_view,
const std::u16string& toggle_accessible_name) { … }
void PermissionToggleRowView::InitForManagedSource(
ChromePageInfoUiDelegate* delegate) { … }
void PermissionToggleRowView::UpdateUiOnPermissionChanged() { … }
void PermissionToggleRowView::ResetPermission() { … }
bool PermissionToggleRowView::GetToggleButtonStateForTesting() const { … }
BEGIN_METADATA(…)