Update V8 to version 4.7.21.
[chromium-blink-merge.git] / chrome / browser / browsing_data / browsing_data_counter.cc
blob15ae15e5451ee62272f43edf28c9442439923778
1 // Copyright (c) 2015 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.
5 #include "chrome/browser/browsing_data/browsing_data_counter.h"
7 #include "base/prefs/pref_service.h"
8 #include "chrome/browser/profiles/profile.h"
9 #include "chrome/common/pref_names.h"
11 BrowsingDataCounter::BrowsingDataCounter() {}
13 BrowsingDataCounter::~BrowsingDataCounter() {
16 void BrowsingDataCounter::Init(
17 Profile* profile,
18 const Callback& callback) {
19 DCHECK(!initialized_);
20 profile_ = profile;
21 callback_ = callback;
22 pref_.Init(
23 GetPrefName(),
24 profile_->GetPrefs(),
25 base::Bind(&BrowsingDataCounter::RestartCounting,
26 base::Unretained(this)));
27 period_.Init(
28 prefs::kDeleteTimePeriod,
29 profile_->GetPrefs(),
30 base::Bind(&BrowsingDataCounter::RestartCounting,
31 base::Unretained(this)));
33 initialized_ = true;
34 OnInitialized();
35 RestartCounting();
38 Profile* BrowsingDataCounter::GetProfile() const {
39 return profile_;
42 void BrowsingDataCounter::OnInitialized() {
45 base::Time BrowsingDataCounter::GetPeriodStart() {
46 return BrowsingDataRemover::CalculateBeginDeleteTime(
47 static_cast<BrowsingDataRemover::TimePeriod>(*period_));
50 void BrowsingDataCounter::RestartCounting() {
51 DCHECK(initialized_);
53 // If this data type was unchecked for deletion, we do not need to count it.
54 if (!profile_->GetPrefs()->GetBoolean(GetPrefName()))
55 return;
57 callback_.Run(false, 0u);
59 Count();
62 void BrowsingDataCounter::ReportResult(uint32 value) {
63 DCHECK(initialized_);
64 callback_.Run(true, value);