diff options
author | sdefresne <sdefresne@chromium.org> | 2015-06-25 10:23:05 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-06-25 17:23:47 +0000 |
commit | 716f37a898600a21c90ebd942983afb3aa38b747 (patch) | |
tree | 61c3220c7713d04acff0413d274d0aa19109cdb5 | |
parent | 86efa5cd35a94289ba8af2ae243b2cdbd3f738ef (diff) | |
download | chromium_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/DEPS | 1 | ||||
-rw-r--r-- | ios/chrome/browser/browser_state/browser_state_keyed_service_factories.mm | 4 | ||||
-rw-r--r-- | ios/chrome/browser/undo/bookmark_undo_service_factory.cc | 46 | ||||
-rw-r--r-- | ios/chrome/browser/undo/bookmark_undo_service_factory.h | 45 | ||||
-rw-r--r-- | ios/chrome/ios_chrome.gyp | 3 |
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', |