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

Unified Diff: chrome/browser/bookmarks/bookmark_model_factory.cc

Issue 2185973003: [Offline Pages] Delete associated page along with bookmark. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Adding offline_pages::ExternalListener. Created 4 years, 4 months 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: 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(

Powered by Google App Engine
This is Rietveld 408576698