bookmark_model_factory.cc revision 5821806d5e7f356e8fa4b058a389a808ea183019
1// Copyright (c) 2012 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#include "chrome/browser/bookmarks/bookmark_model_factory.h" 6 7#include "base/memory/singleton.h" 8#include "chrome/browser/bookmarks/bookmark_model.h" 9#include "chrome/browser/prefs/pref_service.h" 10#include "chrome/browser/profiles/profile_dependency_manager.h" 11#include "chrome/common/pref_names.h" 12 13// static 14BookmarkModel* BookmarkModelFactory::GetForProfile(Profile* profile) { 15 return static_cast<BookmarkModel*>( 16 GetInstance()->GetServiceForProfile(profile, true)); 17} 18 19BookmarkModel* BookmarkModelFactory::GetForProfileIfExists(Profile* profile) { 20 return static_cast<BookmarkModel*>( 21 GetInstance()->GetServiceForProfile(profile, false)); 22} 23 24// static 25BookmarkModelFactory* BookmarkModelFactory::GetInstance() { 26 return Singleton<BookmarkModelFactory>::get(); 27} 28 29BookmarkModelFactory::BookmarkModelFactory() 30 : ProfileKeyedServiceFactory("BookmarkModel", 31 ProfileDependencyManager::GetInstance()) { 32} 33 34BookmarkModelFactory::~BookmarkModelFactory() {} 35 36ProfileKeyedService* BookmarkModelFactory::BuildServiceInstanceFor( 37 Profile* profile) const { 38 BookmarkModel* bookmark_model = new BookmarkModel(profile); 39 bookmark_model->Load(); 40 return bookmark_model; 41} 42 43void BookmarkModelFactory::RegisterUserPrefs(PrefService* prefs) { 44 // Don't sync this, as otherwise, due to a limitation in sync, it 45 // will cause a deadlock (see http://crbug.com/97955). If we truly 46 // want to sync the expanded state of folders, it should be part of 47 // bookmark sync itself (i.e., a property of the sync folder nodes). 48 prefs->RegisterListPref(prefs::kBookmarkEditorExpandedNodes, new ListValue, 49 PrefService::UNSYNCABLE_PREF); 50} 51 52bool BookmarkModelFactory::ServiceRedirectedInIncognito() const { 53 return true; 54} 55 56bool BookmarkModelFactory::ServiceIsNULLWhileTesting() const { 57 return true; 58} 59