// Copyright 2021 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef CHROME_BROWSER_UI_VIEWS_PAGE_INFO_PAGE_INFO_PERMISSION_CONTENT_VIEW_H_ #define CHROME_BROWSER_UI_VIEWS_PAGE_INFO_PAGE_INFO_PERMISSION_CONTENT_VIEW_H_ #include "base/memory/raw_ptr.h" #include "base/scoped_observation.h" #include "components/page_info/page_info_ui.h" #include "ui/base/metadata/metadata_header_macros.h" #include "ui/views/view.h" #if !BUILDFLAG(IS_CHROMEOS) #include "chrome/browser/ui/views/media_preview/page_info_previews_coordinator.h" #include "components/media_effects/media_device_info.h" #endif class ChromePageInfoUiDelegate; class NonAccessibleImageView; namespace views { class Checkbox; class Label; class ToggleButton; } // namespace views // The view that is used as a content view of the permissions subpages in page // info. It contains information about the permission (icon, title, state label) // and controls to change the permission state (toggle, checkbox and manage // button). // *---------------------------------------------------------------* // | Icon | Title | Toggle | // | | State label | | // | | | | // | | "Remember this setting" checkbox | | // |---------------------------------------------------------------| // | Manage button | // *---------------------------------------------------------------* // The view for the File System permission subpage additionally contains a // scrollable panel listing the files and/or directories with granted, // active permissions. // *---------------------------------------------------------------* // | Icon | Title | Toggle | // | | State label | | // | |--------------------------------------------------------| // | | Scrollable panel of files / directories | // | | | // | | "Remember this setting" checkbox | // |---------------------------------------------------------------| // | Manage button | // *---------------------------------------------------------------* class PageInfoPermissionContentView : public views::View, #if !BUILDFLAG(IS_CHROMEOS) public media_effects::MediaDeviceInfo::Observer, #endif public PageInfoUI { … }; #endif // CHROME_BROWSER_UI_VIEWS_PAGE_INFO_PAGE_INFO_PERMISSION_CONTENT_VIEW_H_