1ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// Copyright (c) 2011 The Chromium Authors. All rights reserved.
2c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Use of this source code is governed by a BSD-style license that can be
3c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// found in the LICENSE file.
4c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen#include "chrome/browser/ui/options/options_page_base.h"
6c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
7c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "chrome/browser/metrics/user_metrics.h"
83345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick#include "chrome/browser/prefs/pref_service.h"
9ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "content/common/notification_details.h"
10ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "content/common/notification_source.h"
11ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "content/common/notification_type.h"
12c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
13c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch///////////////////////////////////////////////////////////////////////////////
14c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// OptionsPageBase
15c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
16c407dc5cd9bdc5668497f21b26b09d988ab439deBen MurdochOptionsPageBase::OptionsPageBase(Profile* profile)
17c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch    : profile_(profile) {
18c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch}
19c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
20c407dc5cd9bdc5668497f21b26b09d988ab439deBen MurdochOptionsPageBase::~OptionsPageBase() {
21c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch}
22c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
23c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochvoid OptionsPageBase::UserMetricsRecordAction(const UserMetricsAction& action,
24c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch                                              PrefService* prefs) {
25c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  UserMetrics::RecordAction(action, profile());
26c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  if (prefs)
27c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch    prefs->ScheduleSavePersistentPrefs();
28c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch}
29c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
30c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch///////////////////////////////////////////////////////////////////////////////
31c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// OptionsPageBase, NotificationObserver implementation:
32c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
33c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochvoid OptionsPageBase::Observe(NotificationType type,
34c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch                              const NotificationSource& source,
35c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch                              const NotificationDetails& details) {
36c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  if (type == NotificationType::PREF_CHANGED)
373345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick    NotifyPrefChanged(Details<std::string>(details).ptr());
38c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch}
39