1// Copyright (c) 2012 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/ui/webui/options/chromeos/stats_options_handler.h"
6
7#include "base/bind.h"
8#include "base/bind_helpers.h"
9#include "base/strings/utf_string_conversions.h"
10#include "base/values.h"
11#include "content/public/browser/user_metrics.h"
12#include "content/public/browser/web_ui.h"
13
14using base::UserMetricsAction;
15
16namespace chromeos {
17namespace options {
18
19StatsOptionsHandler::StatsOptionsHandler() {
20}
21
22// OptionsPageUIHandler implementation.
23void StatsOptionsHandler::GetLocalizedValues(
24    base::DictionaryValue* localized_strings) {
25}
26
27// WebUIMessageHandler implementation.
28void StatsOptionsHandler::RegisterMessages() {
29  web_ui()->RegisterMessageCallback("metricsReportingCheckboxAction",
30      base::Bind(&StatsOptionsHandler::HandleMetricsReportingCheckbox,
31                 base::Unretained(this)));
32}
33
34void StatsOptionsHandler::HandleMetricsReportingCheckbox(
35    const base::ListValue* args) {
36#if defined(GOOGLE_CHROME_BUILD)
37  const std::string checked_str = base::UTF16ToUTF8(ExtractStringValue(args));
38  const bool enabled = (checked_str == "true");
39  content::RecordAction(
40      enabled ?
41      UserMetricsAction("Options_MetricsReportingCheckbox_Enable") :
42      UserMetricsAction("Options_MetricsReportingCheckbox_Disable"));
43#endif
44}
45
46}  // namespace options
47}  // namespace chromeos
48