Commit 8de2a7ed authored by Michael Crouse's avatar Michael Crouse Committed by Commit Bot

Previews - Only construct Previews Opt Guide for DataSaver Users.

This adds an additional check to prevent non-DataSaver users from
registering optimization types with the the Optimziation Guide
even though they would not be used within Previews code.


Bug: 1042429
Change-Id: Ibf6073aafcdde35939122f0b043b0c5b53b573bc
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2097558
Commit-Queue: Michael Crouse <mcrouse@chromium.org>
Reviewed-by: default avatarSophie Chang <sophiechang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#749224}
parent 32f64028
......@@ -197,7 +197,7 @@ class OptimizationGuideKeyedServiceBrowserTest
OptimizationGuideKeyedServiceFactory::GetForProfile(browser()->profile())
->RegisterOptimizationTypesAndTargets(
{optimization_guide::proto::NOSCRIPT},
/*optimization_targets=*/{});
{optimization_guide::proto::OPTIMIZATION_TARGET_PAINFUL_PAGE_LOAD});
// Set up an OptimizationGuideKeyedService consumer.
consumer_.reset(new OptimizationGuideConsumerWebContentsObserver(
......
......@@ -255,6 +255,7 @@ class PredictionManagerBrowserTest : public InProcessBrowserTest {
}
void SetUpCommandLine(base::CommandLine* cmd) override {
cmd->AppendSwitch("enable-spdy-proxy-auth");
cmd->AppendSwitch(optimization_guide::switches::
kFetchModelsAndHostModelFeaturesOverrideTimer);
......
......@@ -439,3 +439,34 @@ IN_PROC_BROWSER_TEST_P(PreviewsNoScriptBrowserTest,
EXPECT_FALSE(noscript_css_requested());
}
}
// This test class disables DataSaver.
class PreviewsDataSaverDisabledBrowserTest
: public PreviewsNoScriptBrowserTest {
public:
PreviewsDataSaverDisabledBrowserTest() = default;
~PreviewsDataSaverDisabledBrowserTest() override = default;
void SetUpCommandLine(base::CommandLine* cmd) override {
PreviewsNoScriptBrowserTest::SetUpCommandLine(cmd);
cmd->RemoveSwitch("enable-spdy-proxy-auth");
}
};
INSTANTIATE_TEST_SUITE_P(ShouldDisablePreview,
PreviewsDataSaverDisabledBrowserTest,
::testing::Bool());
IN_PROC_BROWSER_TEST_P(PreviewsDataSaverDisabledBrowserTest,
NoPreviewWithDataSaverDisabled) {
base::HistogramTester histogram_tester;
ui_test_utils::NavigateToURL(browser(), https_url());
// Verify loaded noscript tag triggered js file and not css file.
EXPECT_TRUE(noscript_js_requested());
EXPECT_FALSE(noscript_css_requested());
histogram_tester.ExpectTotalCount("OptimizationGuide.ApplyDecision.NoScript",
0);
}
......@@ -21,6 +21,7 @@
#include "chrome/common/chrome_constants.h"
#include "components/blacklist/opt_out_blacklist/opt_out_store.h"
#include "components/blacklist/opt_out_blacklist/sql/opt_out_store_sql.h"
#include "components/data_reduction_proxy/core/browser/data_reduction_proxy_settings.h"
#include "components/data_reduction_proxy/core/common/data_reduction_proxy_features.h"
#include "components/data_reduction_proxy/core/common/data_reduction_proxy_params.h"
#include "components/previews/content/previews_decider_impl.h"
......@@ -197,7 +198,10 @@ void PreviewsService::Initialize(
std::unique_ptr<previews::PreviewsOptimizationGuide> previews_opt_guide;
OptimizationGuideKeyedService* optimization_guide_keyed_service =
OptimizationGuideKeyedServiceFactory::GetForProfile(profile);
if (optimization_guide_keyed_service) {
if (optimization_guide_keyed_service &&
data_reduction_proxy::DataReductionProxySettings::
IsDataSaverEnabledByUser(profile->IsOffTheRecord(),
profile->GetPrefs())) {
previews_opt_guide = std::make_unique<previews::PreviewsOptimizationGuide>(
optimization_guide_keyed_service);
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment