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 12562827293755dc3d09936a30ada6c576b00021..5a92b4ce41491d0cb6fa65a796b21286350f53a2 100644 |
--- a/chrome/browser/previews/previews_infobar_delegate.cc |
+++ b/chrome/browser/previews/previews_infobar_delegate.cc |
@@ -17,6 +17,7 @@ |
#include "chrome/browser/infobars/infobar_service.h" |
#include "chrome/browser/net/spdyproxy/data_reduction_proxy_chrome_settings.h" |
#include "chrome/browser/net/spdyproxy/data_reduction_proxy_chrome_settings_factory.h" |
+#include "chrome/browser/page_load_metrics/metrics_web_contents_observer.h" |
#include "chrome/browser/previews/previews_infobar_tab_helper.h" |
#include "chrome/grit/generated_resources.h" |
#include "components/data_reduction_proxy/core/browser/data_reduction_proxy_pingback_client.h" |
@@ -35,6 +36,8 @@ |
namespace { |
+const void* const kOptOutEventKey = 0; |
+ |
const char kMinStalenessParamName[] = "min_staleness_in_minutes"; |
const char kMaxStalenessParamName[] = "max_staleness_in_minutes"; |
const int kMinStalenessParamDefaultValue = 5; |
@@ -107,6 +110,17 @@ void ReloadWithoutPreviews(previews::PreviewsType previews_type, |
} |
} |
+void InformPLMOfOptOut(content::WebContents* web_contents) { |
+ page_load_metrics::MetricsWebContentsObserver* metrics_web_contents_observer = |
+ page_load_metrics::MetricsWebContentsObserver::FromWebContents( |
+ web_contents); |
+ if (!metrics_web_contents_observer) |
+ return; |
+ |
+ metrics_web_contents_observer->BroadcastEventToObservers( |
+ PreviewsInfoBarDelegate::OptOutEventKey()); |
+} |
+ |
} // namespace |
PreviewsInfoBarDelegate::~PreviewsInfoBarDelegate() { |
@@ -240,6 +254,8 @@ bool PreviewsInfoBarDelegate::LinkClicked(WindowOpenDisposition disposition) { |
ReportPingbackInformation(web_contents); |
+ InformPLMOfOptOut(web_contents); |
+ |
if ((previews_type_ == previews::PreviewsType::LITE_PAGE || |
previews_type_ == previews::PreviewsType::LOFI) && |
!data_reduction_proxy::params::IsBlackListEnabledForServerPreviews()) { |
@@ -318,3 +334,8 @@ base::string16 PreviewsInfoBarDelegate::GetTimestampText() const { |
base::IntToString16(staleness_in_minutes / 60)); |
} |
} |
+ |
+// static |
+const void* PreviewsInfoBarDelegate::OptOutEventKey() { |
+ return &kOptOutEventKey; |
+} |