Chromium Code Reviews| Index: chrome/browser/bookmarks/bookmark_model_factory.cc |
| diff --git a/chrome/browser/bookmarks/bookmark_model_factory.cc b/chrome/browser/bookmarks/bookmark_model_factory.cc |
| index 8a6edc16323b706358fdb6b03b5a13b8d914714c..eabf74fbcd4aa1d892384c189959e9a7f9fec7fb 100644 |
| --- a/chrome/browser/bookmarks/bookmark_model_factory.cc |
| +++ b/chrome/browser/bookmarks/bookmark_model_factory.cc |
| @@ -4,6 +4,9 @@ |
| #include "chrome/browser/bookmarks/bookmark_model_factory.h" |
| +#include <memory> |
| +#include <utility> |
| + |
| #include "base/command_line.h" |
| #include "base/deferred_sequenced_task_runner.h" |
| #include "base/memory/ptr_util.h" |
| @@ -22,10 +25,16 @@ |
| #include "components/bookmarks/browser/bookmark_utils.h" |
| #include "components/bookmarks/browser/startup_task_runner_service.h" |
| #include "components/keyed_service/content/browser_context_dependency_manager.h" |
| +#include "components/offline_pages/external_listener.h" |
| #include "components/prefs/pref_service.h" |
| #include "components/undo/bookmark_undo_service.h" |
| #include "content/public/browser/browser_thread.h" |
| +#if BUILDFLAG(ANDROID_JAVA_UI) |
| +#include "chrome/browser/android/offline_pages/external_listener_impl.h" |
| +#include "chrome/browser/android/offline_pages/offline_page_model_factory.h" |
| +#endif |
| + |
| using bookmarks::BookmarkModel; |
| // static |
| @@ -51,6 +60,9 @@ BookmarkModelFactory::BookmarkModelFactory() |
| BrowserContextDependencyManager::GetInstance()) { |
| DependsOn(BookmarkUndoServiceFactory::GetInstance()); |
| DependsOn(ManagedBookmarkServiceFactory::GetInstance()); |
| +#if BUILDFLAG(ANDROID_JAVA_UI) |
| + DependsOn(offline_pages::OfflinePageModelFactory::GetInstance()); |
| +#endif |
| DependsOn(StartupTaskRunnerServiceFactory::GetInstance()); |
| } |
| @@ -60,15 +72,23 @@ BookmarkModelFactory::~BookmarkModelFactory() { |
| KeyedService* BookmarkModelFactory::BuildServiceInstanceFor( |
| content::BrowserContext* context) const { |
| Profile* profile = Profile::FromBrowserContext(context); |
| - BookmarkModel* bookmark_model = |
| - new BookmarkModel(base::WrapUnique(new ChromeBookmarkClient( |
| - profile, ManagedBookmarkServiceFactory::GetForProfile(profile)))); |
| + offline_pages::ExternalListener* offline_page_listener = nullptr; |
| +#if BUILDFLAG(ANDROID_JAVA_UI) |
| + offline_page_listener = new offline_pages::ExternalListenerImpl(profile); |
|
Dmitry Titov
2016/08/12 05:43:43
It's better to not use WrapUnique, instead:
auto
romax
2016/08/16 19:05:44
Done.
|
| +#endif // BUILDFLAG(ANDROID_JAVA_UI) |
| + BookmarkModel* bookmark_model = new BookmarkModel( |
| + base::WrapUnique(new ChromeBookmarkClient( |
| + profile, ManagedBookmarkServiceFactory::GetForProfile(profile))), |
| + base::WrapUnique(offline_page_listener)); |
| bookmark_model->Load(profile->GetPrefs(), profile->GetPath(), |
| StartupTaskRunnerServiceFactory::GetForProfile(profile) |
| ->GetBookmarkTaskRunner(), |
| content::BrowserThread::GetTaskRunnerForThread( |
| content::BrowserThread::UI)); |
| + if (offline_page_listener) |
| + bookmark_model->AddObserver(offline_page_listener); |
| bool register_bookmark_undo_service_as_observer = true; |
| + |
| #if !BUILDFLAG(ANDROID_JAVA_UI) |
| register_bookmark_undo_service_as_observer = |
| base::CommandLine::ForCurrentProcess()->HasSwitch( |