1// 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#include "chrome/browser/extensions/api/feedback_private/feedback_service.h"
6
7#include "base/callback.h"
8#include "base/memory/weak_ptr.h"
9#include "base/metrics/statistics_recorder.h"
10#include "base/values.h"
11#include "components/user_manager/user.h"
12#include "components/user_manager/user_manager.h"
13
14namespace extensions {
15
16class FeedbackServiceImpl
17    : public FeedbackService,
18      public base::SupportsWeakPtr<FeedbackServiceImpl> {
19 public:
20  FeedbackServiceImpl();
21  virtual ~FeedbackServiceImpl();
22
23  virtual std::string GetUserEmail() OVERRIDE;
24  virtual void GetHistograms(std::string* histograms) OVERRIDE;
25
26 private:
27  // Overridden from FeedbackService:
28  virtual base::WeakPtr<FeedbackService> GetWeakPtr() OVERRIDE;
29
30  DISALLOW_COPY_AND_ASSIGN(FeedbackServiceImpl);
31};
32
33FeedbackService* FeedbackService::CreateInstance() {
34  return new FeedbackServiceImpl;
35}
36
37FeedbackServiceImpl::FeedbackServiceImpl() {
38}
39
40FeedbackServiceImpl::~FeedbackServiceImpl() {
41}
42
43std::string FeedbackServiceImpl::GetUserEmail() {
44  const user_manager::UserManager* manager = user_manager::UserManager::Get();
45  const user_manager::User* user = manager ? manager->GetActiveUser() : NULL;
46  return user ? user->display_email() : std::string();
47}
48
49void FeedbackServiceImpl::GetHistograms(std::string* histograms) {
50  *histograms = base::StatisticsRecorder::ToJSON(std::string());
51}
52
53base::WeakPtr<FeedbackService> FeedbackServiceImpl::GetWeakPtr() {
54  return AsWeakPtr();
55}
56
57}  // namespace extensions
58