#include "chrome/browser/ui/views/page_info/page_info_permission_content_view.h"
#include "base/debug/dump_without_crashing.h"
#include "base/feature_list.h"
#include "base/metrics/histogram_functions.h"
#include "base/ranges/algorithm.h"
#include "base/strings/string_number_conversions.h"
#include "base/strings/utf_string_conversions.h"
#include "chrome/browser/file_system_access/chrome_file_system_access_permission_context.h"
#include "chrome/browser/file_system_access/file_system_access_features.h"
#include "chrome/browser/file_system_access/file_system_access_permission_context_factory.h"
#include "chrome/browser/ui/chrome_pages.h"
#include "chrome/browser/ui/layout_constants.h"
#include "chrome/browser/ui/page_info/chrome_page_info_ui_delegate.h"
#include "chrome/browser/ui/ui_features.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/controls/rich_hover_button.h"
#include "chrome/browser/ui/views/file_system_access/file_system_access_scroll_panel.h"
#include "chrome/browser/ui/views/page_info/page_info_view_factory.h"
#include "components/page_info/page_info.h"
#include "components/permissions/permission_util.h"
#include "components/strings/grit/components_strings.h"
#include "content/public/browser/web_contents.h"
#include "third_party/blink/public/common/features.h"
#include "ui/base/l10n/l10n_util.h"
#include "ui/base/metadata/metadata_impl_macros.h"
#include "ui/views/accessibility/view_accessibility.h"
#include "ui/views/controls/button/checkbox.h"
#include "ui/views/controls/button/toggle_button.h"
#include "ui/views/controls/label.h"
#include "ui/views/controls/separator.h"
#include "ui/views/layout/flex_layout.h"
#if !BUILDFLAG(IS_CHROMEOS)
#include "chrome/browser/ui/views/media_preview/media_preview_feature.h"
#endif
bool UseUpdatedFileSystemPersistentPermissionUI() { … }
PageInfoPermissionContentView::PageInfoPermissionContentView(
PageInfo* presenter,
ChromePageInfoUiDelegate* ui_delegate,
ContentSettingsType type,
content::WebContents* web_contents)
: … { … }
PageInfoPermissionContentView::~PageInfoPermissionContentView() { … }
void PageInfoPermissionContentView::SetPermissionInfo(
const PermissionInfoList& permission_info_list,
ChosenObjectInfoList chosen_object_info_list) { … }
void PageInfoPermissionContentView::ChildPreferredSizeChanged(
views::View* child) { … }
void PageInfoPermissionContentView::OnToggleButtonPressed() { … }
void PageInfoPermissionContentView::OnRememberSettingPressed() { … }
void PageInfoPermissionContentView::PermissionChanged() { … }
#if !BUILDFLAG(IS_CHROMEOS)
void PageInfoPermissionContentView::OnAudioDevicesChanged(
const std::optional<std::vector<media::AudioDeviceDescription>>&
device_infos) { … }
void PageInfoPermissionContentView::OnVideoDevicesChanged(
const std::optional<std::vector<media::VideoCaptureDeviceInfo>>&
device_infos) { … }
void PageInfoPermissionContentView::SetTitleTextAndTooltip(
int message_id,
const std::vector<std::string>& device_names) { … }
#endif
void PageInfoPermissionContentView::ToggleFileSystemExtendedPermissions() { … }
void PageInfoPermissionContentView::MaybeAddMediaPreview(
content::WebContents* web_contents,
views::View& preceding_separator) { … }
BEGIN_METADATA(…)