#include "chrome/browser/ui/views/download/bubble/download_bubble_contents_view.h"
#include <utility>
#include "chrome/browser/browser_process.h"
#include "chrome/browser/download/bubble/download_bubble_prefs.h"
#include "chrome/browser/download/bubble/download_bubble_ui_controller.h"
#include "chrome/browser/download/chrome_download_manager_delegate.h"
#include "chrome/browser/download/download_core_service.h"
#include "chrome/browser/download/download_core_service_factory.h"
#include "chrome/browser/download/download_item_warning_data.h"
#include "chrome/browser/safe_browsing/download_protection/download_protection_service.h"
#include "chrome/browser/safe_browsing/safe_browsing_service.h"
#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/browser_element_identifiers.h"
#include "chrome/browser/ui/download/download_bubble_info.h"
#include "chrome/browser/ui/views/download/bubble/download_bubble_partial_view.h"
#include "chrome/browser/ui/views/download/bubble/download_bubble_primary_view.h"
#include "chrome/browser/ui/views/download/bubble/download_bubble_row_list_view.h"
#include "chrome/browser/ui/views/download/bubble/download_bubble_row_view.h"
#include "chrome/browser/ui/views/download/bubble/download_bubble_security_view.h"
#include "chrome/browser/ui/views/download/bubble/download_dialog_view.h"
#include "chrome/browser/ui/views/download/bubble/download_toolbar_button_view.h"
#include "components/offline_items_collection/core/offline_item.h"
#include "components/safe_browsing/core/common/proto/csd.pb.h"
#include "content/public/browser/download_item_utils.h"
#include "ui/base/metadata/metadata_impl_macros.h"
#include "ui/views/layout/flex_layout.h"
#include "ui/views/layout/layout_types.h"
#include "ui/views/view.h"
#include "ui/views/view_class_properties.h"
ContentId;
namespace {
void MaybeSendDownloadReport(content::BrowserContext* browser_context,
download::DownloadItem* download) { … }
}
DownloadBubbleContentsView::DownloadBubbleContentsView(
base::WeakPtr<Browser> browser,
base::WeakPtr<DownloadBubbleUIController> bubble_controller,
base::WeakPtr<DownloadBubbleNavigationHandler> navigation_handler,
bool primary_view_is_partial_view,
std::unique_ptr<DownloadBubbleContentsViewInfo> info,
views::BubbleDialogDelegate* bubble_delegate)
: … { … }
DownloadBubbleContentsView::~DownloadBubbleContentsView() { … }
DownloadBubbleRowView* DownloadBubbleContentsView::GetPrimaryViewRowForTesting(
size_t index) { … }
DownloadBubbleRowView* DownloadBubbleContentsView::ShowPrimaryPage(
std::optional<offline_items_collection::ContentId> id) { … }
void DownloadBubbleContentsView::ShowSecurityPage(const ContentId& id) { … }
DownloadBubbleContentsView::Page DownloadBubbleContentsView::VisiblePage()
const { … }
void DownloadBubbleContentsView::InitializeSecurityView(const ContentId& id) { … }
void DownloadBubbleContentsView::ProcessSecuritySubpageButtonPress(
const offline_items_collection::ContentId& id,
DownloadCommands::Command command) { … }
void DownloadBubbleContentsView::AddSecuritySubpageWarningActionEvent(
const offline_items_collection::ContentId& id,
DownloadItemWarningData::WarningAction action) { … }
void DownloadBubbleContentsView::ProcessDeepScanPress(
const ContentId& id,
DownloadItemWarningData::DeepScanTrigger trigger,
base::optional_ref<const std::string> password) { … }
void DownloadBubbleContentsView::ProcessLocalDecryptionPress(
const offline_items_collection::ContentId& id,
base::optional_ref<const std::string> password) { … }
void DownloadBubbleContentsView::ProcessLocalPasswordInProgressClick(
const offline_items_collection::ContentId& id,
DownloadCommands::Command command) { … }
bool DownloadBubbleContentsView::IsEncryptedArchive(const ContentId& id) { … }
bool DownloadBubbleContentsView::HasPreviousIncorrectPassword(
const ContentId& id) { … }
DownloadUIModel* DownloadBubbleContentsView::GetDownloadModel(
const ContentId& id) { … }
BEGIN_METADATA(…)