blob: 2823c093bd3c5e475b89208ad3c5aa42791fc8af [file] [log] [blame]
[email protected]48372252013-12-20 12:18:011// Copyright 2013 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 CHROME_BROWSER_FEEDBACK_FEEDBACK_UPLOADER_FACTORY_H_
6#define CHROME_BROWSER_FEEDBACK_FEEDBACK_UPLOADER_FACTORY_H_
7
[email protected]95003d522014-03-13 20:22:318#include "components/keyed_service/content/browser_context_keyed_service_factory.h"
[email protected]48372252013-12-20 12:18:019
10template<typename T> struct DefaultSingletonTraits;
11
12namespace content {
13class BrowserContext;
14}
15
16namespace feedback {
17
18class FeedbackUploader;
19
20// Singleton that owns the FeedbackUploaders and associates them with profiles;
21class 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:
[email protected]95003d522014-03-13 20:22:3137 virtual KeyedService* BuildServiceInstanceFor(
[email protected]48372252013-12-20 12:18:0138 content::BrowserContext* context) const OVERRIDE;
[email protected]873a6c082014-01-18 03:25:0739 virtual content::BrowserContext* GetBrowserContextToUse(
40 content::BrowserContext* context) const OVERRIDE;
[email protected]48372252013-12-20 12:18:0141
42 DISALLOW_COPY_AND_ASSIGN(FeedbackUploaderFactory);
43};
44
45} // namespace feedback
46
47#endif // CHROME_BROWSER_FEEDBACK_FEEDBACK_UPLOADER_FACTORY_H_