| Index: chrome/browser/doodle/doodle_service_factory.cc
|
| diff --git a/chrome/browser/doodle/doodle_service_factory.cc b/chrome/browser/doodle/doodle_service_factory.cc
|
| index 408f17af599f8fe0087f6025a8066aa14ed45569..3b7c27d8496afe19a166fe9de82c222070ff1279 100644
|
| --- a/chrome/browser/doodle/doodle_service_factory.cc
|
| +++ b/chrome/browser/doodle/doodle_service_factory.cc
|
| @@ -8,6 +8,7 @@
|
| #include <utility>
|
|
|
| #include "base/memory/ptr_util.h"
|
| +#include "base/metrics/field_trial_params.h"
|
| #include "base/time/default_clock.h"
|
| #include "base/time/default_tick_clock.h"
|
| #include "base/timer/timer.h"
|
| @@ -24,6 +25,12 @@
|
| #include "chrome/browser/android/chrome_feature_list.h"
|
| #endif
|
|
|
| +#if defined(OS_ANDROID)
|
| +namespace {
|
| +const char kOverrideUrlParam[] = "doodle_override_url";
|
| +} // namespace
|
| +#endif
|
| +
|
| // static
|
| DoodleServiceFactory* DoodleServiceFactory::GetInstance() {
|
| return base::Singleton<DoodleServiceFactory>::get();
|
| @@ -51,14 +58,28 @@ KeyedService* DoodleServiceFactory::BuildServiceInstanceFor(
|
| DCHECK(!profile->IsOffTheRecord());
|
|
|
| bool use_gray_background = false;
|
| + base::Optional<std::string> override_url;
|
| +
|
| #if defined(OS_ANDROID)
|
| + DCHECK(base::FeatureList::IsEnabled(chrome::android::kUseNewDoodleApi));
|
| +
|
| use_gray_background =
|
| !base::FeatureList::IsEnabled(chrome::android::kChromeHomeFeature);
|
| +
|
| + std::string override_url_str = base::GetFieldTrialParamValueByFeature(
|
| + chrome::android::kUseNewDoodleApi, kOverrideUrlParam);
|
| + // GetFieldTrialParamValueByFeature returns an empty string if the param is
|
| + // not set.
|
| + if (!override_url_str.empty()) {
|
| + override_url = override_url_str;
|
| + }
|
| #endif
|
| +
|
| auto fetcher = base::MakeUnique<doodle::DoodleFetcherImpl>(
|
| profile->GetRequestContext(),
|
| GoogleURLTrackerFactory::GetForProfile(profile),
|
| - base::Bind(&safe_json::SafeJsonParser::Parse), use_gray_background);
|
| + base::Bind(&safe_json::SafeJsonParser::Parse), use_gray_background,
|
| + override_url);
|
| return new doodle::DoodleService(
|
| profile->GetPrefs(), std::move(fetcher),
|
| base::MakeUnique<base::OneShotTimer>(),
|
|
|