1c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch// Copyright 2014 The Chromium Authors. All rights reserved. 2c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch// Use of this source code is governed by a BSD-style license that can be 3c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch// found in the LICENSE file. 4c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch 5c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch#ifndef CHROME_BROWSER_EXTENSIONS_EXTENSION_STORAGE_MONITOR_FACTORY_H_ 6c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch#define CHROME_BROWSER_EXTENSIONS_EXTENSION_STORAGE_MONITOR_FACTORY_H_ 7c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch 8c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch#include "base/memory/singleton.h" 9c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch#include "components/keyed_service/content/browser_context_keyed_service_factory.h" 10c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch 11c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdochnamespace extensions { 12c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch 13c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdochclass ExtensionStorageMonitor; 14c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch 15c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdochclass ExtensionStorageMonitorFactory 16c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch : public BrowserContextKeyedServiceFactory { 17c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch public: 18c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch static ExtensionStorageMonitor* GetForBrowserContext( 19c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch content::BrowserContext* context); 20c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch 21c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch static ExtensionStorageMonitorFactory* GetInstance(); 22c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch 23c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch private: 24c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch friend struct DefaultSingletonTraits<ExtensionStorageMonitorFactory>; 25c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch 26c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch ExtensionStorageMonitorFactory(); 27c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch virtual ~ExtensionStorageMonitorFactory(); 28c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch 29c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch // BrowserContextKeyedServiceFactory implementation: 30c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch virtual KeyedService* BuildServiceInstanceFor( 31c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch content::BrowserContext* context) const OVERRIDE; 32c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch virtual content::BrowserContext* GetBrowserContextToUse( 33c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch content::BrowserContext* context) const OVERRIDE; 34c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch virtual bool ServiceIsCreatedWithBrowserContext() const OVERRIDE; 35c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch virtual bool ServiceIsNULLWhileTesting() const OVERRIDE; 36c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch}; 37c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch 38c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch} // namespace extensions 39c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch 40c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch#endif // CHROME_BROWSER_EXTENSIONS_EXTENSION_STORAGE_MONITOR_FACTORY_H_ 41