| Index: chrome/browser/ui/webui/options/chromeos/stats_options_handler.cc
|
| ===================================================================
|
| --- chrome/browser/ui/webui/options/chromeos/stats_options_handler.cc (revision 94787)
|
| +++ chrome/browser/ui/webui/options/chromeos/stats_options_handler.cc (working copy)
|
| @@ -4,24 +4,27 @@
|
|
|
| #include "chrome/browser/ui/webui/options/chromeos/stats_options_handler.h"
|
|
|
| +#include "base/basictypes.h"
|
| #include "base/callback.h"
|
| #include "base/utf_string_conversions.h"
|
| #include "base/values.h"
|
| -#include "chrome/browser/chromeos/user_cros_settings_provider.h"
|
| +#include "chrome/browser/chromeos/cros_settings_names.h"
|
| +#include "chrome/browser/chromeos/login/user_manager.h"
|
| +#include "chrome/browser/chromeos/metrics_cros_settings_provider.h"
|
| #include "content/browser/user_metrics.h"
|
|
|
| namespace chromeos {
|
|
|
| StatsOptionsHandler::StatsOptionsHandler()
|
| - : CrosOptionsPageUIHandler(new UserCrosSettingsProvider) {
|
| + : CrosOptionsPageUIHandler(new MetricsCrosSettingsProvider()) {
|
| }
|
|
|
| // OptionsPageUIHandler implementation.
|
| void StatsOptionsHandler::GetLocalizedValues(
|
| DictionaryValue* localized_strings) {
|
| }
|
| -
|
| void StatsOptionsHandler::Initialize() {
|
| + SetupMetricsReportingCheckbox(false);
|
| }
|
|
|
| // WebUIMessageHandler implementation.
|
| @@ -31,6 +34,10 @@
|
| NewCallback(this, &StatsOptionsHandler::HandleMetricsReportingCheckbox));
|
| }
|
|
|
| +MetricsCrosSettingsProvider* StatsOptionsHandler::provider() const {
|
| + return static_cast<MetricsCrosSettingsProvider*>(settings_provider_.get());
|
| +}
|
| +
|
| void StatsOptionsHandler::HandleMetricsReportingCheckbox(
|
| const ListValue* args) {
|
| #if defined(GOOGLE_CHROME_BUILD)
|
| @@ -40,7 +47,20 @@
|
| enabled ?
|
| UserMetricsAction("Options_MetricsReportingCheckbox_Enable") :
|
| UserMetricsAction("Options_MetricsReportingCheckbox_Disable"));
|
| + const bool is_enabled = MetricsCrosSettingsProvider::GetMetricsStatus();
|
| + SetupMetricsReportingCheckbox(enabled == is_enabled);
|
| #endif
|
| }
|
|
|
| +void StatsOptionsHandler::SetupMetricsReportingCheckbox(bool user_changed) {
|
| +#if defined(GOOGLE_CHROME_BUILD)
|
| + FundamentalValue checked(MetricsCrosSettingsProvider::GetMetricsStatus());
|
| + FundamentalValue disabled(!UserManager::Get()->current_user_is_owner());
|
| + FundamentalValue user_has_changed(user_changed);
|
| + web_ui_->CallJavascriptFunction(
|
| + "options.AdvancedOptions.SetMetricsReportingCheckboxState", checked,
|
| + disabled, user_has_changed);
|
| +#endif
|
| +}
|
| +
|
| } // namespace chromeos
|
|
|