#include "chrome/browser/ui/views/commerce/price_tracking_email_dialog_view.h"
#include "base/functional/callback_helpers.h"
#include "base/metrics/user_metrics.h"
#include "base/strings/utf_string_conversions.h"
#include "chrome/browser/bookmarks/bookmark_model_factory.h"
#include "chrome/browser/feature_engagement/tracker_factory.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/signin/identity_manager_factory.h"
#include "chrome/browser/ui/bookmarks/bookmark_editor.h"
#include "chrome/browser/ui/chrome_pages.h"
#include "chrome/browser/ui/scoped_tabbed_browser_displayer.h"
#include "chrome/browser/ui/views/chrome_layout_provider.h"
#include "components/bookmarks/browser/bookmark_model.h"
#include "components/bookmarks/browser/bookmark_utils.h"
#include "components/commerce/core/pref_names.h"
#include "components/commerce/core/price_tracking_utils.h"
#include "components/feature_engagement/public/feature_constants.h"
#include "components/feature_engagement/public/tracker.h"
#include "components/prefs/pref_service.h"
#include "components/signin/public/base/consent_level.h"
#include "components/signin/public/identity_manager/account_info.h"
#include "components/signin/public/identity_manager/identity_manager.h"
#include "components/strings/grit/components_strings.h"
#include "content/public/browser/web_contents.h"
#include "content/public/common/referrer.h"
#include "ui/base/l10n/l10n_util.h"
#include "ui/base/metadata/metadata_impl_macros.h"
#include "ui/base/mojom/dialog_button.mojom.h"
#include "ui/base/window_open_disposition.h"
#include "ui/views/controls/styled_label.h"
#include "ui/views/layout/flex_layout_view.h"
#include "ui/views/view_class_properties.h"
#include "ui/views/view_tracker.h"
#include "ui/views/view_utils.h"
DEFINE_ELEMENT_IDENTIFIER_VALUE(kPriceTrackingEmailConsentDialogId);
namespace {
constexpr int kParagraphMargin = …;
const char kPriceTrackingHelpLink[] = …;
std::unique_ptr<views::StyledLabel> CreateBodyLabel(std::u16string& body_text) { … }
}
PriceTrackingEmailDialogView::PriceTrackingEmailDialogView(
View* anchor_view,
content::WebContents* web_contents,
Profile* profile)
: … { … }
PriceTrackingEmailDialogView::~PriceTrackingEmailDialogView() = default;
void PriceTrackingEmailDialogView::OpenHelpArticle() { … }
void PriceTrackingEmailDialogView::OpenSettings() { … }
void PriceTrackingEmailDialogView::OnAccepted() { … }
void PriceTrackingEmailDialogView::OnCanceled() { … }
void PriceTrackingEmailDialogView::OnClosed() { … }
BEGIN_METADATA(…)
PriceTrackingEmailDialogCoordinator::PriceTrackingEmailDialogCoordinator(
views::View* anchor_view)
: … { … }
PriceTrackingEmailDialogCoordinator::~PriceTrackingEmailDialogCoordinator() =
default;
void PriceTrackingEmailDialogCoordinator::OnWidgetDestroying(
views::Widget* widget) { … }
void PriceTrackingEmailDialogCoordinator::Show(
content::WebContents* web_contents,
Profile* profile,
base::OnceClosure on_dialog_closing_callback) { … }
void PriceTrackingEmailDialogCoordinator::Hide() { … }
PriceTrackingEmailDialogView* PriceTrackingEmailDialogCoordinator::GetBubble()
const { … }
bool PriceTrackingEmailDialogCoordinator::IsShowing() { … }