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 2444cde5f1f754ff06d318667066884845801f65..f37679a55693404c4be770b863392d30c37d2faa 100644 |
--- a/chrome/browser/previews/previews_infobar_delegate.cc |
+++ b/chrome/browser/previews/previews_infobar_delegate.cc |
@@ -5,12 +5,15 @@ |
#include "chrome/browser/previews/previews_infobar_delegate.h" |
#include "base/metrics/histogram_macros.h" |
+#include "base/optional.h" |
#include "chrome/browser/android/android_theme_resources.h" |
#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/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" |
+#include "components/data_reduction_proxy/core/browser/data_reduction_proxy_service.h" |
#include "components/infobars/core/infobar.h" |
#include "content/public/browser/render_frame_host.h" |
#include "content/public/browser/web_contents.h" |
@@ -147,16 +150,25 @@ bool PreviewsInfoBarDelegate::LinkClicked(WindowOpenDisposition disposition) { |
content::WebContents* web_contents = |
InfoBarService::WebContentsFromInfoBar(infobar()); |
if (infobar_type_ == LITE_PAGE || infobar_type_ == LOFI) { |
+ auto* data_reduction_proxy_settings = |
+ DataReductionProxyChromeSettingsFactory::GetForBrowserContext( |
+ web_contents->GetBrowserContext()); |
+ data_reduction_proxy_settings->IncrementLoFiUserRequestsForImages(); |
+ PreviewsInfoBarTabHelper* infobar_tab_helper = |
+ PreviewsInfoBarTabHelper::FromWebContents(web_contents); |
+ if (infobar_tab_helper && |
+ infobar_tab_helper->committed_data_saver_navigation_id()) { |
+ data_reduction_proxy_settings->data_reduction_proxy_service() |
+ ->pingback_client() |
+ ->AddOptOut( |
+ infobar_tab_helper->committed_data_saver_navigation_id().value()); |
+ } |
+ |
if (infobar_type_ == LITE_PAGE) |
web_contents->GetController().Reload( |
content::ReloadType::DISABLE_LOFI_MODE, true); |
else if (infobar_type_ == LOFI) |
web_contents->ReloadLoFiImages(); |
- |
- auto* data_reduction_proxy_settings = |
- DataReductionProxyChromeSettingsFactory::GetForBrowserContext( |
- web_contents->GetBrowserContext()); |
- data_reduction_proxy_settings->IncrementLoFiUserRequestsForImages(); |
} else if (infobar_type_ == OFFLINE) { |
// Prevent LoFi and lite page modes from showing after reload. |
// TODO(ryansturm): rename DISABLE_LOFI_MODE to DISABLE_PREVIEWS. |