Commit ede813ae authored by Xing Liu's avatar Xing Liu Committed by Commit Bot

Read later: Use BrowserContextKeyedServiceFactory for Android glue.

ReadingListManagerFactory should be BrowserContextKeyedServiceFactory
instead of SimpleKeyedServiceFactory, since reduced mode won't work
for sync and ReadingListModel.

Also we build components/reading_list to Android APK, which causes
android binary size increase.

Bug: 1128074
Binary-Size: Size increase is unavoidable (see above).
Change-Id: If5393fa5dfb133b35c1ff1b17bf709f31f8815ea
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2441204
Commit-Queue: Xing Liu <xingliu@chromium.org>
Reviewed-by: default avatarDavid Trainor <dtrainor@chromium.org>
Reviewed-by: default avatarBrandon Wylie <wylieb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#813899}
parent ce85ff61
......@@ -6,13 +6,11 @@
#include <memory>
#include "chrome/browser/profiles/profile_key.h"
#include "chrome/browser/profiles/profile_manager.h"
#include "chrome/browser/reading_list/android/empty_reading_list_manager.h"
#include "chrome/browser/reading_list/android/reading_list_manager_impl.h"
#include "chrome/browser/ui/read_later/reading_list_model_factory.h"
#include "chrome/browser/ui/ui_features.h"
#include "components/keyed_service/core/simple_dependency_manager.h"
#include "components/keyed_service/content/browser_context_dependency_manager.h"
// static
ReadingListManagerFactory* ReadingListManagerFactory::GetInstance() {
......@@ -20,29 +18,27 @@ ReadingListManagerFactory* ReadingListManagerFactory::GetInstance() {
}
// static
ReadingListManager* ReadingListManagerFactory::GetForKey(
SimpleFactoryKey* key) {
ReadingListManager* ReadingListManagerFactory::GetForBrowserContext(
content::BrowserContext* context) {
return static_cast<ReadingListManager*>(
GetInstance()->GetServiceForKey(key, /*create=*/true));
GetInstance()->GetServiceForBrowserContext(context, /*create=*/true));
}
ReadingListManagerFactory::ReadingListManagerFactory()
: SimpleKeyedServiceFactory("ReadingListManager",
SimpleDependencyManager::GetInstance()) {
: BrowserContextKeyedServiceFactory(
"ReadingListManager",
BrowserContextDependencyManager::GetInstance()) {
DependsOn(ReadingListModelFactory::GetInstance());
}
ReadingListManagerFactory::~ReadingListManagerFactory() = default;
std::unique_ptr<KeyedService>
ReadingListManagerFactory::BuildServiceInstanceFor(
SimpleFactoryKey* key) const {
KeyedService* ReadingListManagerFactory::BuildServiceInstanceFor(
content::BrowserContext* context) const {
if (!base::FeatureList::IsEnabled(features::kReadLater))
return std::make_unique<EmptyReadingListManager>();
return new EmptyReadingListManager();
auto* profile = ProfileManager::GetProfileFromProfileKey(
ProfileKey::FromSimpleFactoryKey(key));
auto* reading_list_model =
ReadingListModelFactory::GetForBrowserContext(profile);
return std::make_unique<ReadingListManagerImpl>(reading_list_model);
ReadingListModelFactory::GetForBrowserContext(context);
return new ReadingListManagerImpl(reading_list_model);
}
......@@ -6,15 +6,16 @@
#define CHROME_BROWSER_ANDROID_READING_LIST_READING_LIST_MANAGER_FACTORY_H_
#include "base/memory/singleton.h"
#include "components/keyed_service/core/simple_keyed_service_factory.h"
#include "components/keyed_service/content/browser_context_keyed_service_factory.h"
class ReadingListManager;
// A factory to create the ReadingListManager singleton.
class ReadingListManagerFactory : public SimpleKeyedServiceFactory {
class ReadingListManagerFactory : public BrowserContextKeyedServiceFactory {
public:
static ReadingListManagerFactory* GetInstance();
static ReadingListManager* GetForKey(SimpleFactoryKey* key);
static ReadingListManager* GetForBrowserContext(
content::BrowserContext* context);
private:
friend struct base::DefaultSingletonTraits<ReadingListManagerFactory>;
......@@ -26,8 +27,8 @@ class ReadingListManagerFactory : public SimpleKeyedServiceFactory {
ReadingListManagerFactory& operator=(const ReadingListManagerFactory&) =
delete;
std::unique_ptr<KeyedService> BuildServiceInstanceFor(
SimpleFactoryKey* key) const override;
KeyedService* BuildServiceInstanceFor(
content::BrowserContext* context) const override;
};
#endif // CHROME_BROWSER_ANDROID_READING_LIST_READING_LIST_MANAGER_FACTORY_H_
......@@ -105,6 +105,7 @@
#if defined(OS_ANDROID)
#include "chrome/browser/android/explore_sites/explore_sites_service_factory.h"
#include "chrome/browser/android/reading_list/reading_list_manager_factory.h"
#include "chrome/browser/android/search_permissions/search_permissions_service.h"
#include "chrome/browser/android/thin_webview/chrome_thin_webview_initializer.h"
#include "chrome/browser/media/android/cdm/media_drm_origin_id_manager_factory.h"
......@@ -342,10 +343,14 @@ void ChromeBrowserMainExtraPartsProfiles::
ProfileThemeUpdateServiceFactory::GetInstance();
#endif
ProtocolHandlerRegistryFactory::GetInstance();
#if !defined(OS_ANDROID)
if (base::FeatureList::IsEnabled(features::kReadLater))
if (base::FeatureList::IsEnabled(features::kReadLater)) {
ReadingListModelFactory::GetInstance();
#if defined(OS_ANDROID)
ReadingListManagerFactory::GetInstance();
#endif
}
RendererUpdaterFactory::GetInstance();
#if !defined(OS_ANDROID)
performance_manager::SiteDataCacheFacadeFactory::GetInstance();
......
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