summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsdefresne <sdefresne@chromium.org>2015-06-25 10:23:05 -0700
committerCommit bot <commit-bot@chromium.org>2015-06-25 17:23:47 +0000
commit716f37a898600a21c90ebd942983afb3aa38b747 (patch)
tree61c3220c7713d04acff0413d274d0aa19109cdb5
parent86efa5cd35a94289ba8af2ae243b2cdbd3f738ef (diff)
downloadchromium_src-716f37a898600a21c90ebd942983afb3aa38b747.zip
chromium_src-716f37a898600a21c90ebd942983afb3aa38b747.tar.gz
chromium_src-716f37a898600a21c90ebd942983afb3aa38b747.tar.bz2
Implement BookmarkUndoServiceFactory on iOS
Add missing factories to EnsureBrowserStateKeyedServiceFactoriesBuilt() helper method in addition to BookmarkUndoServiceFactory. BUG=478763 Review URL: https://codereview.chromium.org/1212523002 Cr-Commit-Position: refs/heads/master@{#336186}
-rw-r--r--ios/chrome/browser/DEPS1
-rw-r--r--ios/chrome/browser/browser_state/browser_state_keyed_service_factories.mm4
-rw-r--r--ios/chrome/browser/undo/bookmark_undo_service_factory.cc46
-rw-r--r--ios/chrome/browser/undo/bookmark_undo_service_factory.h45
-rw-r--r--ios/chrome/ios_chrome.gyp3
5 files changed, 99 insertions, 0 deletions
diff --git a/ios/chrome/browser/DEPS b/ios/chrome/browser/DEPS
index 71f8f28..23bcd91 100644
--- a/ios/chrome/browser/DEPS
+++ b/ios/chrome/browser/DEPS
@@ -26,6 +26,7 @@ include_rules = [
"+components/sync_driver",
"+components/translate/core",
"+components/translate/ios",
+ "+components/undo",
"+components/variations",
"+components/web_resource",
"+components/webp_transcode",
diff --git a/ios/chrome/browser/browser_state/browser_state_keyed_service_factories.mm b/ios/chrome/browser/browser_state/browser_state_keyed_service_factories.mm
index 18a756e..b853725 100644
--- a/ios/chrome/browser/browser_state/browser_state_keyed_service_factories.mm
+++ b/ios/chrome/browser/browser_state/browser_state_keyed_service_factories.mm
@@ -4,6 +4,7 @@
#include "ios/chrome/browser/browser_state/browser_state_keyed_service_factories.h"
+#include "ios/chrome/browser/bookmarks/startup_task_runner_service_factory.h"
#include "ios/chrome/browser/dom_distiller/dom_distiller_service_factory.h"
#include "ios/chrome/browser/enhanced_bookmarks/bookmark_image_service_factory.h"
#include "ios/chrome/browser/enhanced_bookmarks/bookmark_server_cluster_service_factory.h"
@@ -13,6 +14,7 @@
#include "ios/chrome/browser/suggestions/suggestions_service_factory.h"
#include "ios/chrome/browser/sync/sync_setup_service_factory.h"
#include "ios/chrome/browser/translate/translate_accept_languages_factory.h"
+#include "ios/chrome/browser/undo/bookmark_undo_service_factory.h"
#include "ios/public/provider/chrome/browser/keyed_service_provider.h"
// This method gets the instance of each ServiceFactory. We do this so that
@@ -29,7 +31,9 @@ void EnsureBrowserStateKeyedServiceFactoriesBuilt() {
dom_distiller::DomDistillerServiceFactory::GetInstance();
enhanced_bookmarks::BookmarkServerClusterServiceFactory::GetInstance();
enhanced_bookmarks::EnhancedBookmarkModelFactory::GetInstance();
+ ios::BookmarkUndoServiceFactory::GetInstance();
ios::FaviconServiceFactory::GetInstance();
+ ios::StartupTaskRunnerServiceFactory::GetInstance();
ios::TopSitesFactory::GetInstance();
suggestions::SuggestionsServiceFactory::GetInstance();
SyncSetupServiceFactory::GetInstance();
diff --git a/ios/chrome/browser/undo/bookmark_undo_service_factory.cc b/ios/chrome/browser/undo/bookmark_undo_service_factory.cc
new file mode 100644
index 0000000..95c8781
--- /dev/null
+++ b/ios/chrome/browser/undo/bookmark_undo_service_factory.cc
@@ -0,0 +1,46 @@
+// Copyright 2015 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "ios/chrome/browser/undo/bookmark_undo_service_factory.h"
+
+#include "base/memory/singleton.h"
+#include "components/keyed_service/ios/browser_state_dependency_manager.h"
+#include "components/undo/bookmark_undo_service.h"
+#include "ios/public/provider/chrome/browser/browser_state/chrome_browser_state.h"
+
+namespace ios {
+
+// static
+BookmarkUndoService* BookmarkUndoServiceFactory::GetForBrowserState(
+ ios::ChromeBrowserState* browser_state) {
+ return static_cast<BookmarkUndoService*>(
+ GetInstance()->GetServiceForBrowserState(browser_state, true));
+}
+
+// static
+BookmarkUndoService* BookmarkUndoServiceFactory::GetForBrowserStateIfExists(
+ ios::ChromeBrowserState* browser_state) {
+ return static_cast<BookmarkUndoService*>(
+ GetInstance()->GetServiceForBrowserState(browser_state, false));
+}
+
+BookmarkUndoServiceFactory* BookmarkUndoServiceFactory::GetInstance() {
+ return Singleton<BookmarkUndoServiceFactory>::get();
+}
+
+BookmarkUndoServiceFactory::BookmarkUndoServiceFactory()
+ : BrowserStateKeyedServiceFactory(
+ "BookmarkUndoService",
+ BrowserStateDependencyManager::GetInstance()) {
+}
+
+BookmarkUndoServiceFactory::~BookmarkUndoServiceFactory() {
+}
+
+scoped_ptr<KeyedService> BookmarkUndoServiceFactory::BuildServiceInstanceFor(
+ web::BrowserState* context) const {
+ return make_scoped_ptr(new BookmarkUndoService);
+}
+
+} // namespace ios
diff --git a/ios/chrome/browser/undo/bookmark_undo_service_factory.h b/ios/chrome/browser/undo/bookmark_undo_service_factory.h
new file mode 100644
index 0000000..367907d
--- /dev/null
+++ b/ios/chrome/browser/undo/bookmark_undo_service_factory.h
@@ -0,0 +1,45 @@
+// Copyright 2015 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef IOS_CHROME_BROWSER_UNDO_BOOKMARK_UNDO_SERVICE_FACTORY_H_
+#define IOS_CHROME_BROWSER_UNDO_BOOKMARK_UNDO_SERVICE_FACTORY_H_
+
+#include "base/macros.h"
+#include "base/memory/scoped_ptr.h"
+#include "components/keyed_service/ios/browser_state_keyed_service_factory.h"
+
+template <typename T>
+struct DefaultSingletonTraits;
+class BookmarkUndoService;
+
+namespace ios {
+
+class ChromeBrowserState;
+
+// Singleton that owns all FaviconService and associates them with
+// ios::ChromeBrowserState.
+class BookmarkUndoServiceFactory : public BrowserStateKeyedServiceFactory {
+ public:
+ static BookmarkUndoService* GetForBrowserState(
+ ios::ChromeBrowserState* browser_state);
+ static BookmarkUndoService* GetForBrowserStateIfExists(
+ ios::ChromeBrowserState* browser_state);
+ static BookmarkUndoServiceFactory* GetInstance();
+
+ private:
+ friend struct DefaultSingletonTraits<BookmarkUndoServiceFactory>;
+
+ BookmarkUndoServiceFactory();
+ ~BookmarkUndoServiceFactory() override;
+
+ // BrowserStateKeyedServiceFactory implementation.
+ scoped_ptr<KeyedService> BuildServiceInstanceFor(
+ web::BrowserState* context) const override;
+
+ DISALLOW_COPY_AND_ASSIGN(BookmarkUndoServiceFactory);
+};
+
+} // namespace ios
+
+#endif // IOS_CHROME_BROWSER_UNDO_BOOKMARK_UNDO_SERVICE_FACTORY_H_
diff --git a/ios/chrome/ios_chrome.gyp b/ios/chrome/ios_chrome.gyp
index 4ee8c83..7193759 100644
--- a/ios/chrome/ios_chrome.gyp
+++ b/ios/chrome/ios_chrome.gyp
@@ -66,6 +66,7 @@
'../../components/components.gyp:sync_driver',
'../../components/components.gyp:translate_core_browser',
'../../components/components.gyp:translate_ios_browser',
+ '../../components/components.gyp:undo_component',
'../../components/components.gyp:web_resource',
'../../components/components.gyp:webp_transcode',
'../../components/components_strings.gyp:components_strings',
@@ -301,6 +302,8 @@
'browser/ui/uikit_ui_util.h',
'browser/ui/uikit_ui_util.mm',
'browser/ui/url_loader.h',
+ 'browser/undo/bookmark_undo_service_factory.cc',
+ 'browser/undo/bookmark_undo_service_factory.h',
'browser/updatable_config/updatable_array.h',
'browser/updatable_config/updatable_array.mm',
'browser/updatable_config/updatable_config_base.h',