Commit bf3752d5 authored by Dan Harrington's avatar Dan Harrington Committed by Commit Bot

Feedv2: Terminate background task if not enabled

If the feature isn't enabled, make sure the background task
doesn't keep running.

Bug: 1044139
Change-Id: If1b9760c38570e3d278ebf078732859cdc941b45
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2191271
Commit-Queue: Dan H <harringtond@chromium.org>
Auto-Submit: Dan H <harringtond@chromium.org>
Reviewed-by: default avatarCarlos Knippschild <carlosk@chromium.org>
Cr-Commit-Position: refs/heads/master@{#769929}
parent 18acd38a
......@@ -7,9 +7,12 @@
#include <utility>
#include "base/check.h"
#include "base/feature_list.h"
#include "chrome/browser/android/feed/v2/feed_service_factory.h"
#include "chrome/browser/android/feed/v2/refresh_task_scheduler_impl.h"
#include "chrome/browser/profiles/profile.h"
#include "components/feed/core/v2/public/feed_service.h"
#include "components/feed/feed_feature_list.h"
namespace feed {
......@@ -47,6 +50,10 @@ bool BackgroundRefreshTask::OnStopTask(
// Kicks off the Feed refresh. Called only after the full browser is started.
void BackgroundRefreshTask::Run(background_task::TaskFinishedCallback callback,
content::BrowserContext* browser_context) {
if (!FeedService::IsEnabled(
*Profile::FromBrowserContext(browser_context)->GetPrefs()))
return std::move(callback).Run(false);
FeedService* service =
FeedServiceFactory::GetForBrowserContext(browser_context);
if (!service)
......
......@@ -9,14 +9,17 @@
#include "base/time/default_clock.h"
#include "base/time/default_tick_clock.h"
#include "build/build_config.h"
#include "components/feed/core/shared_prefs/pref_names.h"
#include "components/feed/core/v2/feed_network_impl.h"
#include "components/feed/core/v2/feed_store.h"
#include "components/feed/core/v2/feed_stream.h"
#include "components/feed/core/v2/metrics_reporter.h"
#include "components/feed/core/v2/refresh_task_scheduler.h"
#include "components/feed/feed_feature_list.h"
#include "components/history/core/browser/history_service.h"
#include "components/history/core/browser/history_service_observer.h"
#include "components/history/core/browser/history_types.h"
#include "components/prefs/pref_service.h"
#include "net/base/network_change_notifier.h"
#include "services/network/public/cpp/shared_url_loader_factory.h"
......@@ -174,6 +177,12 @@ void FeedService::ClearCachedData() {
stream_->OnCacheDataCleared();
}
// static
bool FeedService::IsEnabled(const PrefService& pref_service) {
return base::FeatureList::IsEnabled(feed::kInterestFeedV2) &&
pref_service.GetBoolean(feed::prefs::kEnableSnippets);
}
#if defined(OS_ANDROID)
void FeedService::OnApplicationStateChange(
base::android::ApplicationState state) {
......
......@@ -90,6 +90,9 @@ class FeedService : public KeyedService {
return refresh_task_scheduler_.get();
}
// Whether Feedv2 is enabled. If false, the FeedService should not be created.
static bool IsEnabled(const PrefService& pref_service);
private:
class StreamDelegateImpl;
class NetworkDelegateImpl;
......
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