| 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;
|
| +}
|
|
|