1 // Copyright 2014 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 #ifndef COMPONENTS_FEEDBACK_FEEDBACK_UPLOADER_FACTORY_H_ 6 #define COMPONENTS_FEEDBACK_FEEDBACK_UPLOADER_FACTORY_H_ 7 8 #include "components/keyed_service/content/browser_context_keyed_service_factory.h" 9 10 template<typename T> struct DefaultSingletonTraits; 11 12 namespace content { 13 class BrowserContext; 14 } 15 16 namespace feedback { 17 18 class FeedbackUploader; 19 20 // Singleton that owns the FeedbackUploaders and associates them with profiles; 21 class FeedbackUploaderFactory : public BrowserContextKeyedServiceFactory { 22 public: 23 // Returns singleton instance of FeedbackUploaderFactory. 24 static FeedbackUploaderFactory* GetInstance(); 25 26 // Returns the Feedback Uploader associated with |context|. 27 static FeedbackUploader* GetForBrowserContext( 28 content::BrowserContext* context); 29 30 private: 31 friend struct DefaultSingletonTraits<FeedbackUploaderFactory>; 32 33 FeedbackUploaderFactory(); 34 virtual ~FeedbackUploaderFactory(); 35 36 // BrowserContextKeyedServiceFactory overrides: 37 virtual KeyedService* BuildServiceInstanceFor( 38 content::BrowserContext* context) const OVERRIDE; 39 virtual content::BrowserContext* GetBrowserContextToUse( 40 content::BrowserContext* context) const OVERRIDE; 41 42 DISALLOW_COPY_AND_ASSIGN(FeedbackUploaderFactory); 43 }; 44 45 } // namespace feedback 46 47 #endif // COMPONENTS_FEEDBACK_FEEDBACK_UPLOADER_FACTORY_H_ 48