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 @@ ...@@ -7,9 +7,12 @@
#include <utility> #include <utility>
#include "base/check.h" #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/feed_service_factory.h"
#include "chrome/browser/android/feed/v2/refresh_task_scheduler_impl.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/core/v2/public/feed_service.h"
#include "components/feed/feed_feature_list.h"
namespace feed { namespace feed {
...@@ -47,6 +50,10 @@ bool BackgroundRefreshTask::OnStopTask( ...@@ -47,6 +50,10 @@ bool BackgroundRefreshTask::OnStopTask(
// Kicks off the Feed refresh. Called only after the full browser is started. // Kicks off the Feed refresh. Called only after the full browser is started.
void BackgroundRefreshTask::Run(background_task::TaskFinishedCallback callback, void BackgroundRefreshTask::Run(background_task::TaskFinishedCallback callback,
content::BrowserContext* browser_context) { content::BrowserContext* browser_context) {
if (!FeedService::IsEnabled(
*Profile::FromBrowserContext(browser_context)->GetPrefs()))
return std::move(callback).Run(false);
FeedService* service = FeedService* service =
FeedServiceFactory::GetForBrowserContext(browser_context); FeedServiceFactory::GetForBrowserContext(browser_context);
if (!service) if (!service)
......
...@@ -9,14 +9,17 @@ ...@@ -9,14 +9,17 @@
#include "base/time/default_clock.h" #include "base/time/default_clock.h"
#include "base/time/default_tick_clock.h" #include "base/time/default_tick_clock.h"
#include "build/build_config.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_network_impl.h"
#include "components/feed/core/v2/feed_store.h" #include "components/feed/core/v2/feed_store.h"
#include "components/feed/core/v2/feed_stream.h" #include "components/feed/core/v2/feed_stream.h"
#include "components/feed/core/v2/metrics_reporter.h" #include "components/feed/core/v2/metrics_reporter.h"
#include "components/feed/core/v2/refresh_task_scheduler.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.h"
#include "components/history/core/browser/history_service_observer.h" #include "components/history/core/browser/history_service_observer.h"
#include "components/history/core/browser/history_types.h" #include "components/history/core/browser/history_types.h"
#include "components/prefs/pref_service.h"
#include "net/base/network_change_notifier.h" #include "net/base/network_change_notifier.h"
#include "services/network/public/cpp/shared_url_loader_factory.h" #include "services/network/public/cpp/shared_url_loader_factory.h"
...@@ -174,6 +177,12 @@ void FeedService::ClearCachedData() { ...@@ -174,6 +177,12 @@ void FeedService::ClearCachedData() {
stream_->OnCacheDataCleared(); 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) #if defined(OS_ANDROID)
void FeedService::OnApplicationStateChange( void FeedService::OnApplicationStateChange(
base::android::ApplicationState state) { base::android::ApplicationState state) {
......
...@@ -90,6 +90,9 @@ class FeedService : public KeyedService { ...@@ -90,6 +90,9 @@ class FeedService : public KeyedService {
return refresh_task_scheduler_.get(); 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: private:
class StreamDelegateImpl; class StreamDelegateImpl;
class NetworkDelegateImpl; 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