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/bookmarks/bookmark_prompt_prefs.h"
6
7#include "base/prefs/pref_service.h"
8#include "chrome/common/pref_names.h"
9#include "components/user_prefs/pref_registry_syncable.h"
10
11BookmarkPromptPrefs::BookmarkPromptPrefs(PrefService* user_prefs)
12    : prefs_(user_prefs) {
13}
14
15BookmarkPromptPrefs::~BookmarkPromptPrefs() {
16}
17
18void BookmarkPromptPrefs::DisableBookmarkPrompt() {
19  prefs_->SetBoolean(prefs::kBookmarkPromptEnabled, false);
20}
21
22int BookmarkPromptPrefs::GetPromptImpressionCount() const {
23  return prefs_->GetInteger(prefs::kBookmarkPromptImpressionCount);
24}
25
26void BookmarkPromptPrefs::IncrementPromptImpressionCount() {
27  prefs_->SetInteger(prefs::kBookmarkPromptImpressionCount,
28                     GetPromptImpressionCount() + 1);
29}
30
31bool BookmarkPromptPrefs::IsBookmarkPromptEnabled() const {
32  return prefs_->GetBoolean(prefs::kBookmarkPromptEnabled);
33}
34
35// static
36void BookmarkPromptPrefs::RegisterProfilePrefs(
37    user_prefs::PrefRegistrySyncable* registry) {
38  // We always register preferences without checking FieldTrial, because
39  // we may not receive field trial list from the server yet.
40  registry->RegisterBooleanPref(
41      prefs::kBookmarkPromptEnabled,
42      true,
43      user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
44  registry->RegisterIntegerPref(
45      prefs::kBookmarkPromptImpressionCount,
46      0,
47      user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
48}
49