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#include "components/feedback/feedback_uploader_factory.h"
6
7#include "base/memory/singleton.h"
8#include "components/feedback/feedback_uploader.h"
9#include "components/feedback/feedback_uploader_chrome.h"
10#include "components/keyed_service/content/browser_context_dependency_manager.h"
11
12namespace feedback {
13
14// static
15FeedbackUploaderFactory* FeedbackUploaderFactory::GetInstance() {
16  return Singleton<FeedbackUploaderFactory>::get();
17}
18
19// static
20FeedbackUploader* FeedbackUploaderFactory::GetForBrowserContext(
21    content::BrowserContext* context) {
22  return static_cast<FeedbackUploaderChrome*>(
23      GetInstance()->GetServiceForBrowserContext(context, true));
24}
25
26FeedbackUploaderFactory::FeedbackUploaderFactory()
27    : BrowserContextKeyedServiceFactory(
28          "feedback::FeedbackUploader",
29          BrowserContextDependencyManager::GetInstance()) {}
30
31FeedbackUploaderFactory::~FeedbackUploaderFactory() {}
32
33KeyedService* FeedbackUploaderFactory::BuildServiceInstanceFor(
34    content::BrowserContext* context) const {
35  return new FeedbackUploaderChrome(context);
36}
37
38content::BrowserContext* FeedbackUploaderFactory::GetBrowserContextToUse(
39    content::BrowserContext* context) const {
40  return context;
41}
42
43}  // namespace feedback
44