11320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// Copyright 2014 The Chromium Authors. All rights reserved.
21320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// Use of this source code is governed by a BSD-style license that can be
31320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// found in the LICENSE file.
41320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
51320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "chrome/browser/extensions/api/file_system/entry_watcher_service_factory.h"
61320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
71320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "chrome/browser/extensions/api/file_system/entry_watcher_service.h"
81320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "chrome/browser/profiles/profile.h"
91320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "components/keyed_service/content/browser_context_dependency_manager.h"
101320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "content/public/browser/browser_context.h"
111320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
121320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccinamespace extensions {
131320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
141320f92c476a1ad9d19dba2a48c72b75566198e9Primiano TucciEntryWatcherServiceFactory* EntryWatcherServiceFactory::GetInstance() {
151320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  return Singleton<EntryWatcherServiceFactory>::get();
161320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci}
171320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
181320f92c476a1ad9d19dba2a48c72b75566198e9Primiano TucciEntryWatcherServiceFactory::EntryWatcherServiceFactory()
191320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    : BrowserContextKeyedServiceFactory(
201320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci          "EntryWatcherService",
211320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci          BrowserContextDependencyManager::GetInstance()) {
221320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci}
231320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
241320f92c476a1ad9d19dba2a48c72b75566198e9Primiano TucciEntryWatcherServiceFactory::~EntryWatcherServiceFactory() {
251320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci}
261320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
271320f92c476a1ad9d19dba2a48c72b75566198e9Primiano TucciKeyedService* EntryWatcherServiceFactory::BuildServiceInstanceFor(
281320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    content::BrowserContext* context) const {
291320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  return new EntryWatcherService(Profile::FromBrowserContext(context));
301320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci}
311320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
321320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccibool EntryWatcherServiceFactory::ServiceIsCreatedWithBrowserContext() const {
331320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  // Required to restore persistent watchers as soon as the profile is loaded.
341320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  return true;
351320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci}
361320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
371320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci}  // namespace extensions
38