Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(308)

Unified Diff: ios/chrome/browser/reading_list/reading_list_model_factory.cc

Issue 2451843002: Add Store+Sync to reading list. (Closed)
Patch Set: fix xcode clang Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: ios/chrome/browser/reading_list/reading_list_model_factory.cc
diff --git a/ios/chrome/browser/reading_list/reading_list_model_factory.cc b/ios/chrome/browser/reading_list/reading_list_model_factory.cc
index 5be056091b0e061fc1c64f957c0e18d4c9b75b54..393422c2419c77aff7f2f48a37d07944004d0406 100644
--- a/ios/chrome/browser/reading_list/reading_list_model_factory.cc
+++ b/ios/chrome/browser/reading_list/reading_list_model_factory.cc
@@ -6,15 +6,24 @@
#include <utility>
+#include "base/files/file_path.h"
#include "base/memory/ptr_util.h"
#include "base/memory/singleton.h"
#include "components/keyed_service/ios/browser_state_dependency_manager.h"
#include "components/pref_registry/pref_registry_syncable.h"
#include "ios/chrome/browser/browser_state/browser_state_otr_helper.h"
#include "ios/chrome/browser/browser_state/chrome_browser_state.h"
+#include "ios/chrome/browser/experimental_flags.h"
+#include "ios/chrome/browser/reading_list/proto/reading_list.pb.h"
#include "ios/chrome/browser/reading_list/reading_list_model_impl.h"
-#include "ios/chrome/browser/reading_list/reading_list_model_storage_defaults.h"
#include "ios/chrome/browser/reading_list/reading_list_pref_names.h"
+#include "ios/chrome/browser/reading_list/reading_list_store.h"
+#include "ios/web/public/web_thread.h"
+
+// static
+bool ReadingListModelFactory::IsReadingListEnabled() {
+ return experimental_flags::IsReadingListEnabled();
+}
// static
ReadingListModel* ReadingListModelFactory::GetForBrowserState(
@@ -51,11 +60,23 @@ void ReadingListModelFactory::RegisterBrowserStatePrefs(
std::unique_ptr<KeyedService> ReadingListModelFactory::BuildServiceInstanceFor(
web::BrowserState* context) const {
- auto storage = base::MakeUnique<ReadingListModelStorageDefaults>();
+ scoped_refptr<base::SequencedTaskRunner> background_task_runner =
+ web::WebThread::GetBlockingPool()->GetSequencedTaskRunner(
+ web::WebThread::GetBlockingPool()->GetSequenceToken());
+
+ base::FilePath database_dir(
+ context->GetStatePath().Append(FILE_PATH_LITERAL("readinglist")));
+
+ // TODO(crbug.com/664920): use a shared location for the store.
+ std::unique_ptr<ReadingListStore> store = base::MakeUnique<ReadingListStore>(
+ base::Bind(&syncer::ModelTypeStore::CreateStore, syncer::READING_LIST,
+ database_dir.AsUTF8Unsafe(), background_task_runner),
+ base::Bind(&syncer::ModelTypeChangeProcessor::Create));
+
ios::ChromeBrowserState* chrome_browser_state =
ios::ChromeBrowserState::FromBrowserState(context);
std::unique_ptr<KeyedService> reading_list_model =
- base::MakeUnique<ReadingListModelImpl>(std::move(storage),
+ base::MakeUnique<ReadingListModelImpl>(std::move(store),
chrome_browser_state->GetPrefs());
return reading_list_model;
}

Powered by Google App Engine
This is Rietveld 408576698