#include "chrome/browser/ui/views/file_system_access/file_system_access_usage_bubble_view.h"
#include <vector>
#include "base/containers/contains.h"
#include "base/i18n/message_formatter.h"
#include "base/i18n/unicodestring.h"
#include "base/memory/raw_ptr.h"
#include "base/metrics/user_metrics.h"
#include "chrome/app/vector_icons/vector_icons.h"
#include "chrome/browser/file_system_access/chrome_file_system_access_permission_context.h"
#include "chrome/browser/file_system_access/file_system_access_permission_context_factory.h"
#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/browser_finder.h"
#include "chrome/browser/ui/browser_window.h"
#include "chrome/browser/ui/file_system_access/file_system_access_ui_helpers.h"
#include "chrome/browser/ui/views/chrome_layout_provider.h"
#include "chrome/browser/ui/views/chrome_typography.h"
#include "chrome/browser/ui/views/file_system_access/file_system_access_views_helpers.h"
#include "chrome/browser/ui/views/frame/browser_view.h"
#include "chrome/browser/ui/views/frame/toolbar_button_provider.h"
#include "chrome/browser/ui/views/page_action/page_action_icon_view.h"
#include "chrome/grit/generated_resources.h"
#include "components/strings/grit/components_strings.h"
#include "components/vector_icons/vector_icons.h"
#include "content/public/browser/render_frame_host.h"
#include "content/public/browser/render_process_host.h"
#include "content/public/browser/web_contents.h"
#include "third_party/icu/source/common/unicode/unistr.h"
#include "third_party/icu/source/common/unicode/utypes.h"
#include "third_party/icu/source/i18n/unicode/listformatter.h"
#include "ui/base/l10n/l10n_util.h"
#include "ui/base/metadata/metadata_header_macros.h"
#include "ui/base/metadata/metadata_impl_macros.h"
#include "ui/base/mojom/dialog_button.mojom.h"
#include "ui/color/color_id.h"
#include "ui/color/color_provider.h"
#include "ui/gfx/paint_vector_icon.h"
#include "ui/views/controls/button/image_button.h"
#include "ui/views/controls/button/image_button_factory.h"
#include "ui/views/controls/button/label_button.h"
#include "ui/views/controls/button/md_text_button.h"
#include "ui/views/controls/label.h"
#include "ui/views/controls/scroll_view.h"
#include "ui/views/controls/table/table_view.h"
#include "ui/views/layout/box_layout.h"
namespace {
int ComputeHeadingMessageFromUsage(
const FileSystemAccessUsageBubbleView::Usage& usage,
base::FilePath* embedded_path) { … }
class CollapsibleListView : public views::View { … };
BEGIN_METADATA(…)
}
FileSystemAccessUsageBubbleView::Usage::Usage() = default;
FileSystemAccessUsageBubbleView::Usage::~Usage() = default;
FileSystemAccessUsageBubbleView::Usage::Usage(Usage&&) = default;
FileSystemAccessUsageBubbleView::Usage&
FileSystemAccessUsageBubbleView::Usage::operator=(Usage&&) = default;
FileSystemAccessUsageBubbleView::FilePathListModel::FilePathListModel(
std::vector<base::FilePath> files,
std::vector<base::FilePath> directories)
: … { … }
FileSystemAccessUsageBubbleView::FilePathListModel::~FilePathListModel() =
default;
size_t FileSystemAccessUsageBubbleView::FilePathListModel::RowCount() { … }
std::u16string FileSystemAccessUsageBubbleView::FilePathListModel::GetText(
size_t row,
int column_id) { … }
ui::ImageModel FileSystemAccessUsageBubbleView::FilePathListModel::GetIcon(
size_t row) { … }
std::u16string FileSystemAccessUsageBubbleView::FilePathListModel::GetTooltip(
size_t row) { … }
void FileSystemAccessUsageBubbleView::FilePathListModel::SetObserver(
ui::TableModelObserver*) { … }
FileSystemAccessUsageBubbleView* FileSystemAccessUsageBubbleView::bubble_ = …;
void FileSystemAccessUsageBubbleView::ShowBubble(
content::WebContents* web_contents,
const url::Origin& origin,
Usage usage) { … }
void FileSystemAccessUsageBubbleView::CloseCurrentBubble() { … }
FileSystemAccessUsageBubbleView* FileSystemAccessUsageBubbleView::GetBubble() { … }
FileSystemAccessUsageBubbleView::FileSystemAccessUsageBubbleView(
views::View* anchor_view,
content::WebContents* web_contents,
const url::Origin& origin,
Usage usage)
: … { … }
FileSystemAccessUsageBubbleView::~FileSystemAccessUsageBubbleView() { … }
std::u16string FileSystemAccessUsageBubbleView::GetAccessibleWindowTitle()
const { … }
bool FileSystemAccessUsageBubbleView::ShouldShowCloseButton() const { … }
void FileSystemAccessUsageBubbleView::Init() { … }
void FileSystemAccessUsageBubbleView::OnDialogCancelled() { … }
void FileSystemAccessUsageBubbleView::WindowClosing() { … }
void FileSystemAccessUsageBubbleView::CloseBubble() { … }
BEGIN_METADATA(…)