Home | History | Annotate | Download | only in feedback
      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