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