Commit 1a8e6069 authored by Ryan Sturm's avatar Ryan Sturm Committed by Commit Bot

Adding alt config to chrome://interventions-internals

Change-Id: I78dbd167d319a24c25c9f1631f2adbaa2cdd64ce

BUG=894996

Change-Id: I78dbd167d319a24c25c9f1631f2adbaa2cdd64ce
Reviewed-on: https://chromium-review.googlesource.com/c/1271675
Commit-Queue: Ryan Sturm <ryansturm@chromium.org>
Reviewed-by: default avatarTarun Bansal <tbansal@chromium.org>
Cr-Commit-Position: refs/heads/master@{#599754}
parent 8c833c3c
......@@ -15,6 +15,7 @@
#include "chrome/browser/browser_process.h"
#include "chrome/browser/flag_descriptions.h"
#include "chrome/common/chrome_switches.h"
#include "components/data_reduction_proxy/core/common/data_reduction_proxy_switches.h"
#include "components/previews/core/previews_experiments.h"
#include "components/previews/core/previews_switches.h"
#include "net/nqe/network_quality_estimator_params.h"
......@@ -54,6 +55,8 @@ const char kNoScriptFlagHtmlId[] = "noscript-flag";
const char kResourceLoadingHintsFlagHtmlId[] = "resource-loading-hints-flag";
const char kOfflinePageFlagHtmlId[] = "offline-page-flag";
const char kIgnorePreviewsBlacklistFlagHtmlId[] = "ignore-previews-blacklist";
const char kDataSaverAltConfigHtmlId[] =
"data-reduction-proxy-server-experiment";
// Links to flags in chrome://flags.
// TODO(thanhdle): Refactor into vector of structs. crbug.com/787010.
......@@ -65,6 +68,8 @@ const char kResourceLoadingHintsFlagLink[] =
const char kOfflinePageFlagLink[] = "chrome://flags/#enable-offline-previews";
const char kIgnorePreviewsBlacklistLink[] =
"chrome://flags/#ignore-previews-blacklist";
const char kDataSaverAltConfigLink[] =
"chrome://flags/#enable-data-reduction-proxy-server-experiment";
const char kDefaultFlagValue[] = "Default";
......@@ -293,5 +298,17 @@ void InterventionsInternalsPageHandler::GetPreviewsFlagsDetails(
offline_page_status->htmlId = kOfflinePageFlagHtmlId;
flags.push_back(std::move(offline_page_status));
auto alt_config_status = mojom::PreviewsFlag::New();
alt_config_status->description =
flag_descriptions::kEnableDataReductionProxyServerExperimentDescription;
alt_config_status->link = kDataSaverAltConfigLink;
alt_config_status->value =
base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII(
data_reduction_proxy::switches::kDataReductionProxyExperiment);
if (alt_config_status->value.empty())
alt_config_status->value = kDefaultFlagValue;
alt_config_status->htmlId = kDataSaverAltConfigHtmlId;
flags.push_back(std::move(alt_config_status));
std::move(callback).Run(std::move(flags));
}
......@@ -30,6 +30,7 @@
#include "chrome/test/base/testing_profile.h"
#include "chrome/test/base/testing_profile_manager.h"
#include "components/blacklist/opt_out_blacklist/opt_out_blacklist_data.h"
#include "components/data_reduction_proxy/core/common/data_reduction_proxy_switches.h"
#include "components/previews/content/previews_decider_impl.h"
#include "components/previews/content/previews_ui_service.h"
#include "components/previews/core/previews_features.h"
......@@ -69,6 +70,8 @@ constexpr char kNoScriptFlagHtmlId[] = "noscript-flag";
constexpr char kResourceLoadingHintsFlagHtmlId[] =
"resource-loading-hints-flag";
constexpr char kOfflinePageFlagHtmlId[] = "offline-page-flag";
constexpr char kDataSaverAltConfigHtmlId[] =
"data-reduction-proxy-server-experiment";
// Links to flags in chrome://flags.
constexpr char kNoScriptFlagLink[] = "chrome://flags/#enable-noscript-previews";
......@@ -80,6 +83,8 @@ constexpr char kIgnorePreviewsBlacklistLink[] =
"chrome://flags/#ignore-previews-blacklist";
constexpr char kOfflinePageFlagLink[] =
"chrome://flags/#enable-offline-previews";
constexpr char kDataSaverAltConfigLink[] =
"chrome://flags/#enable-data-reduction-proxy-server-experiment";
// Flag features names.
constexpr char kNoScriptFeatureName[] = "NoScriptPreviews";
......@@ -447,7 +452,7 @@ TEST_F(InterventionsInternalsPageHandlerTest, GetFlagsCount) {
page_handler_->GetPreviewsFlagsDetails(
base::BindOnce(&MockGetPreviewsFlagsCallback));
constexpr size_t expected = 6;
constexpr size_t expected = 7;
EXPECT_EQ(expected, passed_in_flags.size());
}
......@@ -642,6 +647,39 @@ TEST_F(InterventionsInternalsPageHandlerTest,
resource_loading_hints_flag->second->link);
}
TEST_F(InterventionsInternalsPageHandlerTest, GetFlagsAltConfigCustomValue) {
base::test::ScopedCommandLine scoped_command_line;
base::CommandLine* command_line = scoped_command_line.GetProcessCommandLine();
std::string flag_value = "alt-porg";
command_line->AppendSwitchASCII(
data_reduction_proxy::switches::kDataReductionProxyExperiment,
flag_value);
page_handler_->GetPreviewsFlagsDetails(
base::BindOnce(&MockGetPreviewsFlagsCallback));
auto alt_config_flag = passed_in_flags.find(kDataSaverAltConfigHtmlId);
ASSERT_NE(passed_in_flags.end(), alt_config_flag);
EXPECT_EQ(
flag_descriptions::kEnableDataReductionProxyServerExperimentDescription,
alt_config_flag->second->description);
EXPECT_EQ(flag_value, alt_config_flag->second->value);
EXPECT_EQ(kDataSaverAltConfigLink, alt_config_flag->second->link);
}
TEST_F(InterventionsInternalsPageHandlerTest, GetFlagsAltConfigCustomDefault) {
page_handler_->GetPreviewsFlagsDetails(
base::BindOnce(&MockGetPreviewsFlagsCallback));
auto alt_config_flag = passed_in_flags.find(kDataSaverAltConfigHtmlId);
ASSERT_NE(passed_in_flags.end(), alt_config_flag);
EXPECT_EQ(
flag_descriptions::kEnableDataReductionProxyServerExperimentDescription,
alt_config_flag->second->description);
EXPECT_EQ(kDefaultFlagValue, alt_config_flag->second->value);
EXPECT_EQ(kDataSaverAltConfigLink, alt_config_flag->second->link);
}
#if defined(OS_ANDROID)
#define TestAndroid(x) x
#else
......
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