| Index: chrome/browser/previews/previews_infobar_delegate.cc
|
| diff --git a/chrome/browser/previews/previews_infobar_delegate.cc b/chrome/browser/previews/previews_infobar_delegate.cc
|
| index 110f20885eda515966c239a227430ac53c795f2d..58d1096b020b74772aa4a019a5590186cef6cbd4 100644
|
| --- a/chrome/browser/previews/previews_infobar_delegate.cc
|
| +++ b/chrome/browser/previews/previews_infobar_delegate.cc
|
| @@ -24,6 +24,9 @@
|
| #include "components/infobars/core/infobar.h"
|
| #include "components/network_time/network_time_tracker.h"
|
| #include "components/previews/core/previews_features.h"
|
| +#include "components/ukm/public/ukm_entry_builder.h"
|
| +#include "components/ukm/public/ukm_recorder.h"
|
| +#include "components/ukm/ukm_source.h"
|
| #include "content/public/browser/render_frame_host.h"
|
| #include "content/public/browser/web_contents.h"
|
| #include "ui/base/l10n/l10n_util.h"
|
| @@ -34,6 +37,9 @@
|
|
|
| namespace {
|
|
|
| +const char kPreviewsName[] = "Previews";
|
| +const char kPreviewsOptOut[] = "opt_out";
|
| +
|
| void RecordPreviewsInfoBarAction(
|
| previews::PreviewsType previews_type,
|
| PreviewsInfoBarDelegate::PreviewsInfoBarAction action) {
|
| @@ -225,6 +231,10 @@ bool PreviewsInfoBarDelegate::LinkClicked(WindowOpenDisposition disposition) {
|
|
|
| ReportPingbackInformation(web_contents);
|
|
|
| + // TODO(ryansturm): Add support for Offline Previews in PLM UKM.
|
| + if (previews_type_ != previews::PreviewsType::OFFLINE)
|
| + RecordUKMOptOut();
|
| +
|
| if ((previews_type_ == previews::PreviewsType::LITE_PAGE ||
|
| previews_type_ == previews::PreviewsType::LOFI) &&
|
| !data_reduction_proxy::params::IsBlackListEnabledForServerPreviews()) {
|
| @@ -282,3 +292,18 @@ base::string16 PreviewsInfoBarDelegate::GetTimestampText() const {
|
| base::IntToString16(staleness_in_minutes / 60));
|
| }
|
| }
|
| +
|
| +void PreviewsInfoBarDelegate::RecordUKMOptOut() {
|
| + content::WebContents* web_contents =
|
| + InfoBarService::WebContentsFromInfoBar(infobar());
|
| + PreviewsInfoBarTabHelper* infobar_tab_helper =
|
| + PreviewsInfoBarTabHelper::FromWebContents(web_contents);
|
| + if (!infobar_tab_helper || !infobar_tab_helper->source_id()) {
|
| + return;
|
| + }
|
| +
|
| + ukm::UkmRecorder* ukm_recorder = g_browser_process->ukm_recorder();
|
| + std::unique_ptr<ukm::UkmEntryBuilder> builder = ukm_recorder->GetEntryBuilder(
|
| + infobar_tab_helper->source_id().value(), kPreviewsName);
|
| + builder->AddMetric(kPreviewsOptOut, true);
|
| +}
|
|
|